Minimize frame drops on resuming normal speed
Introduces slight a-v desynchronisation in speedup state, which is not really noticeable. On resuming normalspeed a-v gets synchronized once again.
This commit is contained in:
parent
bd746aa3dd
commit
5793184c2d
|
@ -1,5 +1,5 @@
|
|||
## speed-transition
|
||||
This is a lua script for the mpv media player. The purpose of this script is to speed up the video if no subtitles are visible for a certain amount of (user configurable) time. It is inspired by [the speed-between-subs](https://gist.github.com/bitingsock/47c5ba6466c63c68bcf991dd376f1d18) script.
|
||||
This is a lua script for the mpv media player. The purpose of this script is to speed up the video if no subtitles are visible for a certain amount of (user configurable) time. It is inspired by the [speed-between-subs](https://gist.github.com/bitingsock/47c5ba6466c63c68bcf991dd376f1d18) script.
|
||||
|
||||
### How it works
|
||||
The script looks for the next subtitle and if it is ahead by 5 (default) seconds the video gets sped up and resumes normal playback just before the subtitle becomes visible. This is done to prevent audio glitches when speech starts.
|
||||
|
@ -9,7 +9,9 @@ For the script to work it is necessary to have an appropriate 'text' subtitle se
|
|||
|
||||
If you want to use it with local files it is necessary to either have `--cache=yes` or `--demuxer-readahead-secs=10` options enabled in your config/cli. A value of `demuxer-readahead-secs>=10` is recommended. The same applies to `--cache-secs` option if it has been set.
|
||||
|
||||
The script has sensible defaults, but if you want to change the `lookahead` value take care to not set it larger than what the buffers can provide. This applies to embedded subtitles and not external.
|
||||
The script works best in `video-sync=audio` mode (the default in mpv), because it will then be able to minimize frame drops on speed transition from high->normal. Stutter-free playback is the result.
|
||||
|
||||
Sensible defaults have been set, but if you want to change the `lookahead` value take care to not set it larger than what the buffers can provide. This applies to embedded subtitles and not external.
|
||||
|
||||
Key Bind|Effect
|
||||
--------|------
|
||||
|
|
|
@ -18,6 +18,9 @@ end
|
|||
|
||||
function restore_normalspeed()
|
||||
mp.set_property("speed", normalspeed)
|
||||
if mp.get_property_native("video-sync") == "desync" then
|
||||
mp.set_property("video-sync", "audio")
|
||||
end
|
||||
end
|
||||
|
||||
function check_should_speedup()
|
||||
|
@ -78,6 +81,9 @@ function speed_transition(subtext, sub)
|
|||
if sub == "" then
|
||||
nextsub, shouldspeedup = check_should_speedup()
|
||||
if shouldspeedup then
|
||||
if mp.get_property_native("video-sync") == "audio" then
|
||||
mp.set_property("video-sync", "desync")
|
||||
end
|
||||
normalspeed = mp.get_property_native("speed")
|
||||
mp.set_property("speed", speedup)
|
||||
add_timers(nextsub)
|
||||
|
|
Loading…
Reference in New Issue