找回密码
 立即注册
搜索
查看: 1521|回复: 18

[软件] 咨询一下MPV懒人包补帧问题

[复制链接]
     
发表于 2024-10-23 11:49 | 显示全部楼层 |阅读模式
本帖最后由 yxch 于 2024-10-23 22:13 编辑

听闻RIFE补帧效果好,想试一下,搜到了这个懒人包 https://github.com/hooke007/MPV_lazy/releases/tag/20240824 (网上还有一些步骤繁琐的教程,那个我是真的搞不定)
这个包补帧滤镜是能够正常工作的,但是着色器超分都不起作用,(滤镜中的两个超分预设是起作用的)凭我的技术能力根本不知道从何下手,一头雾水。求个解决方案,或者有整合好的懒人包也行,需求是视频RIFE补帧到60fps的同时可以开启超分辨率,显卡是4090性能肯定带得动。(补帧如果是以原视频帧数的倍率进行补帧也可以,这个我会调整)
微信截图_20241023114741.png 微信截图_20241023114801.png
更新一下:
经过仔细比对,着色器超分效果是有的,但非常不明显,而滤镜中的两个超分选项效果非常明显,如果说滤镜超分的效果是10分的话,着色器的超分效果大概为0.5~1分。超分滤镜虽然效果明显,对真人视频效果并不好,会出现严重涂抹感,对2D效果拔群。
回复

使用道具 举报

     
发表于 2024-10-23 12:24 | 显示全部楼层
实际是起作用的
你试试暂停了开/关着色器看看边缘有没锐化,别用新片测,很难看出来
90年代的4:3影片着色器效果较为明显
回复

使用道具 举报

     
发表于 2024-10-23 12:42 | 显示全部楼层
本帖最后由 zmw_831110 于 2024-10-23 12:44 编辑

大致思路就是
找到MPV路径里.vpy放置的文件夹.
新建.vpy文件,修改你想要的组合.
把input.conf里原本超分的.vpy改成这个.vpy,就可以同时插帧+ 超分了。

ESRGAN里model号对应的关系,比较通用的是5010,动画定向优化的是5007
051836nm17zjj2muo71brm.webp

RIFE的model号对应关系,46很差,建议4151起
090647f47v1jdjjlj5ly1v.webp


现在没电脑,晚上会去看看,当时我怎么改的.
因为我是4070TiS,最终发现我超分我只能搞到1080p然后再RIFE,否则我就别想视频加速播放了.

我最终是改出几个菜单.
仅RIFE模型4151 2.5X --对应24→60FPS
仅RIFE模型4151 2.4X --对应25→60FPS
仅RIFE模型4151 2X --对应30→60FPS
仅超分到1440p模型5007
仅超分到1440p模型5010
超分到1080p模型5007+RIFE模型4151 2X
超分到1080p模型5010+RIFE模型4151 2X




RIFE和ESRGAN配置:
下面的脚本的参数都是默认状态的,你根据自己的需求自己改

单独开启RIFE用的MEMC_RIFE_NV.vpy
  1. ### [url]https://github.com/hooke007/MPV_lazy/wiki/3_K7sfunc[/url]
  2. ### RIFE (v4+) 补帧,性能要求较高,N卡专用

  3. import vapoursynth as vs
  4. from vapoursynth import core
  5. import k7sfunc as k7f

  6. clip = video_in

  7. ############
  8. # 用户选项 #
  9. ############

  10. H_Pre = 1440
  11. Lt_D2k = False
  12. Model = 46
  13. Ext_Proc = False
  14. #Ext_Proc = True
  15. T_Tta = False
  16. Fps_Num = 2
  17. Fps_Den = 1
  18. Sc_Mode = 1
  19. Gpu = 0
  20. Gpu_T = 2
  21. St_Eng = False
  22. Ws_Size = 0
  23. Lk_Fmt = False
  24. ## 整数,预降低处理源高度(填你的显示器高度)
  25. ## <True|False> 是否对超过DCI2K分辨率的源进行补帧
  26. ## <46|415|4151> 使用的模型
  27. ## <True|False> 是否使用外部的填充裁切处理
  28. ## <True|False> 是否使用ensemble版模型
  29. ## 整数,Fps_Num/Fps_Den 的值即帧率倍数
  30. ## 整数
  31. ## <0|1|2> 场景切换检测的模式,0为禁用
  32. ## 使用的显卡序号,0为排序一号
  33. ## <1|2|3> 显卡线程数
  34. ## <True|False> 是否使用静态引擎(需要对不同分辨率的源各进行预处理);动态引擎自适应不同分辨率(QVGA→DCI4K)
  35. ## 整数,约束显存(MiB),静态引擎的最小值为128(动态引擎自动双倍),设为低于此数的值即最大化利用
  36. ## <True|False> 锁定像素格式为yuv420p8

  37. ret = k7f.FPS_CTRL(clip, fps_in=container_fps, fps_ret=True)
  38. clip = k7f.FMT_CTRL(clip, h_max=H_Pre, fmt_pix=1 if Lk_Fmt else 0)
  39. clip = k7f.RIFE_NV(clip, lt_d2k=Lt_D2k, model=Model, ext_proc=Ext_Proc, t_tta=T_Tta, fps_in=container_fps, fps_num=Fps_Num, fps_den=Fps_Den, sc_mode=Sc_Mode, gpu=Gpu, gpu_t=Gpu_T, st_eng=St_Eng, ws_size=Ws_Size)

  40. clip.set_output()
复制代码


单独开启ESRGAN用的SR_ESRGAN_NV.vpy
  1. ### [url]https://github.com/hooke007/MPV_lazy/wiki/3_K7sfunc[/url]
  2. ### Real-ESRGAN 放大或降噪,性能要求极高,N卡专用

  3. import vapoursynth as vs
  4. from vapoursynth import core
  5. import k7sfunc as k7f

  6. clip = video_in

  7. ############
  8. # 用户选项 #
  9. ############

  10. H_Pre = 720
  11. Lt_Hd = False
  12. Model = 5005
  13. Gpu = 0
  14. Gpu_T = 2
  15. St_Eng = False
  16. Ws_Size = 0
  17. H_Max = 1440
  18. Lk_Fmt = False
  19. ## 整数,预降低处理源高度
  20. ## <True|False> 是否对超过HD分辨率(720P)的源进行处理
  21. ## <0|2|5005|5006|5007> 使用的模型
  22. ## 使用的显卡序号,0为排序一号
  23. ## <1|2|3> 使用的显卡线程数
  24. ## <True|False> 是否使用静态引擎(需要对不同分辨率的源各进行预处理);动态引擎自适应不同分辨率(64²→DCI2K)
  25. ## <0~1024> 约束显存(MiB),静态引擎的最小值为128(动态引擎自动双倍),设为低于此数的值即为不限制
  26. ## 整数,输出高度限制(填你的显示器高度)
  27. ## <True|False> 是否锁定像素格式为yuv420p8

  28. ret = k7f.FMT_CTRL(clip, h_max=1200, h_ret=True)
  29. clip = k7f.FMT_CTRL(clip, h_max=H_Pre, fmt_pix=1 if Lk_Fmt else 0)
  30. clip = k7f.ESRGAN_NV(clip, lt_hd=Lt_Hd, model=Model, gpu=Gpu, gpu_t=Gpu_T, st_eng=St_Eng, ws_size=Ws_Size)
  31. clip = k7f.FMT_CTRL(clip, h_max=H_Max, fmt_pix=1 if Lk_Fmt else 0)

  32. clip.set_output()
复制代码


同时开启RIFE+ESRGAN用的MEMC_RIFE_NV_SR_ESRGAN_NV.vpy

有引用上面的2个文件
  1. import k7sfunc as k7f

  2. clip = video_in

  3. if clip.height <= 1080 :
  4.     clip = k7f.FMT_CTRL(clip, h_max=720, fmt_pix=1)
  5.     clip = k7f.ESRGAN_NV(clip, lt_hd=True, gpu=0)
  6.     clip = k7f.FMT_CTRL(clip, h_max=1440)

  7. if container_fps <= 32 :
  8.     clip = k7f.FMT_CTRL(clip, h_max=1440, fmt_pix=1)
  9.     clip = k7f.RIFE_NV(clip, lt_d2k=True, model=46, gpu=0)

  10. if not (clip == video_in) :
  11.     clip.set_output()
复制代码

评分

参与人数 1战斗力 +2 收起 理由
yxch + 2 多谢,我斗胆试试

查看全部评分

回复

使用道具 举报

     
发表于 2024-10-23 13:18 | 显示全部楼层
好奇,这个 RIFE 补帧效果和 SVP 比起来哪个好一点?

—— 来自 S1Fun
回复

使用道具 举报

     
 楼主| 发表于 2024-10-23 13:22 | 显示全部楼层
keytomylife0 发表于 2024-10-23 12:24
实际是起作用的
你试试暂停了开/关着色器看看边缘有没锐化,别用新片测,很难看出来
90年代的4:3影片着色 ...

我用新出的乱马试的,开超分滤镜效果超级明显,开着色器每个都试一遍,完全看不出来效果。我再仔细比对一下
回复

使用道具 举报

     
发表于 2024-10-23 15:24 来自手机 | 显示全部楼层
rife默认下会缩到720p再插帧吧,着色器在滤镜前面所以拉上去就给缩了(大概是这样
把rife配置文件里面的输出分辨率改改
回复

使用道具 举报

     
发表于 2024-10-23 15:43 来自手机 | 显示全部楼层
本帖最后由 zmw_831110 于 2024-10-23 15:46 编辑
qwased 发表于 2024-10-23 15:24
rife默认下会缩到720p再插帧吧,着色器在滤镜前面所以拉上去就给缩了(大概是这样
把rife配置文件里面的输 ...

可以改,我是设置的超过1440p就缩小到到1440p再插帧
H_Pre = 1440
Lt_D2k = False
## 整数,预降低处理源高度(填你的显示器高度)
## <True|False> 是否对超过DCI2K分辨率的源进行补帧

要完全不降分辨率插帧
H_Pre = 2160
Lt_D2k = Ture
要求4080以及以上的显卡才可以24*2,我的4070TiS设置成这样,跑测试在47.X,有的视频可以,有的不行,而且不能开任何滤镜,否则也不行,后来感觉易用性不好,就改成最多1440了
回复

使用道具 举报

     
发表于 2024-10-23 16:03 | 显示全部楼层
4090我在4K杜比跑4221模型24-48fps 会音画对不齐啊,而且显卡也没吃满,不知道是不是我U瓶颈
回复

使用道具 举报

     
发表于 2024-10-23 16:06 | 显示全部楼层
本帖最后由 keytomylife0 于 2024-10-23 16:29 编辑
yxch 发表于 2024-10-23 13:22
我用新出的乱马试的,开超分滤镜效果超级明显,开着色器每个都试一遍,完全看不出来效果。我再仔细比对一 ...

mpv-shot0002.jpg
mpv-shot0001.jpg

再补一张超分+着色器的
mpv-shot0000.jpg

旧版乱马也就看出一丁点区别,新版肯定没作用

着色器对近15年的动画个人觉得是毫无帮助,也就老片看起来锐利点



回复

使用道具 举报

     
 楼主| 发表于 2024-10-23 16:29 | 显示全部楼层
keytomylife0 发表于 2024-10-23 16:06
旧版乱马也就看出一丁点区别,新版肯定没作用

着色器对近15年的动画个人觉得是毫无帮助,也就老片看起 ...

主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作用还是我没分辨出来
回复

使用道具 举报

     
发表于 2024-10-23 17:09 | 显示全部楼层
yxch 发表于 2024-10-23 16:29
主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作 ...

你试试默认 滤镜 着色器 滤镜+着色器 各截一同一张图,不断切换就能看出区别


回复

使用道具 举报

     
发表于 2024-10-23 17:49 来自手机 | 显示全部楼层
无能狂怒人 发表于 2024-10-23 13:18
好奇,这个 RIFE 补帧效果和 SVP 比起来哪个好一点?

—— 来自 S1Fun

买svp的现在也全在用rife模型了啊根本不是一个次元的效果
回复

使用道具 举报

     
发表于 2024-10-23 22:14 | 显示全部楼层
yxch 发表于 2024-10-23 16:29
主要是我开超分滤镜效果特别明显,相比之下就感觉着色器都不起作用,你们这么一说,我也不确定是真没起作 ...

新版本的MPV_lazy
作者懒得把着色器放默认包里
要你自己去下载,放到
\mpv-lazy\portable_config\shaders里面去
QQ20241023-221316.jpg

回复

使用道具 举报

     
发表于 2024-10-23 22:20 | 显示全部楼层
本帖最后由 zmw_831110 于 2024-10-23 22:26 编辑

我的MVP lazy还是2024V1的
你的是2024V2
我的配置,你只可以参考一下,我改了啥地方,也许会对你有帮助(善用Beyond Compare)
代码里"#"是注释符
portable_config_2024V1.zip (6.08 KB, 下载次数: 8)
vs_2024V1.zip (6.12 KB, 下载次数: 6)

注意,因为受限于我的性能
我的RIFE插帧,最大输入分辨率限制在1440p
我的超分+RIFE插帧,限制在超分输出1080p到RIFE
这两部分怎么改,我上面有说RIFE怎么改,超分也是类似的,你改一次,也就侧类旁通了.

另外,如果某次MPV死机,记得删除 \mpv-lazy\portable_config\saved-props.json
否则会不会默认加载上一次的着色器(滤镜)

而RIFE和超分,每次则需要手动开启


评分

参与人数 1战斗力 +2 收起 理由
yxch + 2 好评加鹅

查看全部评分

回复

使用道具 举报

     
发表于 2024-10-23 22:31 | 显示全部楼层
WhiteGlint 发表于 2024-10-23 16:03
4090我在4K杜比跑4221模型24-48fps 会音画对不齐啊,而且显卡也没吃满,不知道是不是我U瓶颈 ...

开个小飞机,看看视频的帧生成曲线是不是平滑的呢

插帧后,音画不同步,好像我也遇见过,后来搜索解决了,但我已经忘记怎么解决的了,甚至我不记得是不是在MPV上遇见的
到是配置成HDR直通,花了点时间
回复

使用道具 举报

     
发表于 2024-10-23 22:44 | 显示全部楼层
zmw_831110 发表于 2024-10-23 22:31
开个小飞机,看看视频的帧生成曲线是不是平滑的呢

插帧后,音画不同步,好像我也遇见过,后来搜索解决了,但 ...

A+V那边偏差值一直在0.2上下跳动 帧生成不稳定 感觉是性能不足 换46模型就好了
回复

使用道具 举报

     
发表于 2024-10-23 22:48 | 显示全部楼层
本帖最后由 zmw_831110 于 2024-10-23 22:53 编辑
WhiteGlint 发表于 2024-10-23 22:44
A+V那边偏差值一直在0.2上下跳动 帧生成不稳定 感觉是性能不足 换46模型就好了 ...

46很垃圾的...部分表现还不如A卡(GCN)的AFM
建议你试一试415(这个4.15评价很高),我性能不够,用的4151(4.15Lite)
你可以先看看MPV lazy的作者默认给你做好的配置
在mpv-lazy\k7sfunc.py文件里的
  1. ##################################################
  2. ## RIFE补帧
  3. ##################################################

  4. def RIFE_NV(
  5.         input : vs.VideoNode,
  6.         lt_d2k : bool = False,
  7.         model : typing.Literal[46, 415, 4151] = 46,
  8.         ext_proc : bool = True,
  9.         t_tta : bool = False,
  10.         fps_in : float = 23.976,
  11.         fps_num : int = 2,
  12.         fps_den : int = 1,
  13.         sc_mode : typing.Literal[0, 1, 2] = 1,
  14.         gpu : typing.Literal[0, 1, 2] = 0,
  15.         gpu_t : int = 2,
  16.         st_eng : bool = False,
  17.         ws_size : int = 0,
  18.         vs_t : int = vs_thd_dft,
  19. ) -> vs.VideoNode :
复制代码


我更换RIFE,一般是直接改名新版本的RIFE,直接覆盖过去
比如我常用的4151对应的是rife_v4.15_lite.onnx
我就直接把新版本的.onnx文件,直接改成rife_v4.15_lite.onnx去覆盖原本的文件(当然,提前备份好真的rife_v4.15_lite.onnx)
\mpv-lazy\vs-plugins\models\rife_v2\rife_v4.15_lite.onnx
回复

使用道具 举报

     
发表于 2024-10-24 00:42 | 显示全部楼层
zmw_831110 发表于 2024-10-23 22:48
46很垃圾的...部分表现还不如A卡(GCN)的AFM
建议你试一试415(这个4.15评价很高),我性能不够,用的4151(4.15 ...

多谢,我试试看。
我是没有降低分辨率插帧,4151模型的A+V偏差值也会维持在0.2
也就是Vpy的配置文件里是
H_Pre = 2160
Lt_D2k = True
预降低处理源高度的话好像就没有问题,但是我感觉4090的性能应该够,我检查一下滤镜方面

回复

使用道具 举报

     
发表于 2024-10-24 06:56 来自手机 | 显示全部楼层
WhiteGlint 发表于 2024-10-24 00:42
多谢,我试试看。
我是没有降低分辨率插帧,4151模型的A+V偏差值也会维持在0.2
也就是Vpy的配置文件里是

滤镜得关。。。你这个就是性能不够
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-9 09:53 , Processed in 0.067271 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表