Video

~/.config/mpv/vapoursynth/mv.vpy

Rina Kawakita 2020. 1. 8. 18:49
~/.config/mpv/vapoursynth/mv.vpy
import vapoursynth as vs
core = vs.get_core()

core.std.LoadPlugin("/opt/svp/plugins/libsvpflow1_vs64.so")
core.std.LoadPlugin("/opt/svp/plugins/libsvpflow2_vs64.so")

#clip = video_in
clip = core.ffms2.Source(source='/mnt/jav/SSPD-133/SSPD-133.mkv')
core = vs.get_core(threads=9)

clip = clip.resize.Bicubic(format=vs.YUV420P8)

crop_string  = ""
resize_string = "core.resize.Bicubic(input,1280,720,filter_param_a=0,filter_param_b=0.75)"
super_params     = "{pel:1,scale:{up:0},gpu:1,full:false,rc:true}"
analyse_params   = "{main:{search:{coarse:{distance:-8},distance:0}}}"
smoothfps_params = "{gpuid:11,rate:{num:2,den:1},algo:13,mask:{area:50},scene:{blend:true}}"

def interpolate(clip):
    input = clip
    if crop_string!='':
        input = eval(crop_string)
    if resize_string!='':
        input = eval(resize_string)

    super   = core.svp1.Super(input,super_params)
    vectors = core.svp1.Analyse(super["clip"],super["data"],input,analyse_params)
    smooth  = core.svp2.SmoothFps(input,super["clip"],super["data"],vectors["clip"],vectors["data"],smoothfps_params,src=clip)
    smooth  = core.std.AssumeFPS(smooth,fpsnum=smooth.fps_num,fpsden=smooth.fps_den)
    return smooth

smooth =  interpolate(clip)

smooth.set_output()