Jump to content
ToddFrankson

Does anyone know a delphi component that can play videos from a stream

Recommended Posts

9 hours ago, Der schöne Günther said:

Maybe just a TWebBrowser (preferably using the Edge/WebView2 engine) is an option?

This is interesting blog
https://blogs.embarcadero.com/execute-scripts-and-view-source-with-tedgebrowser/


Perhaps this might work for showing videos, but there is also the possibility that certain Codecs or Plugins were missing, like  HLS (.m3u8) :

var
  HTMLContent: string;
begin
  HTMLContent := '<!DOCTYPE html>' +
                 '<html>' +
                 '<body>' +
                 '<video width="640" height="480" controls>' +
//either local file
                   '<source src="file:///C:/Pfad/zum/Video.mp4" type="video/mp4">' +
//or stream          
                 '<source src="https://example.com/stream.m3u8" type="application/x-mpegURL">' +  
                 'Dein Browser unterstützt das Video-Tag nicht.' +
                 '</video>' +
                 '</body>' +
                 '</html>';
  EdgeBrowser1.NavigateToString(HTMLContent);
end;

For accessing local files, there could be the need to add AdditionalBrowserArgument flags
https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/working-with-local-content?tabs=dotnetcsharp#loading-local-content-by-navigating-to-a-file-url
https://docwiki.embarcadero.com/Libraries/Athens//de/Vcl.Edge.TCustomEdgeBrowser.AdditionalBrowserArguments

Share this post


Link to post

@ToddFrankson Pls change title of topic from "Does anyone know of...." to "Play a video from a stream".
Descriptive topic titles help users with finding relevant posts.

Share this post


Link to post
4 minutes ago, Lars Fosdal said:

Pls change title of topic from "Does anyone know of...." to "Play a video from a stream".

?!? How can you change the title?

Share this post


Link to post
4 hours ago, Lars Fosdal said:

@ToddFrankson Pls change title of topic from "Does anyone know of...." to "Play a video from a stream".
Descriptive topic titles help users with finding relevant posts.

I was attempting to lure people in with curiosity....

Share this post


Link to post
15 hours ago, Anders Melander said:

There's the old TMediaPlayer but AFAIR it's a pain (but possible) to get to work with TStream.

 

A better alternative would be to import the type library for the Windows Media Player ActiveX and use that.
https://chapmanworld.com/windows-media-player-in-delphi/

Neither currently allows a stream outside of a server side video.....

5 hours ago, Rollo62 said:

This is interesting blog
https://blogs.embarcadero.com/execute-scripts-and-view-source-with-tedgebrowser/


Perhaps this might work for showing videos, but there is also the possibility that certain Codecs or Plugins were missing, like  HLS (.m3u8) :


var
  HTMLContent: string;
begin
  HTMLContent := '<!DOCTYPE html>' +
                 '<html>' +
                 '<body>' +
                 '<video width="640" height="480" controls>' +
//either local file
                   '<source src="file:///C:/Pfad/zum/Video.mp4" type="video/mp4">' +
//or stream          
                 '<source src="https://example.com/stream.m3u8" type="application/x-mpegURL">' +  
                 'Dein Browser unterstützt das Video-Tag nicht.' +
                 '</video>' +
                 '</body>' +
                 '</html>';
  EdgeBrowser1.NavigateToString(HTMLContent);
end;

For accessing local files, there could be the need to add AdditionalBrowserArgument flags
https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/working-with-local-content?tabs=dotnetcsharp#loading-local-content-by-navigating-to-a-file-url
https://docwiki.embarcadero.com/Libraries/Athens//de/Vcl.Edge.TCustomEdgeBrowser.AdditionalBrowserArguments

 

I need the ability to do this locally, without any file.  For example, the same way you can load an image from a stream. 

The videos are small and are stored as proprietary objects.

They are extracted to a MemoryStream.  To play them I currently have to write them to a file (Memorystream.savetofile) and then load them in a player (WindowsMediaPlayer.URL).  I'm looking for something to cut out the write to file 

 

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×