> 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).
I don't know how they get away with that though. In the coding work that I do, I'm constantly dealing with rules that have exceptions on top of exceptions. I just need to special-case some things, because the alternative is not delivering what the business needs.
It's also not consistently applied. VLC will happily let you jump around in the videos, so his claim that the only way to do it is to play the video as fast as possible from the start of the video just doesn't jive with what is already there.
What are you even saying about the choas of the world?! Every dev knows how work is. You are just describing every other software job. Somehow it sounds like you are boasting how matured you are just because you do what your client asks/needs. Even then, many business/software make a concious choice to support or not support something based on some guidance. The guidance could be some core principles or just some product managers whim.
It's highly likely that VLC developers chose not to support the feature for the very reason(s) that's described in the post. It's a concious choice they made. I don't see anything wrong in that. They definitely are not some school kids with some daddy issues to hide behind some code. They clearly have answered all the questions from a technical stand point.
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.
In your job, you have to special-case some things because the alternative is not delivering what the boss wants. Regardless of the problems this may cause, or how much tech debt it generates - those are (in the end) business decisions, and while you can make a case to the boss that implementing the special case feature is going to cause huge problems, it's the boss's call as to whether it gets implemented.
In an open-source project the maintainer is the boss. If the maintainer thinks that the feature is going to cause problems, they're totally free to say "no, I'm not going to implement that feature". And, ofc, because it's FOSS, the user is totally free to fork it, or submit a PR for the feature, or whatever.
> just got here from a Google search. I gotta say the replies from Remi sound defensively toxic. I'm not here to program the app, I'm just here to find a simple feature and/or request it.
I think Remi sounds curt rather than toxic. There's no automatic right for anyone to go to a FOSS project and request a feature and have it implemented. The maintainer is perfectly within their rights to just say "no". It's their project, their code, their time, and they're free to do/not do anything they like with it.
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.
Or using a status field to check something is ok or not, instead of always checking the data itself.
People make wrong assumptions, and requirements change. Don’t make it all rigid that you always need to implement every case
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
Once the devs have made clear they don’t plan to do exceptions (as other softwares do) then users should accept it and move on instead of keep harassing volunteers.
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.
I've long since come to the understanding that if I want software that are useful, I must go and pay for it. Commercial software exist to make money, and to make money they must be useful.
If I want software that are hypothetical ideals of truth, I go and shitpost at the nearest neckbeard communion. Free-beer software exist to satisfy a man's desire to display his voluminous beard, everything else is tertiary.
I see Rémi Denis-Courmont's arrogant attitude and disrespect for users and developers hasn't improved in all these years. And neither has VLC's spectacularly awful UI. Coincidence, or cause and effect?
https://news.ycombinator.com/item?id=13573499
DonHopkins on Feb 5, 2017 | parent | context | favorite | on: Nullsoft: The death of the last maverick tech comp...
VLC's UI sucks so terribly, it's like they went WAY out of their way to make it sucks on purpose, and stubbornly refuse to acknowledge that there are any problems or ever consider fixing them. One example of many [1]:
Type CMD-E (on Mac, or whatever the equivalent is on Windows) to get the video effects window.
Select "Geometry". Now check "Magnification/Zoom".
Notice how you get a picture-in-picture in the upper left corner, with a white rectangle showing the zoomed area, that you can move around by clicking. But if you press and hold, it also drags the entire windows (on a Mac -- I haven't tried on Windows -- VLC's UI and behavior on Mac and Windows diverges widely so I won't try to predict what happens).
Now look underneath the picture-in-picture and notices some ugly upper case pixelated text that says "VLC ZOOM HIDE". See how it's jaggy and rendered at the resolution of the movie you're playing itself, not at screen in a full resolution overlay with readable text?
Now look at the triangle with a jaggy curved hypotenuse below the jaggy words. That is the zoom "slider" (which also drags the window when you drag the mouse, so it's more like a clicker than a slider). See how it gets narrower and narrower in a succession of jaggy stair-step chunks, until it's merely one jaggy pixel wide? Well guess what: the TARGET AREA also gets narrow to match the width of the slider, so it's almost impossible to click on the bottom of the slider, to select the larger zoom sizes! Since the zoom slider is not very tall and its pixels fat and jaggy, you don't have fine grained access to very many zoom sizes at all, either. The zoom pixel steps are much bigger than screen pixels, depending on the video resolution!
What possible purpose could that serve? Why would any user guess that the lower narrow part of the slider represents a wider zoom showing a bigger rectangle over the picture-in-picture, while the top wider part of the slider represents a tighter zoom showing a smaller rectangle over the picture-in-picture? And what slider have you ever used that gets narrower from top to bottom, with a jaggy curve, and an impossibly narrow hard to click target area at the bottom?
This single facet of VLC's terrible UI deserves to be front and center in the User Interface Hall of Shame [2] -- it's even worse than Apple's infamous schizophrenically skeuomorphic QuickTime 4.0 player [3], from 1999! The latest version of VLC in 2017 is still much worse than the shameful QuickTime player was 18 years ago!
Who could have possibly gone so far out of their way to design and implement such a terrible user interface on purpose, then smugly brushed off and ignored 16 years of bug reports and cries for help on the VLC message boards, without harboring a malicious contempt for their users?
That's not even the worst of it. Now check "Transform" and pick one of the transforms like "Rotate by 90 degrees". Guess what? The magnification interface itself is rotated 90 degrees, because it's drawn on the video before it's rotated, so now it appears at the top right of the screen, rotated 90 degrees itself.
And guess what else? The mouse clicks are not even transformed properly, so clicking on the magnification interfaces does NOTHING, rendering it completely useless! Depending on the aspect ratio of the video, you can't even click in the upper left corner where it USED to be and SHOULD still be to operate it, because it is clipped off the right edge of the window.
Are those ugly cosmetic and impossible usability problems not bad enough for you? Then make a playlist with one item. Select "Repeat" mode. Play the movie. Now go to the finder and remove, rename or move the movie you're playing, or just unplug the USB stick containing the video. Not an uncommon occurrence, right? Now VLC will hang up, consuming 100% of the CPU time, often times seizing up the entire Mac, turning on the fan, locking out all user input, and forcing you to reboot! This happens to me all the time.
These bugs have been around for years. The more you fiddle around with it, testing out the edge cases and trying to combine various poorly designed and implemented features, the more bugs you find.
File a bug report, they say. People report these problems again and again. The developers just ignore them and brush them off. I've tried reporting these and other bugs, describing them in meticulous detail, which is frustrating because once I start writing step-by-step instructions to reproduce one problem, I keep finding more and more problems, each worse than the last, and then they just brush me off and ignore my bug reports too.
VLC's user interface is maliciously terrible in so many ways, the developers are careless and arrogant towards their users, and there's no hope of the developers ever changing their ways, acknowledging the problems, and improving it. Instead of improving usability for everyone, they're more interested in adding yet another obscure anime decoder feature so they can watch their AMV cartoon porn [4] [5].
[1] http://imgur.com/gallery/g0acV
[2] http://hallofshame.gp.co.at/index.php
[3] http://hallofshame.gp.co.at/qtime.htm
[4] https://www.videolan.org/vlc/releases/2.1.5.html
FOR ANIME FANS
New 6.1 downmixer to 5.1 and Stereo from MKV/Flac 6.1. Correct YUV->RGB color matrix in the OpenGL shaders. Improved MKV support for seeking, and resiliancy. Editions support in MKV. Better subtitles and metadata support from MKV. Various ASS subtitles improvements.
[5] https://myanimelist.net/forum/?topicid=208770
Now, if you are an AMV (Anime Music Video) creator and want to edit the video directly, the MKV is your best friend since it's a lossless video-content container due to the fact that you will find yourself adding effects to the video frames/audio. In this case you will want to lose as little as possible in your video, so MKV compression best suits.
TOPIC ANSWER: The reason why MKV is popular for anime is because of it's noted lossless compression. Anime show creators most likely notice this fact and use it to contain their video frames and audio tracks for maximum quality. - it has nothing to do with HD.
derefr on Feb 5, 2017 [–]
> Instead of improving usability for everyone, they're more interested in adding yet another obscure anime decoder feature so they can watch their AMV cartoon porn Mind you, FOSS is contributed to by people scratching their own itch. It's not so much that VLC has a lot of otaku developers; it's that a lot of people who watch (or subtitle) "AMV cartoon porn" see a problem with, or missing feature in, VLC, and think "I'm a programmer; I can fix that", and dash off one-off patches.
DonHopkins on Feb 6, 2017 | parent | next [–]
It just puzzles me that out of eight bullet points summarizing the new features in VLC 2.1.5, one of them was "FOR ANIME FANS" and none of them were "FOR USABILITY". It's the contempt and dismissal that the developers show to usability bug reports when they brush them off and ignore them, which bewilders and frustrates me. Go read some of the discussion group postings and bug reports over the many years, and you will see what I mean. It's a deeply entrenched pattern of behavior.
majkinetor on Feb 6, 2017 | parent | prev [–]
Its very hard to contribute patch to foss tool in general. There is no substitution for agile development team.
DonHopkins on Feb 6, 2017 | root | parent [–]
Oh I certainly wanted to contribute to the VLC project and integrate it into my own projects, but after having my concerns that I wrote up in great detail flippantly dismissed with such contempt, and seeing how the exact same thing happened to other users reporting legitimate longstanding bugs who were brushed off and ignored over so many years, I had no interest in contributing after that. It's fortunate that not every open source project suffers from such arrogant developers as VLC.
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.
Even if it were free, wouldn't you want to do something nice (like give them money) for the person(s) who made the useful thing for you?
Where is that commercial kernel that works over a wide spectrum of architectures and system sizes?
Where is that commercial compiler that works on many architectures?
Where is that commercial packet capture software that people a paying for to get work done?
Where is that commercial emulator that can run your operating system on a very different machine in countless combinations.
The list could go on and on...
> If it's so easy, why are you not doing it? Talk is cheap.
> I'll be waiting for your patch. Surely you're not as lazy and incompetent as the existing volunteer developers.
I'd say that is pretty toxic.
Specifically, that is no way to talk about other volunteer developers that contribute their time. It is precisely the kind of language that keeps people away from contributing to open source. It's the very definition of toxic.
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.-
The biggest reason anime people prefer mkv to mp4 is because mkv supports the ASS/SSA subtitle format, which is favored by the anime subbing community for its extremely versatile formatting options. For instance, it is common for subbers to cover up signs containing Japanese text with translated subtitle text, tracked to the video, styled and transformed to appear virtually seamless. Less relevant but still important to some people, mkv supports a plethera of old (and very lossy) video codecs, which is sometimes relevant when it comes to repackaging old encodes of hard to find media. Being able to copy in the old video codec without transcoding preserves what little quality there is while allowing you to package it with modern subtitles. Mkv also has superior support for chapters, metadata, etc.
But I get it, you hate anime and think weebs are pervs. I thought you were a man who values tolerance highly, but whatever man. It has little bearing on technical matters. Incidentally, anime people generally favor mpv above VLC, because the ASS/SSA support is a lot better in mpv (mpv uses it for rendering the psuedo-GUI.)
As for the bugs and UX issues in VLC, I assume that your claims are more accurate than your understanding of media containers, but VLC is nevertheless the best video player to recommend to nontechnical users you might find yourself playing tech support for. They won't tinker with it and therefore won't discover most of the issues you're talking about. What they'll get out of it is a media player that plays whatever file they throw at it, without feeling the need to run sketchy "codec packs" they found god knows where on the internet.
The meaning here is "if you think the existing contributors are as incompetent and lazy as you are implying, then do better".
I think he got caught up in the argument and that he should have just put the question in a FAQ entry and lock the thread before people start mentioning nazis.
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.
> that is no way to talk about other volunteer developers that contribute their time.
He is not dissing the other developers. He is one of those developers that had been called lazy and incompetent by the forum posters. For example (from the thread):
> it's mostly an excuse to not implement the feature (and be "cool" about it with one-word answers).
> Please consider implementing this. It's not hard.
> All of the players I've named are open source, so it's easy to check how they are doing it.
> Seriously how hard is it to implement it? All Ive been hearing from the developers are excuses, excuses, excuses. I dont see how other players were able to have it. This is just pure laziness.
> I'm not here to program the app, I'm just here to find a simple feature and/or request it.
Personally, I would hold the people using a free product and begging for features without contributing anything to a higher standard than the developers that donate their time implementing it.
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
And you don't have to be so defensive by jumping to conclusions that I hate "weebs" and think they're all pervs (although the ones obsessed with sexualizing little girls are certainly misogynistic pervs). What I hate is spending precious time and effort catering to small groups of people obsessed with particular fetishes (perverted and misogynistic or not), at the expense of prioritizing solving the real problems of large groups of people suffering from particular egregious bugs and usability issues.
Remember: it's been A DOZEN YEARS since I reported the problems in great detail with step-by-step instructions to reproduce them, and they STILL haven't fixed those problems that I and other people reported. Maybe refusing to ever acknowledge or fix those horrible bugs is Rémi Denis-Courmont's way of getting revenge on me for hurting his feelings by posting a wall of text he claims he didn't bother to read, at the expense of all of his other users and the quality and usability of VLC, so now I'm sorry I ever took the time to try to help by reporting and documenting the bug, and I'll never do that again, but he still seems pretty arrogant and thin skinned to me, even quite recently. And VLC's user interface STILL sucks.
Edit: The link I'm quoting is myself, quoting the text in another link written by SOMEONE ELSE. Literally, the VLC release notes, and an anime discussion about MKV which I read before I quoted it, so I already fully understand what you're mansplaining to me, and I'm not complaining about cartoon porn or MKV, I'm complaining about idiotic priorities. I'm sorry I touched a nerve that triggered you, but I don't hate "weebs" or porn, just misogyny and child abuse and terrible user interfaces. If you want to argue in favor of those things, go back to 4chan.
But I stand by the broader point that I do not think his attitude is at all constructive or helpful, and while I am sure he is fed of up what he views as entitled users this is not a productive way to handle it. The toxicity is that it casts shade on FOSS and pushes people away from the community. And VLC would be half what it is today without it's users. He would do well to remember that, too.
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.
Mkv really has nothing to do with VLCs usability problems. You're just grinding an axe against it because it's not a feature you value (or seem to even understand) but is valued by people you have evident disdain for (why even bring pornography into the discussion?)
The success of vlc is all the proof you need. As you say, why else would it be so popular?
Also agree that if this is a question that keeps coming up a much better response would be to simply explain your reasoning once in an FAQ that carefully presents the argument and point all future discussions to that entry. Done.
To the average user, it's not at all obvious why reverse play is so much harder than it looks. Surely it's possible to understand that users might be confused by this? An well written FAQ on the subject would solve all of this.
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 see Rémi Denis-Courmont's arrogant attitude and disrespect for users and developers hasn't improved in all these years.
That's out of context quote: https://news.ycombinator.com/item?id=41282178
Reverse / Backwards Moonwalk - Michael Jackson - Better Than The Original!!!
https://www.youtube.com/watch?v=IT_Aq2FjJo0
Here's the documentation and code I wrote when working at Kaleida Labs (a joint venture of Apple and IBM) on a ScriptX animation library that used QuickTime and other renderers, and depended on QuickTime's support for playing videos backwards, and single stepping forward and backwards of course:
ScriptX Animation Library:
https://www.donhopkins.com/home/catalog/lang/scriptx/anim.ht...
ScriptX Animation Implementation Module:
https://donhopkins.com/home/archive/scriptx/animimp.sx
ScriptX's QuickTime renderer would even play audio backwards and at whatever speed, too. ScriptX had excellent multimedia clock synchronization, and we would have considered it a terrible bug if ScriptX was not able to seamlessly and transparently synchronize video and audio with any arbitrary clock, time offset, and time scale, no matter what the speed and direction.
https://en.wikipedia.org/wiki/ScriptX
I'm sad that 31 years later, web browser video and audio players (not to mention VLC) don't support hierarchical clocks like ScriptX did for multimedia synchronization. (Each child clock can have a time offset and time scale relative to its parent, and everything's automatically kept in sync, from the simulation to the renderer.)
Here is Kaleida's (then Apple's) 1993 patent on "Synchronized clocks and media players", which has long since expired in 2013:
https://patents.google.com/patent/US5452435A/en
>Abstract: A media player and the clock which controls it are integrated into a single object. This integration may be achieved by the construct of inheritance between objects in an object oriented programming environment. A software class for player objects is established which inherits from a software class for clock objects. In this way, a player "is a" clock. This integration provides improved synchronization among different media, and simplifies design of applications which employ player objects and clock objects. Each object is synchronized to a RootClock object which operates at the speed of the fastest media player in the system. The RootClock may be separated into "low" order and "high" order components and a compare register in order to reduce interrupt overhead.
>[...] QuickTime essentially allows a multimedia player to process timebased data. Since the data are time based, QuickTime provides for the description of "time" (called time basis) for the data as well as a definition of the context for evaluating that "time." In QuickTime, a movie's or media's time basis is called its "timebase."
>A timebase is essentially a vector that defines the direction and velocity of time for a movie or media. The context for a timebase is called its time coordinate system. Conceptually, a time coordinate system provides an axis for measuring time. The time coordinate system, like a geometrical axis, is divided into units of measurement by a measurement system, called a time scale. [...]
https://news.ycombinator.com/item?id=18781950
DonHopkins on Dec 29, 2018 | parent | context | favorite | on: Steve Jobs hired a career juggler to teach program...
Oh, of course I wish Apple and IBM had made it free! But it included Apple's "crown jewels", the QuickTime player source code, and they were't going to give that away in 1995. Apple were even trepidatious about IBM having access to that source code.
Besides having proprietary decoders, it could also do some things you can't even do well with the Flash player or html video component today: like smoothly playing videos and music backwards!
Ever since the music industry switched from vinyl to CD, listening to demonic backmasking in Devil Music like the Beatles and Led Zeppelin's promotion of Satanism became much less convenient. ScriptX solved that important problem elegantly with its synchronized clock system, but today's HTML video player still hasn't, alas.
https://en.wikipedia.org/wiki/Backmasking
https://www.youtube.com/watch?v=5BDh_j5qAJ4
Here's a description of ScriptX's clock system:
https://news.ycombinator.com/item?id=18350511
>Kaleida Lab's ScriptX (a multimedia programing language kinda like Dylan with classes) had built-in support for hierarchal clocks within the container (in the sense of "window" not "vm") hierarchy. The same way every window or node has a 2D or 3D transformation matrix, each clock has a time scale and offset relative to its parent, so anything that consumes time (like a QuickTime player, or a simulation) runs at the scaled and offset time that it inherits through its parent container. And you can move and scale each container around in time as necessary, to pause movies or simulations.) You could even set the scale to a negative number, and it played QuickTime movies backwards! (That was pretty cool in 1995 -- try playing a movie backwards in the web browser today!)
Is it possible to play HTML5 video in reverse?
https://stackoverflow.com/questions/5277293/is-it-possible-t...
Kinda, but it's not smooth enough to sing along while dancing backwards and worshiping Satan to:
https://codepen.io/adrianparr/pen/qmCek
kragen on Dec 29, 2018 [–]
Yeah, I remember het AVI porn in the early 1990s where time alternated between forward and backward, thus providing an infinite video in only a few frames. (Probably it would have been more realistic with a sinusoidal rather than triangle-wave temporal waveform.)
I think there's a lot of space for experimentation here, generating video as an arbitrary three-dimensional slice of a potentially higher-dimensional space — like how horse-race photo-finish cameras map one vertical spatial dimension and one temporal dimension into two spatial dimensions for the photo, or how Julia-set animations map two of the dimensions of the four-dimensional Julibrot onto screen space while mapping a smooth path through the other two dimensions onto time. I've gotten some stunning still images by taking even fixed horizontal or vertical slices through video, but you could also do things like delay one side of the picture more than the other, or foreshadow future action by curving part of the frame into a timelike angle through the source material. It might be difficult to record a source video with more than one temporal dimension with a camera, but you can certainly do it with ray-tracing or other rendering techniques.
Presumably if you want to play a video backward with a modern codec, you need to buffer up decoded P-frames in memory from at least the previous I-frame — much like iterating backwards over the lines in a file, except that each "character" is a megabyte or two of YUV pixels. Should be totally feasible on a modern cellphone, even for aggressive modern formats that only have I-frames every few seconds… but it would be nothing short of a miracle in 1995! I guess MPEG-2 didn't exist yet, so maybe MPEG-1 with N=18, M=2 was the worst case you'd need to handle at that point? That should only require a 10-P-and-I-frame buffer.
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?
And TBH the VLC example hardly even seems hacky. If you have a stream that can be seeked backwards in, then find the previous I-frame and internally run the video forward to the frame the user wants to see. That is exactly what the user is forced to do manually anyway.
As far as it sounding like I'm boasting, all I can really do is assure you that was not the point. I was contrasting my experiences with how people tend to write about software development in blog posts and in comments on places like here. I do not think I'm better than them simply because I am ok with implementing hacky solutions where I think they make sense. But I am annoyed when useful features are denied because it would require a hacky solution. For FOSS, it's entirely within the devs rights to operate that way, but to me that's one way FOSS software can sometimes fall short of commercial software.
That may even mean that you have to hold yourself to a higher standard than some low-effort post on the part of some casual user. Especially if you're the boss, the maintainer, the leader. And if that's asymmetric then yes it is - but to be a maintainer/manager of a project is also asymmetric. Good managers might also promote that culture more widely across all the project's contributors and so yes it may apply to all developers, too.
Not everyone that engages with your project is going to be perfect, some may even be rude. But as a representative of that project it's a skill to be able to cope with that, on behalf of the project (not you). I think one of the most underrated skills of a FOSS maintainer is a degree of fault-tolerance, to use a systems analogy.
Or, you could argue that no, it's not incumbent on a maintainer to be anything, even to be kind. But then don't expect your users to come back.
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)
I disagree. It would be exactly the same as it is now without the users. The users have not contributed anything to the project. Popularity doesn't write code, it just creates communication overhead.
Again, this is not commercial software. Commercial software needs popularity. For FOSS projects, popularity is cool and can be an ego-boost for the maintainers, even open some doors and get some funding, but it's not the point of thing (and never covers costs anyway). The point is to write some good code that scratches some itch the maintainers have.
That whole point of view from the users, of "you owe us because your thing is popular now" is toxic entitlement. If you didn't contribute to the project, you didn't affect it, and you're owed nothing, absolutely nothing, by the maintainers. Everyone would do well to remember that.
> 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).-
VLC developers are of course free to reject any feature request but if they do it by bullshitting their users (and that includes tacking on additional requirements that no user actually needs like perfect support for all formats under the sun) then they will be rightfully called out for it. Then throwing a tantrum and citing CoC violations is not going to improve things.
It's their project so ultimately they get to choose to run it into the ground but this kind of behavior is not something I want to support as a user os I will stay away from VLC which includes not making helpful bug reports and not donating.
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.