Disclaimer: VideoLAN president
Disclaimer: VideoLAN president
But in tl;dr: form:
Ecole Centrale Paris campus network was managed by students. In 1995, they wanted a faster network, to play video games, and upgrade from their Token Ring network.
The Univ did not want to pay so they went to see partners, and one said "put the satellite feed on your network to justify the need for a better network. We'll pay for it, instead of having 2000 dishes and decoders.". This PoC "Network 2000" was a success. Some students restarted the project in 1998 and called it VideoLAN.
In 2001, VideoLAN and all the software projects (Server, Client, network, libraries) became GPL. VideoLan Client became VLC. Community added Windows, macOS support.
In 2008, I created the VideoLAN non-profit to escape the university and make VLC grow.
Can you share any stories about offers to monetize thoroughly?
Assuming the former, that is a very nice intersection of deploying the technically most ideal solution, and business management.
I forgot about those K-Lite Codec packs and all that - even back then that stuff had bloatware with it, which was why vlc was so refreshing.
But what I primarily remember in making the switch was that VLC could play everything I threw at it, right out of the box, without installing a bunch of sketchy codec packs. And that also allowed me to basically just throw the VLC binary onto my flash-drive, and then be able to open any videos as needed from parents'/friends'/school computer by just plugging in the usb stick. It was definitely a game-changer.
I used to always install VLC in all my machines. One day, I found a file that had wonky audio -- it randomly sped up and slowed down, but in a somewhat bearable way (it was a 2h-movie,) like some weird flutter was going on. I didn't make much of it at the time. Later, I got another file that would randomly lose audio. As in, sometimes, the audio would cut for a while and then come back. Except I used to replay this file often and noticed it happen in different places every run -- this got me thinking it could have been a software issue.
At the time (this was roughly 4 years ago, I believe), I happened to see IINA mentioned somewhere, and I therefore gave it a go. It seemed to consume more CPU, but it didn't have the wonky audio in neither of these files. I became a fan and, while I keep VNC installed "just in case", I get this feeling that IINA has higher compatibility and a better interface. For example, IINA has what seems like a better algorithm for finding subtitles from a path, and it's just more well integrated with macOS.
I wish I could go back to VLC, but I keep feeling like it's going to fail me or that the UI isn't as polished/well-integrated into macOS. I hate that I feel this way because I honestly feel like I'm "betraying" this wonderful piece of software that is VLC.
I guess there isn't really another question. I'd like to say thanks, and here's to hoping that in the near future I'll go back to VLC. You have done a remarkable job and I think you should be extremely proud of yourself! VLC rocks! :)
VLC is still valuable for more technical edge cases, but I've had significant stability issues with VLC for many years and on all platforms.
IINA has never crashed on me. It also addresses so many of my minor annoyances with VLC.
Thanks VLC!
Next major release of VLC.
What's coming for the next 20 years? Are there any challenges that the VideoLAN project has unique expertise on that it can bring out ?
What does your project management do right to find the right features without adding bloat? This is the kind of thing giant software companies struggle with, and they have the advantage of feature-tracking scripts on their programs.
3 answers:
- limited resources
- modules: adding features is often just a new module, which does not slow VLC.
- only devs :)
Pretty fun, tbh.
80%+ of all Video on the Internet are still on H.264 / AVC. And vast majority of them are encoded through x264.
Their contribution to Video Encoding can not be understated.
I just wonder because she is such a legend but internet knows NOTHING.
Bit like Satoshi...
She prefer to keep herself private. Those in the community would know. So it isn't exactly Internet knows nothing.
Dumb joke: When it turns 21, what would be the drink that VLC would like?
VLC is French, so it's been drinking great wine since it was 18 ;-)
Eg your parents giving you a small glass of champagne at new year when you're 12 is legal.
* illegal to get a minor drunk no matter the age, parents must be present if the minor is under 16, minor is under parent supervision and responsibility in any case (source : https://fr.wikipedia.org/wiki/%C3%82ge_l%C3%A9gal_pour_la_co... )
We're French, we don't wait the legal age to drink. :D
Is that just a side-effect of Google constantly updating their YT infrastructure, or do you believe they are intentionally introducing changes to sabotage the ability for third-party programs such as VLC to render their streams?
To the question: I keep hearing from my younger peers that they don't see any value in out-of-browser software. To me, that's their loss. But if this attitude is prevalent, do you feel you are having a harder time attracting talent than say 10-20 years ago?
Merci encore une fois !
A lot lot lot harder than in the past. You have no idea...
(It is frustrating already that when you say that you program, a certain kind of youngster asks "frontend or backend?", and when you say neither, they say knowingly, "oh, fullstack!" (>_<) )
Nothing, but we knew it was going to be a shitstorm. Clickbait articles are very annoying.
As for the CVE system, it's utterly broken and idiotic.
I've seen people on macOS switch to IINA in droves because the interface looks very slick and modern (yet functional!). I understand VLC is not in the business in chasing the latest UI fad, but the first thing people who don't know VLC notice about it is how archaic it looks.
yes, for 4.0
It cannot, no. See https://news.ycombinator.com/item?id=14409234
Chrome and other browsers and apps, and drivers like virtual webcams, and libraries like Syphon, can all pass "zero-copy" image buffers around between different processes by sharing buffers in GPU memory (or main memory too of course) and sending IPC messages pointing to the shared buffers.
That's how the browser's web renderer processes efficiently share the rendered images with the web browser user interface process, for example. And how virtual webcam drivers can work so efficiently, too.
Check out iOS/macOS's "IOSurface":
https://developer.apple.com/documentation/iosurface
>IOSurface Share hardware-accelerated buffer data (framebuffers and textures) across multiple processes. Manage image memory more efficiently.
>Overview: The IOSurface framework provides a framebuffer object suitable for sharing across process boundaries. It is commonly used to allow applications to move complex image decompression and draw logic into a separate process to enhance security.
And Android's "SurfaceTexture" and GL_TEXTURE_EXTERNAL_OES:
https://developer.android.com/reference/android/graphics/Sur...
>The image stream may come from either camera preview or video decode. A Surface created from a SurfaceTexture can be used as an output destination for the android.hardware.camera2, MediaCodec, MediaPlayer, and Allocation APIs. When updateTexImage() is called, the contents of the texture object specified when the SurfaceTexture was created are updated to contain the most recent image from the image stream. This may cause some frames of the stream to be skipped.
https://source.android.com/devices/graphics/arch-st
>The main benefit of external textures is their ability to render directly from BufferQueue data. SurfaceTexture instances set the consumer usage flags to GRALLOC_USAGE_HW_TEXTURE when it creates BufferQueue instances for external textures to ensure that the data in the buffer is recognizable by GLES.
And Syphon, which has a rich ecosystem of apps and tools and libraries:
>Syphon is an open source Mac OS X technology that allows applications to share frames - full frame rate video or stills - with one another in realtime. Now you can leverage the expressive power of a plethora of tools to mix, mash, edit, sample, texture-map, synthesize, and present your imagery using the best tool for each part of the job. Syphon gives you flexibility to break out of single-app solutions and mix creative applications to suit your needs.
Of course there's a VLC Syphon server:
> - you need to be able to open files without user interactions (no file picker), in order to open playlist, MXF or MKV files;
> - you need raw access to /dev/* to play DVD, CD and other optical disk (and the equivalent on Windows);
> - you need ioctl on such devices, to pass the MMC for DVD/Bluray;
That's what xdg portals are for: display a native file picker, pass the file descriptor. https://docs.flatpak.org/en/latest/desktop-integration.html?...
> - you need the same if ever you have a database of files (media center oriented);
Well, portals can also punch holes selectively to select a folder, I think. Plus, the database can sit inside the sandbox.
> - you need raw access to /dev/v4l* for your webcams and be able to control them;
Pipewire should sidestep that issue, though it
> - you need access to the GPU stack, which is running in kernel-mode, btw, to output video and get hw acceleration;
> - you need access to the audio stack, also in low-level mode;
> - you need access to the DSP acceleration (not always the GPU);
> - on linux, you have access to x11 for the 3 above features, which is almost root;
Wayland is here to stay. You just need access to DRI, which is a common use-case with flatpak/DRI. Admittedly, I know nothing about DSP interfaces. Not sure why you'd need low-level access to the audio stack, and not just pipewire or pulseaudio.
> - you need access to the system settings to disable screensavers, and adjust brightness;
> - you need to expose an IPC (think MPRIS on Linux);
All of this is handled via d-bus or portals (inhibitors, MPRIS), so fine for flatpaks.
> - you need to unzip, untar, decrypt, decipher and so on;
Usually provided as part of the Flatpak runtime.
> - you need access to mounts to be able to see the insertion of DVD/Bluray/USB/SD cards and such;
Well, desktop environments usually offer to open new devices with vlc. That could be a lost feature, but I didn't even know it was there.
> - many OpenGL client libraries need access to the /etc too;
Not sure about this one. Do they? What for? Couldn't a sandboxed /etc do?
> - you need access to the network, as input and output (think remote control);
Yes, you're right, that's one extra permission. I wish it was possible to ask for it at runtime with flatpak, on first use. I don't think even Android supports asking for this at run-time.
> - you need access to /etc/ (registry) for proxy informations, fonts configuration and accessibility;
> - you need access to the fonts and the fonts configuration (see fontconfig).
Proxy information is provided via a portal that should be automatically used by Qt: https://docs.flatpak.org/en/latest/portal-api-reference.html...
Theming is handled as runtime extensions, though I admit it's often broken (OK, most theming is broken for me under sway as I didn't bother setting it up: https://docs.flatpak.org/en/latest/desktop-integration.html?...
No idea about accessibility.
--
It looks like some progress is being made on flathub, though it still needs filesystem access, notably for subtitle files: https://github.com/flathub/org.videolan.VLC/issues/108
> That's what xdg portals are for: display a native file picker, pass the file descriptor. https://docs.flatpak.org/en/latest/desktop-integration.html?...
This doesn't fulfil the "without user interaction" bit, though, does it? The problem with those "let the user pick a file and the program just gets an opaque file handle"-style solutions is that they break down for any kind of file format that implicitly or explicitly consists of more than one single, atomic file that can stand for itself and doesn't require accessing data stored in other files.
E.g. playlists (letting the user pick the playlist through the OS-blessed file dialogue isn't enough, as you also need to access all media files referenced by that playlist), any kind of multi-part files (multi-part MKVs, multi-part RAR archives, whatever...), subtitles (the current expectation is that if you open a video, the video player is able to automatically find matching subtitle files stored in the same directory), locally stored HTML documents (your browser might need to load additional CSS/JS/images/... and you might also want to follow any links without having to go through a file picker each time...)
For now, I think you could use a directory picker, but that's not exactly ideal either.
* VideoLAN Server
* VideoLAN Bridge
* VideoLAN Channel Switcher
The press release doesn't focus on them much, either. I don't see them on the project page. Can you describe what happened with them?
Also - how you've chosen projects you've started more recently (like multicat or the VLMC editor)?
They are dead. VLS features are now done with DVBlast. The other are useless with modern networks.
Maybe I missed this discussion already but as much as I love VLC sometimes it feels like I'm using a semi truck to drive to the store and back.
We don't remove them, because besides disk space, they don't take any CPU or RAM of the user.
What does this mean?
Pull = you at the surfpad, pulling from the computer.
Unrelated: Have you tried catt? https://github.com/skorokithakis/catt
Same thing with catt, which also suffers from having a poor UI.
I found it used in professional print mastering where the large-format printer(s) which printed the masters were connected to an NT3.x server by VideoLAN using ethernet cable, then a second NIC having regular ethernet drivers connected the NT box to the artists' network who were using Apples.
With the amount of data they were sending in one direction once it got started, they were really streaming and apparently multicast was a click away when you wanted all the printers to print the same thing at the same time.
Naturally this was well over 20 years ago, but I imagine there was some nice wizardry to get old computers to perform so much better than they could as office machines.
Probably still have that driver somewhere, IIRC the driver would install in XP (but only to one of the few NICs in the INF file) but the pro printer app did not have an XP version and even the NT4 version would not install in W2k or Wxp.
Also, if you can offer native accessibility support would be much better for screen reader users. Currently, I need an extension for NVDA to use the VLC player.
it's already doable. But it does disable the display of subtitles.
First result on google.
Potplayer became adware too...
Next major release
Additionaly is there any plan to incorporate youtube-dl in VLC for iPhone? It would be super beneficial to be able to download an entire YT playlist for offline consumption with VLC instead of first downloading it on a computer and then transferring the files to VLC on a mobile device.
VideoLAN does not make any money outside of donations.
I have a startup, called Videolabs since 2013.
Or is there a post-processing solution to upscale video for VLC?
I've seen some impressive neural net solutions for upscaing, but they haven't been open source.
yes.
No. We're moving some parts to QML, but that's C++ (and the part that are JS are moving to C++ in Qt6)