前言
以前一直用Potplayer做电脑播放器的,配合SVP进行补帧,看电影很舒服。后来下了点动漫看,用SVP的效果也还行,但是放大后画面会显得模糊。搜了一下,使用VS滤镜可以超分放大,但还需要自己配置。有没有方便点的项目呢?在GitHub搜了一下,还真有做好的懒人包:hooke007/MPV_lazy。用了一下,真的是超级方便,包含了常见的放大滤镜、补帧滤镜等,效果甚至比SVP更好。
自用配置
字幕调整相关快捷键
对不同比例的视频,可能上下黑边的宽度不同。可以对字幕位置/字体大小调整,使其不遮挡画面。同样写入portable_config/input_uosc.conf。
| 12
 3
 4
 5
 6
 
 | ;                 add sub-pos -0.5:                 add sub-pos +0.5
 '                 add video-pan-y -0.01
 "                 add video-pan-y 0.01
 /                 add sub-font-size 1
 ?                 add sub-font-size -1
 
 | 
滤镜+RIFE补帧
个人最常用的滤镜,看720P以上缩放到2K基本没问题。写入portable_config/input_uosc.conf即可。
| 1
 | Ctrl+3            change-list glsl-shaders clr "";change-list glsl-shaders set "~~/shaders/Anime4K_Denoise_Bilateral_Median.glsl;~~/shaders/Anime4K_Deblur_DoG.glsl;~~/shaders/Anime4K_Darken_HQ.glsl;~~/shaders/Anime4K_Thin_HQ.glsl;~~/shaders/Anime4K_Restore_GAN_UL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_UL.glsl;~~/shaders/Anime4K_Clamp_Highlights.glsl"        #! 着色器 > 自定义预设:线条加重细化+A4KGANx2放大
 | 
RIFE补帧+ESRGAN超分辨率放大
原本想先超分放大再补帧的,结果控制台一直报错。无奈,只能先补帧再放大了。可能会有一些残影,但实际看下来没有SVP多。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 
 | 
 import vapoursynth as vs
 from vapoursynth import core
 import k7sfunc as k7f
 
 clip = video_in
 
 
 H_Pre = 720
 Lt_Hd = False
 SR_Model = 5005
 SR_Gpu = 0
 SR_Gpu_T = 2
 SR_St_Eng = False
 SR_Ws_Size = 0
 H_Max = 1440
 SR_Lk_Fmt = False
 
 
 RIFE_H_Pre = 1440
 RIFE_Lt_D2k = False
 RIFE_Model = 46
 RIFE_Ext_Proc = False
 RIFE_T_Tta = False
 Fps_Num = 2
 Fps_Den = 1
 Sc_Mode = 1
 RIFE_Gpu = 0
 RIFE_Gpu_T = 2
 RIFE_St_Eng = False
 RIFE_Ws_Size = 0
 RIFE_Lk_Fmt = False
 
 
 clip = k7f.FMT_CTRL(clip, h_max=RIFE_H_Pre, fmt_pix=1 if RIFE_Lk_Fmt else 0)
 clip = k7f.RIFE_NV(clip, lt_d2k=RIFE_Lt_D2k, model=RIFE_Model, ext_proc=RIFE_Ext_Proc, t_tta=RIFE_T_Tta, fps_in=container_fps, fps_num=Fps_Num, fps_den=Fps_Den, sc_mode=Sc_Mode, gpu=RIFE_Gpu, gpu_t=RIFE_Gpu_T, st_eng=RIFE_St_Eng, ws_size=RIFE_Ws_Size)
 
 
 clip = k7f.FMT_CTRL(clip, h_max=H_Pre, fmt_pix=1 if SR_Lk_Fmt else 0)
 clip = k7f.ESRGAN_NV(clip, lt_hd=Lt_Hd, model=SR_Model, gpu=SR_Gpu, gpu_t=SR_Gpu_T, st_eng=SR_St_Eng, ws_size=SR_Ws_Size)
 clip = k7f.FMT_CTRL(clip, h_max=H_Max, fmt_pix=1 if SR_Lk_Fmt else 0)
 
 clip.set_output()
 
 |