Edit 2016-09: SVP now has a free (but proprietary) version of their software, which includes a GPU port of the MVTools functions, making this much less resource intense: https://www.svp-team.com/wiki/SVP:Linux (AUR)
run this for SVP-like motion interpolation:
cd ~/.config/mpv # or ~/.mpv
wget https://gist.githubusercontent.com/phiresky/4bfcfbbd05b3c2ed8645/raw/motioninterpolation.vpy
echo 'I vf toggle format=yuv420p,vapoursynth=~~/motioninterpolation.vpy:4:4' >> input.conf
# to enable it by default
echo 'vf=format=yuv420p,vapoursynth=~~/motioninterpolation.vpy:4:4' >> mpv.conf
now press shift+i while mpv is playing a video to toggle beautiful motion vector interpolation of the video framerate to your display refresh rate.
You need mpv compiled with VapourSynth support. Not sure what distributions do this, in Arch Linux you can get mpv-git
or mpv-vapoursynth
(AUR) and vapoursynth-plugin-mvtools
.
It should also be possible to make this work through SMPlayer.
Warning: This is CPU intensive. The settings work on a i5-2500k cpu. If it lags you will have to change some parameters, look for 2500k
in the script. If your CPU is faster remove that block.
If your CPU is really fast, try removing the 'mode' parameter and changing BlockFPS to FlowFPS, this gives much better results.
See the reddit post for more information
Run this:
vspipe --arg in_filename=input.mkv --arg display_fps=60 --y4m motioninterpolation.vpy -|ffmpeg -i - -crf 18 output.mkv
Whats causing this issue
[cplayer] Run command: vf, flags=73, args=[operation="toggle", value="format=yuv420p,vapoursynth=
/motioninterpolation.vpy:4:4"]/motioninterpolation.vpy' (flags = 0)[cplayer] Passing more than 1 argument to vf-toggle is deprecated!
[user_filter_wrapper] Setting option 'fmt' = 'yuv420p' (flags = 0)
[user_filter_wrapper] Setting option 'file' = '
[user_filter_wrapper] Setting option 'buffered-frames' = '4' (flags = 0)
[user_filter_wrapper] Setting option 'concurrent-frames' = '4' (flags = 0)
[global] config path: 'motioninterpolation.vpy' -> '/home/triplek/.config/mpv/motioninterpolation.vpy'
[global] user path: '~~/motioninterpolation.vpy' -> '/home/triplek/.config/mpv/motioninterpolation.vpy'
[vapoursynth] using 4 concurrent requests.
[vapoursynth] Could not initialize VapourSynth scripting.
[user_filter_wrapper] Creating filter 'vapoursynth' failed.