Hacker News new | past | comments | ask | show | jobs | submit login

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.




You 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


> 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.


Literally 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.


VLC even plays incomplete files which i've found useful every now and again.


> On fact, with all due respect, I never understood why VLC was so widely praised.

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.


VLC is *amazing* at its design purpose: being a rock solid video player. The GUI, the UX, and other things can be criticized, but I dare you to find another video player that will play just about *anything*, and without having to install external codec separately with weird licence.

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.


> without having to install external codec separately with weird licence.

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


It's not artificial at all. It's a real limitation that was so outrageously annoying for the reasons mentioned above that VLC was able to "win" by tackling this one issue alone.

The success of vlc is all the proof you need. As you say, why else would it be so popular?


> What's up with this artificial limitation? I'd take frame back function over not having to install some codec pack once any time

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 is amazing at its design purpose: being a rock solid video player. The GUI, the UX, and other things can be criticized, but I dare you to find another video player that will play just about anything, and without having to install external codec separately with weird licence.

MPV? You know, the subject of this post we are commenting on?

Or literally any FFMPEG-based player.


MPV use some library from FFMpeg, it is not based on FFMpeg. And yes, VLC still beat MPV and MPLayer, especially at accuracy or reading partially broken files. Although the situation has changed a lot in the last 10 or so years, and they improved a lot. But don't talk to me about UX when the two other option are MPV & Mplayer...


> I never understood why VLC was so widely praised.

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.


> Because it's the one you can reasonably suggest to all your utterly nontechnical friends and relatives

I concurr.-

PS. On a related tangent the amount of unpaid "support" tech knowledgeable individuals are doing for (particularly) FAANG is enormous.-


> PS. On a related tangent the amount of unpaid "support" tech knowledgeable individuals are doing for (particularly) FAANG is enormous.-

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.


The difference is that if your plumber friend helps you out with your toilet, Big Plumbing Inc does not get your business.

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.


> Windows/Android/Apple issues, MS/Google/etc. still get paid and save up on support costs.

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).-


Sure. I understand, and agree.-

I was just wondering about what the sum total of the (otherwise) "billable" hours might amount to, were they to be accounted for as a cost of business for FAANG.-


Well stated.

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.


I always saw VLC as subpar. A typical case of software that's just trying to copy what the pioneers do. As we all know, mediocrity it not antithetical to popularity, and VLC has become very popular indeed.

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.


> I always saw VLC as subpar. A typical case of software that's just trying to copy what the pioneers do.

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.


Wasn't CCCP bundled with malware or something back in the day?


Not that I'm aware of, nor can I find any sources talking about it. Maybe you're confusing it with DivX that did something like that (https://news.ycombinator.com/item?id=6409888)? Both were popular during the same timeframe, so not impossible you're confusing the two.


Hmm... possibly. Funny how my memory works sometimes. ;)


I see VLC as the swiss army knife that can play anything you throw at it, no matter how weird. I see mpv as a more streamlined, less abstract implementation that supports many fewer options, but can contain special-case code paths for hardware acceleration, for example. Hardware-accelerated playback on my Raspberry Pi 3 works out of the box with mpv but requires some special trick or doesn't work at all in vlc. I assume mpv's design allows it to contain a special-case code path when you happen to be playing something compatible with a Raspberry Pi's GPU on a Raspberry Pi.


What files can your VLC play that MPV can't? Both get almost all of their codec support from FFMPEG.


AFAIK, VLC was the one of the first players that was able to read all sorts of formats... back in the day, you were lucky if you could play mp2 and mp4, let alone mkv/avi/etc...

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.


> many use alternatives as mpv, IINA when I used macOS, SMplayer, etc.

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?


The 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.


> 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.


> The only reason I use mpv instead of VLC is because of the frame step feature.

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.


> 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


I 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.


> 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.


Not sure VLC is balancing anything against "potential revenue"...


The developers had a philosophy and they stuck to it. It's an open source project, not a profitable service.


I'll admit I can't weigh on whether there's a plausible strategy for implementing backwards frame step in VLC without violating any of their sacred invariants. Maybe the existence of other players with that feature implies that the VLC devs just aren't seeing it. But without that knowledge, I'm left to trust the developer's presumably deep knowledge of their own architecture when they say that it just doesn't 'fit'. It seems more likely that the other players can do it because they're architected differently, or they make a different (smaller) set of guarantees about which formats they will play back in which scenarios.

>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.


    > 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.html

I assume this means you can hire lead devs to fix bugs and add features.


VLC 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.


I 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.


VLC 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.


So can mplayer and did that way before mpv could.


mplayer was forked into mplayer2, which in turn was forked into mpv

Though AFAIK, most of the rendering code behind mpv has been entirely rewritten.


What was the cause of the fork? An unresolvable internal debate? I am curious to know more about the history.


I'll refer you to the MPV FAQ for historical context.

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.


Yet 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".


> 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.


> 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.


I'm not saying it's useless. But now it's situational, which wasn't the case in the 2000s.


    > 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"?


Everything that is provided by default by the OS.

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).


One 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.


Going 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.


I 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?


If 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?


You can only do it for certain formats


Sure but I thought VLC only supports features that work for all formats, and supporting features that work for only some formats is a no no and for that reason previous frame is not possible. Yet skip to time is allowed.


Which 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.


> 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.


    > 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".


I 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.


Wait, what? You can browse files on the iPhone just fine.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: