7 ms·
Disagree! VLC is what it is today because the authors understood video standards enough to make the _right_ abstractions that could generalize to ~every video
by sebastos 2y ago
Disagree!
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.
- tumult 2y agoVLC doesn't have perfect compatibility. I think it worked correctly on random video files less frequently than mpv the last time I tried it. And mpv can actually step forward and back frame by frame.
- 77pt77 2y agoSo can mplayer and did that way before mpv could.
- dikei 2y agomplayer was forked into mplayer2, which in turn was forked into mpv Though AFAIK, most of the rendering code behind mpv has been entirely rewritten.
- throwaway2037 2y agoWhat was the cause of the fork? An unresolvable internal debate? I am curious to know more about the history.
- dikei 2y agoI'll refer you to the MPV FAQ for historical context. https://github.com/mpv-player/mpv/wiki/FAQ#how-is-mpv-related-to-mplayer 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.
- ruszki 2y agoI found MPV because VLC was unreliable. Seeking was especially crazy sometimes, and not that I couldn’t seek to the exact moment, but I couldn’t seek at all. Even displaying was broken sometimes regardless of file types. I had none of these issues with MPV for the same files.
- neckro23 2y agoVLC is sometimes so unreliable for me, especially when seeking or frame-stepping, that it stops responding to playback commands entirely (although it pretends to still work) and I have to kill the zombie process before I can even re-open the file and try again.
- JTyQZSnP3cQGa8B 2y agoI know the devs are good and they want the feature to be perfect, but it reminds me that they removed the ability to browse files on the iPhone which is unexplainable, or show that they are a bit in denial of what users need, which is confirmed by this thread.
- borski 2y agoWait, what? You can browse files on the iPhone just fine.
- kstenerud 2y ago> A playback architecture that can wrangle all of that cruelty into a consistent experience was hard won. 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.
- MattDaEskimo 2y agoThe developers had a philosophy and they stuck to it. It's an open source project, not a profitable service.
- namdnay 2y ago> No, it hasn't. The only reason I use mpv instead of VLC is because of the frame step feature 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
- topato 2y agoNot sure VLC is balancing anything against "potential revenue"...
- Sophira 2y agoI assure you the figure is much, much greater than 0.01%. 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.
- namdnay 2y ago> most people like being able to pause a video on a specific frame to be able to study it more closely I think the vast majority of people just want to be able to watch the film they downloaded.
- somnic 2y agoThe choice not to implement it for architectural reasons is entirely up to the devs, is likely justified, and in most cases users acting entitled to support and feature additions from OSS developers who are volunteering their time is something I side against. But the devs also should be able to talk to people who aren't marinated in that same viewpoint, for their own sake if nothing else. The leap from "there exist cases where implementing this feature in a performant manner wouldn't be feasible" to "we shouldn't implement this feature even for the many cases that would support it" isn't going to be obvious to everyone. 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.
- langcss 2y agoIf so, how comes you can do the workaround one suggested of entering a time one second ago then going forward a frame at a time?
- sph 2y agoYou speak as if VLC is the pinnacle of video player technology. I know it is an open source darling, but it's been a buggy, overengineered mess since forever, which is why many use alternatives as mpv, IINA when I used macOS, SMplayer, etc. 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
- RulerOf 2y ago> On fact, with all due respect, I never understood why VLC was so widely praised. 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.
- Refusing23 2y agoVLC even plays incomplete files which i've found useful every now and again.
- account42 2y agoLiterally every FFMPEG-based player will play whatever you throw at it. While it may be an advantage over basic bith OS-provided players it hasn't been a unique selling point for VLC for a long long time.
- badsectoracula 2y ago
- littlestymaar 2y ago> 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. 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.
- badsectoracula 2y ago> h.264 (and h.265) which made the breadth of codec support not as important anymore 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.
- littlestymaar 2y agoI'm not saying it's useless. But now it's situational, which wasn't the case in the 2000s.
- mijamo 2y agoOne could argue video players in general just lose relevance in an age of streaming ... And everything has definitely not crystallized around h.264. plenty of sources will give you widely different things, for instance digital cameras, webcam, even screen recorders. Basically most of the input is in completely different formats. If you were thinking about pirated movies then it is of course more the case, but I wouldn't think it is the biggest use case of VLC. I for one appreciate being able to read both Mac screen recordings and clips from my DSLR with the same software without installing a bunch of weird stuff.
- throwaway2037 2y ago> 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"?
- hollerith 2y agoI wonder: Is this why vlc delays for 5 to 10 seconds every time I use the "skip backward" functionality on my iPad, where other players don't have that delay?
- ryukoposting 2y ago> VLC is what it is today 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.
- throwaway2037 2y ago> 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".
- quotemstr 2y agoYet the bumblebee flies. mpv does, in fact, have a working "go back one frame" button, so VLC protestations that such a thing is infeasible look silly now. Great example of "red pen" versus "blue pen" thinking: we should spend less time decrying things as wrong or impossible and more time looking for approaches that we might have overlooked. Less "no", more "yes, if".
- aoeusnth1 2y agoGoing back one frame is about as hard as going back one second. VLC allows you to click on the bar to go back to a time, which doesn’t work in all video formats (as mentioned by the dev). Going back one frame would not be any harder or more variable across formats than going to a specific time.
- account42 2y agoWhich is why VLC doesn't implement seeking because that only works for indexed formats? No of course not, that would be ridiculous, right? And if you can seek somewhat accurately you can then skip to a specific frame with bounded time. If your idea of supporting a multitude of formats is to only support the lowest common denominator then your software is not going to be very useful. 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.