Closed JiLleON closed 1 year ago
I forgot to mention. The video with the problem was not being recorded through OBS (as if there were no screen flickers), so I had to record it on my phone. Also recorded with --tscale=sphinx --tscale-blur=0.6991556596428412 --tscale-radius=1.0 --video-latency-hacks=yes
, but the problem is exactly the same as with only --tscale-blur=0.72 --video-latency-hacks=yes
instead.
Ran into this myself while testing other things. Seems it was reported before in https://github.com/mpv-player/mpv/issues/9427. This does not reproduce on mpv 0.35.1 + libplacebo v208 (fedora repo) but does running git head for both libplacebo and mpv. My minimal reproduction is:
mpv --no-config --video-sync=display-resample --interpolation=yes --tscale=box --vo=gpu-next --gpu-api=vulkan --gpu-context=x11vk --gpu-debug
No reproduction on 0.35.1 + placebo 208: mpv-fedora.log Successful reproduction on git head for both: mpv-git.log
I can reproduce this with some variable frame rate videos, even with --video-latency-hacks=off
. Using --vo=gpu
or not using any "display-*" video-sync modes works around the problem.
Enabling video-latency-hacks
with the settings I use seems to only cause flickering when seeking on non-vfr videos, at least with the quick tests I did.
So the reason this happens is simply because --video-latency-hacks
only queues one frame and then vo_gpu_next
tries to interpolate this which naturally doesn't end well. It makes sense that a variable frame rate video could end up in the same situation. On vo_gpu
, this is actually no-op. The frame is not considered valid and is never interpolated. So in fact --video-latency-hacks
silently disables interpolation which makes sense given how it works (how can the VO interpolate frames if there's only 1 frame).
mpv --no-config --video-sync=display-resample --interpolation=yes --tscale=box --vo=gpu-next --gpu-api=vulkan --gpu-context=x11vk
This works for me on master however.
Important Information
Reproduction steps
Expected behavior
video is playing as usual
Actual behavior
any video that is being played starts to flicker, except for the moment when you pause
Own observations and notes
Ahem ahem. The problem was detected on March 24th. By rolling back the mpv versions I found out that the problem starts with the version of March 17. The version of March 16 is not subject to such problems. The problem is the combination of options
--video-latency-hacks=yes
and--tscale-blur=0.72
(from 0.73 the screen does not flicker, but two or three frames flicker occurs when rewinding video).My mpv case includes such a selection in config:
--video-sync=display-resample --interpolation=yes --interpolation-preserve=no --tscale=sphinx --tscale-blur=0.6991556596428412 --tscale-radius=1.0 --tscale-clamp=0.0
and with such values video flickers. If I remove--tscale-radius=1.0
, video stops flickering, but two or three frames flicker when rewinding occurs, as I wrote above.At the moment I disabled the
--video-latency-hacks
option and continue to use mpv with--vo=gpu-next
. With--vo=gpu
no such problems were noticed.I tested with two different driver versions (at first I wasn't sure if the problem is related to mpv, because I was updating drivers that day and knowing nvidia I assumed that maybe something went wrong with nvdec) and the problem occurs with both 531.29 and 531.41.
I also do not know if other systems (not Windows) are prone to similar problems. I don't expect anyone to quickly start fixing this problem (if it really is a problem and not an individual problem with my configuration) because the documentation says that
this option might be removed without notice once the player's timing code does not inherently need to do these things anymore
, but I thought it was worth reporting this behavior somewhere so people can stumble on this bug and understand what caused this behavior (btw I have a friend who uses my config and he complained to me about this problem after a couple days).Log file
opened the video, watched a few seconds, rewound twice, watched a few more seconds, closed (video flickers) https://0x0.st/HodS.72.txt
opened the video, watched a few seconds, rewound two or three times, watched a few more seconds, closed (video does not flicker, but when rewinding two or three frames flicker) https://0x0.st/Hodj.73.txt
opened the video, watched a few seconds, rewound twice, watched a few more seconds, closed (video flickers) https://0x0.st/Hode.txt
opened the video, watched a few seconds, rewound two or three times, watched a few more seconds, closed (video does not flicker, but when rewinding two or three frames flicker) https://0x0.st/Hod2.0.txt