Live data from Hacker News

Mpv – A free, open-source, and cross-platform media player

mpv.io

151–160 of 576 posts

Re: Mpv – A free, open-source, and cross-platform media player

#151
post #100

Earlier quoted context omitted.

To do this well you need to keep the old frames around...or go back to the previous keyframe and re-render. That might be hard if your design is playback-optimized.

Re-rendering shouldn't be hard, it's just a specialized version of seeking. VLC has seeking. The claim that you would have to decode all previous frames in the entire video is... completely baffling to see coming from the dev. He's arguing a stupid technicality that a video might not have keyframes. That's not a reason to omit the feature entirely.

The strange thing is that the same argument is true for seeking in general.

Going back from frame 500000 to frame 499999 is in the limiting case as complex as seeking from 1 to 499999, and in most cases far better.

I think the forum thread would be better answered "you do it, I don't need this feature" which is basically the gist of it and is a completely fair answer.

Re: Mpv – A free, open-source, and cross-platform media player

#152
post #20

A fantastic mediaplayer, quite minimalistic and performant; it does what it's supposed to do! Also has a fantastic commit where the author rants about locales: https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... worth a read for some chuckles.

Oh man! This was GOLD. Thanks.

Re: Mpv – A free, open-source, and cross-platform media player

#154
post #84

Earlier quoted context omitted.

I'm skeptical that rust magically deals with, for example, character sets in 30 year old subtitle files, in a way that makes C seem inadequate. Legacy compatibility has value.

The correct place to handle character sets is when you're reading the file, not to sprinkle it all throughout your program.

Right. And the rust standard library provides (in my mind) the right API for this. Strings are always internally utf8. But they have constructor methods to create strings from UTF16 bytes, or utf32 or whatever.

Rust isn’t unique. Swift, Go and Python3 all expose more or less the same api. C’s standard library, with the benefit of hindsight, is uniquely terrible here.

Re: Mpv – A free, open-source, and cross-platform media player

#155

Earlier quoted context omitted.

i wonder why he's such an ass about it, and totally adamant that it's impossible when multiple players already do this fast. ego?

I think technically he’s correct (I haven’t worked on media decoding code, but I understand how common video encoding formats work). If you have a long video with only a single key frame at the beginning then to step back you would need to, starting from the beginning of the video, decode every frame up to the previous frame you wanted to jump to in order to apply frame deltas, also assuming you have some sort of fra…

> If you have a long video with only a single key frame at the beginning then

...you can't support the scrub bar efficiently either, so no one encodes video that way.

Typically to go to a frame you find the last IDR frame before it (and in reasonable encodings those are frequent enough) and decode forward until you get to the frame of interest. Doing that every time the user presses the single frame back button really doesn't seem that bad, and neither does holding onto some extra reference images for at least like 1080p frames. (8k video and such starts getting more expensive but maybe even then start doing all some references after the first press of the frame back button in this GOP or some such.)

It's of course work to do, and I'm not super motivated to send them that patch, and there's the question of it it would be merged and maintained indefinitely, but what folks are asking for is technically possible.

> I don’t see any reason it couldn’t be supported for a set of formats with reasonable encoding/decoding settings, and provide some error message for other formats if a user attempts to step back, e.g. reverse frame stepping unavailable for current video due to format/encoding/decoding settings.

Yeah, this. That's likely more or less what they already do with the scrub bar.

Re: Mpv – A free, open-source, and cross-platform media player

#156
post #148

Earlier quoted context omitted.

Re-rendering shouldn't be hard, it's just a specialized version of seeking. VLC has seeking. The claim that you would have to decode all previous frames in the entire video is... completely baffling to see coming from the dev. He's arguing a stupid technicality that a video might not have keyframes. That's not a reason to omit the feature entirely.

You misunderstand. The point is you have to go backwards to find a keyframe, then render forwards from that. Going backwards might be hard because if you structured your code in certain ways you may not be able to go backwards efficiently. You can "seek", but how far back to you want to seek? A second? Two seconds? current-X frames? key frames may be in a standard cadence, but they may not be. So again, how far back…

Since I can drag the bar backwards in VLC and have it resume playback apparently this is already implemented? This would be a very narrow use of that.

Re: Mpv – A free, open-source, and cross-platform media player

#157

Earlier quoted context omitted.

I think technically he’s correct (I haven’t worked on media decoding code, but I understand how common video encoding formats work). If you have a long video with only a single key frame at the beginning then to step back you would need to, starting from the beginning of the video, decode every frame up to the previous frame you wanted to jump to in order to apply frame deltas, also assuming you have some sort of fra…

that's still a whole lot of yapping that as an end user I don't care about. i can frame scrub forwards and backwards in multiple other apps. right? very weird response from the vlc team in that original thread.

The back and forth in itself feels so weird to me, with so many hurt feelings:

- the devs expressed in no uncertain terms that they don't want to do it (the first answer is just perfect)

- every third comment is about "we know you don't want to do it, but as users why should we care ?"

Well, if you don't care about the devs, on what base are you asking them to care about your specific problem ?

Re: Mpv – A free, open-source, and cross-platform media player

#158
post #147
post #54

If you're on Linux, don't forget to enable hardware acceleration by adding hwdec=auto to mpv.conf. Works with AMD/Intel/NVIDIA. https://interfacinglinux.com/2024/01/10/hardware-acceleratio...

Why would that be disabled by default?

Doesn't work on all systems, I presume. Better to default to something that definitely works everywhere.

https://github.com/mpv-player/mpv/blob/a3baf94ab9f3b43a8027d...

Would be appropriate to have true/false/auto instead of auto==true though, so auto wouldn't use it unless it confirmed to be working.

Re: Mpv – A free, open-source, and cross-platform media player

#159
post #69

I use it to inspect video frames by frames, particularly being able to go back one frame. VLC doesn't support it, this thread about the feature is hilarious https://forum.videolan.org/viewtopic.php?t=120627

> Like said earlier codec frame access is very problematic

Wow. Talk about not understanding the user.

Re: Mpv – A free, open-source, and cross-platform media player

#160
post #93
post #69

I use it to inspect video frames by frames, particularly being able to go back one frame. VLC doesn't support it, this thread about the feature is hilarious https://forum.videolan.org/viewtopic.php?t=120627

VLC is pretty bad and it shows the more you use it. It doesn't let the audio clip/exceed safe volumes and always applies some sort of a limiter, even if it's disabled everywhere in the settings. Try using an EQ on a bass-heavy track and see that it's limited. Try jumping back multiple times in a song at its beginning, and it will play in lower pitch.

> VLC is pretty bad and it shows the more you use it.

Compared to what? Such a statement is meaningless without comparison.

Post reply on HN