ToddFrankson 3 Posted Wednesday at 08:34 PM (edited) The title system ist ... Edited 14 hours ago by TBx Changes title. It was really insignificant. Share this post Link to post
Anders Melander 1862 Posted Wednesday at 10:50 PM 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/ Share this post Link to post
Der schöne Günther 323 Posted Wednesday at 10:53 PM Maybe just a TWebBrowser (preferably using the Edge/WebView2 engine) is an option? Share this post Link to post
Rollo62 543 Posted 15 hours ago 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
Lars Fosdal 1800 Posted 14 hours ago @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
Attila Kovacs 637 Posted 14 hours ago 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
ToddFrankson 3 Posted 10 hours ago 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
ToddFrankson 3 Posted 8 hours ago 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
Patrick PREMARTIN 90 Posted 8 hours ago Hi You can use FFmpeg (perhaps with http://www.delphiffmpeg.com/) or VLC (check https://github.com/HemulGM repositories) if you want. Boian Mitov has a video stream player in his components packs (https://mitov.com/products/videolab). Share this post Link to post
DelphiUdIT 205 Posted 6 hours ago You can try also with https://prog.olsztyn.pl/paslibvlc/ It has the ability to play stream audio and video, but you need VLC installed on system. Share this post Link to post
Anders Melander 1862 Posted 3 hours ago (edited) 4 hours ago, ToddFrankson said: Neither currently allows a stream outside of a server side video..... I have some code that I use in my resource editor to display video from a memory stream, so it's definitely possible. I just looked and it's about 500-600 lines of code and involves a custom I/O handler among other horrors. Here's a screenshot: And here's a video: Hmm. Never mind with the video. I can't figure out how to create a video this forum supports. Edited 3 hours ago by Anders Melander Share this post Link to post
ToddFrankson 3 Posted 2 hours ago 55 minutes ago, Anders Melander said: I have some code that I use in my resource editor to display video from a memory stream, so it's definitely possible. I just looked and it's about 500-600 lines of code and involves a custom I/O handler among other horrors. Here's a screenshot: And here's a video: Hmm. Never mind with the video. I can't figure out how to create a video this forum supports. Do you have it available somewhere so I can at least take a look? Share this post Link to post
Anders Melander 1862 Posted 2 hours ago 6 minutes ago, ToddFrankson said: Do you have it available somewhere so I can at least take a look? The application is closed source but I have attached the relevant unit (and one dependency). There are a lot of unrelated dependencies in that unit, since it is a part of a large resource editor framework, so unfortunately it's not as readable as it could be. The unit implements a viewer for video and sound media resources. amResourceViewMedia.pas amResourceViewMedia.dfm VFW.pas Share this post Link to post
Anders Melander 1862 Posted 2 hours ago Another option is to use DirectShow. I know that can also be made to load from a stream. Google "Delphi DirectShow" Share this post Link to post