> 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.
No, it hasn't. The only reason I use mpv instead of VLC is because of the frame step feature. Everyone else has proven that it is possible and practical to do.
Never let the perfect be the enemy of the good. If people don't use your product, it doesn't matter how right and pure of vision you are.
VLC's poor performance in seeking backwards in general, not just by frame, is a big part of why it's no longer my media player of choice. Which is fine! As an OSS project there's no real reason to care about the number of users as long as enough people are involved to sustain the project, and making the developer experience pleasant is more important than making the user experience pleasant on that front. It just means it's not as good a tool for some users as others, like mpv.
You realise your requirement is important for less than 0.01% of users? For every requirement you have to balance future maintainability and the impact it has on the code base against potential revenue
so from VLC's point of view your problem is solved - you have a good, open source video player that lets you step back a frame and you are happy to use it. they don't need to be all things to all people.
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
VLC used to be the dominant video player for this reason, but then everything has crystallized around h.264 (and h.265) which made the breadth of codec support not as important anymore, making VLC slowly losing relevance because they aren't focused on user experience enough.
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.
You say that but just yesterday i used VLC to play some old videos i had which AFAICT were in RealVideo format or something like that.
And i transcode everything i want to watch in my Android tablet (where i also use VLC) to mpeg2 because the tablet is ancient (10+ years old) and can't handle anything newer, so i am glad that VLC a) still works on the ancient Android OS it has and b) still supports an old outdated but CPU light video format :-P.
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
VLC is the least common denominator of video players. Its UI is asinine and the two primary reasons for its popularity are its iconic logo and multi-OS compatibility.
I admit you're probably right on the topic of stepping backwards by one frame, but I wouldn't be so quick to shower VLC with broad praise like 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.
Even outside of specialist uses (and not just in the field of video, either), most people like being able to pause a video on a specific frame to be able to study it more closely. Often that requires (or at least the task is made much simpler by) being able to step forwards and back frame-by-frame.
>Never let the perfect be the enemy of the good. If people don't use your product, it doesn't matter how right and pure of vision you are.
This is great advice... for a business. VLC isn't a business, it's a useful thing that exists. It gives people fulfillment to donate their time to keep it useful and relevant. That fulfillment is going to be directly proportional to how elegant the design is and how much leverage they have, i.e. small amount of good code provides wide amount of functionality for many happy users. The more that maintenance of VLC degrades towards "brutal hand-crafted specialization of huge switch cases", the less well-maintained it's going to be. This is not an excuse, it's a statement about human nature, something akin to economics.
It's possible that mpv picked a better abstraction and they can provide a strictly better application for the same or less software maintenance cost. But I tend to suspect that the differences arise from levels of support, not better design. That's just a spider sense though.
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)
> VLC isn't a business
On the surface this is true, but my guess: The core team work as consultants. See "Consulting services" -> https://www.videolan.org/videolan/partners.htmlI assume this means you can hire lead devs to fix bugs and add features.
> Its UI is asinine
Well, that's not a very nice thing to say. And, it isn't productive to the conversation.What is it about end-user software with a GUI that seems to trigger such heated, emotional responses on HN? Each time that I read discussions like these, everyone and there uncle pops into the conversation to add the "one thing" they don't like about it. Or "I'll never use it again after that UI bug from 2004." It is exhausting. One thing that I have learned over the years: Never ask a dev their opinion about a UI. Or, if you do, make sure to ignore whatever they say. It is mostly complaining about "hang-nails".
> slowly losing relevance
I love this type of editorializing language. Ok, if VLC is "slowly losing relevance" (a claim for which you provide no evidence), what player is "slowly gaining relevance"?Installing VLC used to be one of the first things people did on a new computer, including many non tech-savy people, along with a web browser that isn't IE/Edge.
Now the fraction who bother installing it is much smaller. The default video player is good enough for most usage (overall usage has declined anyway because of streaming).
It's also not like only some very nieche professional-only formats will have the required indexes. No, 99.99% of videos support accurate-enough seeking because that's something most people expect to be able to do with their video files.
You are also making it sound like VLC is the only player that has managed to support a wide range of formats when there are countless of ffmpeg-based players that manage to do that, like the subject of this post.
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).-
https://github.com/mpv-player/mpv/wiki/FAQ#how-is-mpv-relate...
There were lots of drama in the media player scene. Even "wm4" the original maintainer, who forked mplayer2 into mpv, is no longer with the project: he deleted his Github account and disappeared.