> this feature is algorithmically impossible
> You're just looking at one specific video, not the general problem.
> is not generally possible.
As a fellow multimedia dev, man, who cares? Sometimes we forget that software ought to be useful, not hypothetical ideals of truth. Just implement the feature for those codecs that support it and which probably are in the 98% percentile of what users actually use, regardless of the damned "general case".
Or accept and announce shamelessly that you don't have either the knowledge or the development resources to tackle such a complex feature. But excuses about not being possible for absolutely every possible codec in a completely generic way is just denying that the world is just a chaotic and dirty place where things are not ideal nor perfect. Just give your users a real-world solution (or rejection).
VLC is what it is today because the authors understood video standards enough to make the _right_ abstractions that could generalize to ~every video format ever. That is no easy task. Video container standards are utterly perverse, and seem to delight in stomping over even the most innocent intuitions about what you would expect to find in a stream of bits that purports to contain "video". They often refuse to make even basic promises, like "the first frame's timestamp starts at 0" or "every parcel of data has a timestamp". Seemingly reasonable ideas that a neophyte might propose, like "suppose we store the video's framerate-" must be immediately interrupted with "you FOOL, there IS no framerate, nothing can be certain, this video might not even have frames, it might in fact be an interactive gift basket experience merely PRETENDING to be an mp4-". That's just the nature of the beast.
A playback architecture that can wrangle all of that cruelty into a consistent experience was hard won. Of course they're not eager to throw new features into the mix that will pollute that mental model, and suddenly introduce thousands of codec-vs-player-feature checks that were heretofore ruled out in principle. At a certain point, the architecture is sacred, and it's the only thing making VLC maintainable. If a feature doesn't work for everything, it doesn't work.
On fact, with all due respect, I never understood why VLC was so widely praised. It is the only player to stutter for me on Windows, to get lost in its settings page, to have a terrible playlist implementation that's forced upon you, doesn't handle corrupted media as well as others, etc. mpv on the other hand does one thing and does it very well.
I'll skip ranting about VLC for Android TV this time
It's praised because it "plays everything."
It developed this reputation in an era when even average people were installing numerous DirectShow "codec packs" (often of dubious pedigree) in an often futile effort to "play that thing I just downloaded" from the P2P file sharing network du jour.
For a number of reasons, installing a bunch of these codec packs would often leave video playback broken globally[1]. Since VLC is cross-platform, it does not use DirectShow, and would "fix" a system that had been "broken" by other software.
[1]: most of these issues could be fixed with the GraphEdit utility, which offered a simple but powerful UI for configuring and testing every codec in the system. GraphEdit should have been included with Windows, and be something you could invoke from within Control Panel.
For me the alternatives back when i first wanted a video player that could play various file formats were Media Player Classic (which worked only on Windows and relied on external codecs that sometimes didn't fully work), mplayer (which had annoying arcane commandline switches and weird shortcut keys), Totem (which used gstreamer which 90% of the time either didn't had the codecs i wanted or they were very buggy). More recently the only alternative seems to be mpv (which seems to be a mplayer fork that persists with the arcane switches and apparent hate of anything resembling a discoverable GUI).
VLC on the other hand is available on anything that has a display (or at least anything that has a display and i'd want to play videos on it - that is currently Linux and Android and sometimes Windows) and has a GUI that while might be a bit on the overloadedly bloated side, at least it shows everything you may (and often you may not) want to configure, with actual menus, categories, tooltips, etc. And when it comes to the most common aspect, playback of videos, it shows a simple and to the point UI with the play, seek, volume, etc buttons that you'd need 99% of the time (that admittedly most other players do too, except they don't do the 99% rest of the GUI that VLC does).
So, basically VLC is my preferred video player largely because 20 years ago i didn't had to read a tutorial on how to select the subtitle language (or something along these lines) and was able to play pretty much any video i threw at it without any extra fuss.
However, it never pushed the envelope in terms of codecs, features and performance and as a result was never at the forefront of opensource video playing: mplayer got the ball rolling with rapid breakthroughs including hardware acceleration (e.g. /dev/mga_vid) before standards such as xvideo even existed and that spirit of technical excellence has been passed on to Mpv which remains at the pinnacle.
Because it's the one you can reasonably suggest to all your utterly nontechnical friends and relatives to get them to stop downloading random sketchy exe's from the internet to install codecs.
mpv, and mplayer before it, has always been better for me and I find VLC to be pretty shoddy. But when it comes to people like my mom, I don't hesitate to sing praise for VLC. In that context, VLC is the greatest thing since sliced bread and I don't muddy the waters by even mentioning mpv.
I concurr.-
PS. On a related tangent the amount of unpaid "support" tech knowledgeable individuals are doing for (particularly) FAANG is enormous.-
What pioneer is/was VLC trying to copy? Media Player Classic? Windows Media Player? Before VLC, the ecosystem of video players was a mess, and if you came across a format you didn't already had installed codecs for, chances were you couldn't play that file. But VLC always could play it, no matter what file, as long as it said it was a video file.
> However, it never pushed the envelope in terms of codecs
VLC literally took over the world because you could install VLC and VLC only, and stop having to care about codecs at all, at the time at least. Maybe today it's different, because the ideas of VLC already spread, but at the time, things were different.
I personally use mpv most of the times today, but when I got started with computers and didn't understand as much as I do now, installing codecs to be able to view some video I just downloaded was a pretty confusing task. CCCP (Combined Community Codec Pack) for MPC helped a lot, but to even get to that point took some time.
You can throw at it a broken mp4 file, a https url with basic auth, a weirdly encoded video, a DVD full of scratches, etc, chances are VLC will manage to play it (at least what is playable). There is just no other video player in the world that achieve that.
A lot of other video player might beat it at other features, but just straight video playing, VLC is just the best.
Sadly VLC devs have let their software deteriorate to the point where VAAPI hw decoding doesn't even work anymore, they think it's ffmpeg's fault... except ffmpeg supports it just fine, VLC is just too lazy to update their ffmpeg calls to use the api correctly.
What's up with this artificial limitation? I'd take frame back function over not having to install some codec pack once any time
And 99.99% of the time you don't play "everything, with scratches", so UX issues are much more consequential than that
The success of vlc is all the proof you need. As you say, why else would it be so popular?
VLC has a few nits, e.g. common settings and useful functionality buried somewhere. Like mouse gestures for instance, you have to go out of your way to enable them and cannot customize the mapping.
mpv on the other hand, I have multiple config profiles different viewing purposes. It introduced me to ffmpeg, which as someone who became a dev later in life, made me more comfortable with using cli tools and diving in to documentation. Being able to tinker made me feel like hackerman.gif and is one of the things that things that helped my career transition.
But yeah, not for my mom or wife, VLC is best for them.
Those are all basically the same alternative in terms of backend. They're all based on ffmpeg and of mplayer lineage. I don't think there are many (any??k others comparable to VLC in terms of covering so many formats that are independent of FFMPEG. Maybe GStreamer?
Which is exactly the same for every profession. If you have a plumber friend and have issues with plumbing, who you call first, a random contractor or your friend? Replace "plumber/plumbing" with any profession and the answer is usually the same, you call your friend first, at least to get some more understanding before reaching out to a contractor.
Then VLC is not for you - and there's nothing wrong with it or you - you just happen to have differing priorities. Back when the Internet was more p2p, the ability to play uncommon media formats and containers was crucial. Even today, VLC offers a lot of value to anyone who has to playback media whose encoding they have no control over.
VLC has other useful features as well (like streaming while playing back, allowing for multicomputer watch parties on the same network)
MPV? You know, the subject of this post we are commenting on?
Or literally any FFMPEG-based player.
If however your tech friends help you with Windows/Android/Apple issues, MS/Google/etc. still get paid and save up on support costs.
These two situations aren't even remotely comparable.
This was kind of like what I was getting at: Kind of wondering what the total savings for FAANG on support costs would amount to, factoring in all this "offloaded" support that they hand off to their own customers (or, affiliated tech-savvy individuals).-