I have an idea for a media player GUI, which I'd like to build using Electron (because it's a tool I know well; I realise it's not for everyone). I could do this easily using an HTML <video>
element and some custom UI around it, but that would only be able to play a few formats.
I want it to be able to play as many different video formats as possible. So I'm wondering about trying to use libvlc.
The libVLC (VLC SDK) media framework can be embedded into an application to get multimedia capabilities.
I currently know very little about libvlc (or C libraries generally), but I'm hoping it might be possible to interface with it from Node/Electron so I can get it playing a video file inside my Electron GUI.
Before I dive into the libvlc docs, I'd like to know:
- Is what I'm aiming for even possible?
- Are there any existing and maintained open source apps using libvlc for video playback inside their own GUI, that would be good for me to look at?
- On a high level, how does an application actually use libvlc? Does the app make a call to libvlc saying "please play
some/file.mp4
in a video window of X by Y, at these coordinates on the screen", or is it more like "please playsome/file.mp4
and stream me back the decoded video frames so I can render them on my own canvas"?
(BTW there is a project called node-vlc which looked promising but it's unmaintained for over 5 years.)