Lazarus

Programming => LCL => Topic started by: fatmonk on November 29, 2021, 12:01:27 pm

Title: Does LCLVLCPlayer support streaming?
Post by: fatmonk on November 29, 2021, 12:01:27 pm
Does the 'included' LCLVLCPlayer component support streaming video?
Does it require VLC to be installed on the running machine?

I previously wrote a small application using, I think, PasLibVlc which supported receiving video streams from URIs, for example tcp://127.0.0.1.

If I remember correctly, though, that library was reliant on VLC being installed on the machine running the application as it used a .dll included in the VLC installation (Windows). The application I wrote checked for this and prompted the user, but as my application was 32bit and some users were installing the 64but VLC I ran into problems.

I have lost the source code for the application I wrote previously (don't ask! My only excuse it was about 6 or seven years ago), so would like to simplify the application in a rewrite.

-FM
Title: Re: Does LCLVLCPlayer support streaming?
Post by: MarkMLl on November 29, 2021, 12:15:29 pm
I can't comment definitively but various tinkering with VLC on Linux suggests that just about everything requires a fairly comprehensive installation (i.e. it's not just a single library).

However I'd also add that on (Debian) Linux it's fairly simple to add 32-bit libraries etc. to a 64-bit system, and I'd be disappointed if Windows didn't provide something equivalent... although I suppose there's a risk that with the popularity of virtualisation MS would prefer you to do things that way.

Beware of a known problem debugging paslibvlc interaction: at least on Linux communication between the library and the bits of VLC doing the actual work is debugger-unfriendly.

MarkMLl
Title: Re: Does LCLVLCPlayer support streaming?
Post by: Zvoni on November 30, 2021, 08:11:21 am
As far as i understood the source-code, you need the Libvlc-Library, but not the player itself
Title: Re: Does LCLVLCPlayer support streaming?
Post by: Pe3s on November 30, 2021, 09:19:51 pm
PasLibVlc will be a good choice. As for the installation of VLC, you can install VLC copy the VLC application folder and in onCreate Forms give the path
Code: Pascal  [Select][+][-]
  1. PasLibVlcPlayer1.VLC.Path := 'E:\VLC';
You can then use PasLibVlc without installing VLC.
Title: Re: Does LCLVLCPlayer support streaming?
Post by: fatmonk on December 01, 2021, 02:18:24 pm
PasLibVlc will be a good choice. As for the installation of VLC, you can install VLC copy the VLC application folder and in onCreate Forms give the path
Code: Pascal  [Select][+][-]
  1. PasLibVlcPlayer1.VLC.Path := 'E:\VLC';
You can then use PasLibVlc without installing VLC.

But copying and distributing the VLC library would be a breach of VideoLAN's copyright, surely.

I haven't checked, but I'm pretty sure that's not allowed.

I had the application working well with PasLibVlc years ago, as I said in the first post, but as I am re-writing from scratch I was looking for a Lazarus package that doesn't need a VLC installation as well. But it looks like that's not going to be possible with the existing libraries (which I kind of expected).
Title: Re: Does LCLVLCPlayer support streaming?
Post by: Zvoni on December 01, 2021, 03:21:20 pm
But copying and distributing the VLC library would be a breach of VideoLAN's copyright, surely.

I haven't checked, but I'm pretty sure that's not allowed.
https://www.videolan.org/vlc/libvlc.html
Quote
libVLC is a C library which can be embedded in your own applications. It works with most popular OS platforms, on both mobile and desktop. It is under the LGPL2.1 license.
Title: Re: Does LCLVLCPlayer support streaming?
Post by: fatmonk on December 01, 2021, 05:27:48 pm
Wow, thanks for that Zvoni... much appreciate you digging that out for me. I'm swamped on another project at the moment, but as soon as I get back to that at least I know I can just bundle the library if its under LGPL  :D

-FM
TinyPortal © 2005-2018