前言
以前一直用Potplayer做电脑播放器的,配合SVP进行补帧,看电影很舒服。后来下了点动漫看,用SVP的效果也还行,但是放大后画面会显得模糊。搜了一下,使用VS滤镜可以超分放大,但还需要自己配置。有没有方便点的项目呢?在GitHub搜了一下,还真有做好的懒人包:hooke007/MPV_lazy。用了一下,真的是超级方便,包含了常见的放大滤镜、补帧滤镜等,效果甚至比SVP更好。
自用配置
字幕调整相关快捷键
对不同比例的视频,可能上下黑边的宽度不同。可以对字幕位置/字体大小调整,使其不遮挡画面。同样写入portable_config/input_uosc.conf
。
1 2 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多。
1 2 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()
|