[MPV] mvtools补帧 | 附保姆级操作流程
本帖最后由 孤雨独火 于 2021-3-20 22:45 编辑此版懒人包停更,移步 https://bbs.acgrip.com/thread-5843-1-1.html
Update:
[*]快速测试包(仅用于兼容性测试):基于0.33,py3.8,VSr52 https://hooke007.cowtransfer.com/s/b35ed08d70a744
[*]20200420:mpv由0.32稳定版更新至 64-20200419-git-a09c769;启用新的mvtools-blksize64.py 并修改参数大幅降低性能占用(见图,8700终于能愉快玩耍并偶尔调戏进度条了);默认解码改为软解 hwdec=no 懒人包链接 https://hooke007.cowtransfer.com/s/e8410c8747f14a
=====================原==文=====================
起因:https://bbs.acgrip.com/thread-5552-1-1.html
已反馈官方support,暂未解决。
有趣的是svp给kikoplay(基于libmpv)配合就没有这个问题,佛了{:12_874:}
当然svp配合vlc,mpc这些也能正常工作。
然后一想既然svp这么容易烂帧(默认最高设置未修改),开始寻找了替代方案。
方案一:MPC+DmitriRender
之前体验过一段试用,在我的surface pro 2017(m3的乞丐版本)都有不错的补帧效果且不太卡顿。
这次补票入正,不过版本过于旧不支持图灵架构,邮件联系开发者索取更新补丁后解决。
体验和之前一样。
优点就是安装完mpc默认已经是挂上滤镜了,所以操作简单适合新手,画面也不容易烂帧。
缺点嘛....过于精简的设置,基本没有可以修改的选项,输出默认锁定位显示器的刷新率无法修改(作者似乎也并不想开放这个设置)
方案二:心心念念的Mpv+mvtools
怎么可以放弃我的主力mpv呢,想到svp其实是一部分基于mvtools,于是去官网看了看。
{:12_880:}不行这超出了我的知识范围,度娘一下似乎国内也没有使用mpv+mvtools的先例。
幸好我发现了万能的vcb坛友:https://bbs.acgrip.com/thread-4316-1-1.html
Linux平台?看了下操作好像在win10上依葫芦画瓢完全没问题嘛。
准备工作:(如果你是使用svp的内置mpv请忽略前几步骤,从下载mvtools开始看起)
[*]MPV纯净版播放器一个(64位播放器对应64位插件,同理32位)
[*]去这里下载vapoursynth支持(portable版即可) https://github.com/vapoursynth/vapoursynth/releases
[*]去这里下载python支持 https://www.python.org/downloads/windows/ 请选择这种版本:
然后将以上两个压缩包内容解压至mpv根目录(最好不要自动解压防止压缩软件多创建一级文件夹)
Tip:留意一下vapoursynth的发布说明,比如当前R52的版本你依然只能使用python3.8.x
[*]去这里下载mvtools https://github.com/dubhater/vapoursynth-mvtools/releases
将libmvtools.dll放至 你的mpv根目录\vapoursynth64\coreplugins\
[*]最后去这里下载 https://gist.github.com/KCCat/1b3a7b7f085a066af3719859f88ded02#file-mpv-mvtools-py
将mvtools.py放至 你的mpv根目录\
(使用config_portable的用户,该文件应放在 你的mpv根目录\portable_config\ )
[*]在mpv.conf里添加这一行(蓝框内容)
注意文件名 请修改代码或重命名文件保持二者一致,以保证生效(你在 i 键菜单是看不出它是否起作用的)
vf=vapoursynth="~~/mvtools.py":concurrent-frames=25
提醒:没有强悍的CPU的小伙伴还是顺便也把硬解开启 hwdec=auto-copy ,否则可能是ppt(播放vcb压制的刀剑神域:序列之争)
即便是硬解,这套参数还是非常吃U的,
当部分场景码率破万的时候我的8700明显力不从心了。(svp吃u的特性果然是遗传自mvtools)
PS.1.如果播放大码率视频(以vcb的刀剑剧场本为例)个人推荐最好I7 8700k同级或以上的cpu尝试此方案
2.这套参数不适合真人电影,伪影多,果冻感强(虽然实测中播放BD原盘流浪地球并不怎么吃性能{:12_856:})
3.顺手做了个64位的便携懒人包,想尝试的自取{:12_877:}
链接已置顶,不定期更新(大概)
4.附测试时所用的mpv参数test# hardware video decoder
hwdec=auto-copy # 如果可能,请指定应使用的硬件视频解码API。硬件解码是否实际完成取决于视频编解码器。如果无法进行硬件解码,则mpv将转而使用软件解码。默认情况下,不启用硬件解码,因为它通常是错误的另一个来源。仅当您的CPU速度太慢而无法解码特定视频时,才值得使用。
#hwdec-codecs=all # 仅允许给定编解码器列表进行硬件解码
vf=vapoursynth="~~/mvtools.py":concurrent-frames=25
vo=gpu # 指定要使用的视频输出后端。
# high quality video output, require rather fast video card
profile=gpu-hq
gpu-api=vulkan
ontop # 窗口置顶和全屏独占
# fixes audio desync
hr-seek-framedrop=no
# this can't be used with SVP cause it also saves vf's states
save-position-on-quit=no # 退出不记住播放位置
#log-file=mpv.log
icc-profile-auto
ao=wasapi
audio-file-auto=fuzzy # <默认no|exact|fuzzy|all>
# "ReClock" replacement
video-sync=display-resample
#video-sync-max-video-change=5
scale=ewa_lanczossharp
dscale=mitchell
interpolation
tscale=oversample
dither-depth=auto
sub-auto=fuzzy
sub-file-paths=subs
blend-subtitles=video # <yes|video|默认no> 在插值和/或颜色管理之前,将字幕直接混合到升级的视频帧上(默认值:否)。 启用此选项会导致字幕受--icc-profile,--target-prim,--target-trc,--interpolation,--gamma-factor和--glsl-shaders的影响。 使用--interpolation时,还可以提高字幕性能。启用此功能的缺点是将字幕限制在视频的可见部分,因此,字幕不能出现在视频下方的黑色空白处(例如)。如果选择了video,则行为类似于yes,但是以视频的原始分辨率绘制了子对象,并与视频一起缩放。
sub-ass-force-margins=yes # 使字幕输出在黑边上
volume-max=100 # <100.0-1000.0>
volume=100 # 播放器启动音量,0为静音
screenshot-format=png
screenshot-png-compression=7 # 默认为7(0-9)
screenshot-png-filter=5 #设置在PNG压缩之前应用的过滤器。0为无,1为sub,2为up,3为average,4为Paeth,5为mixed,这会影响可以达到的压缩级别。对于大多数图像,“混合”可实现最佳压缩率,因此它是默认设置。
screenshot-tag-colorspace=yes
screenshot-high-bit-depth=yes
screenshot-directory=~~desktop/
loop=inf # 循环播放
keep-open=yes # 播放完毕不退出
untimed # 输出视频帧时请勿入睡。 与--no-audio一起使用时对基准测试很有用。
gpu-shader-cache-dir="~~/shaders_cache"
添加最低 低 中 高 非常高给不同垃圾cpu补帧 https://item.jd.com/100012223336.html 我更新了下最近使用的参数,把blksize改到了64x64,目前想法是尽量让mvtools只补画面的几何变化,不碰2d手绘的动画.地址还是原来的地址,多了一个文件 fy939 发表于 2020-4-19 06:10
https://item.jd.com/100012223336.html
前有黑鲨后有oppo,高帧率之后memc应该也有可能会在手机上有所普及,前一加用户,这手机除了续航和简陋的系统,很好,不过太折腾了还是不适合我这个老年人{:12_889:} KC猫 发表于 2020-4-19 08:09
我更新了下最近使用的参数,把blksize改到了64x64,目前想法是尽量让mvtools只补画面的几何变化,不碰2d手绘的 ...
我试了试新的参数,然而更PPT了。。。(依旧是测试vcb的刀剑剧场版)
conf参数如下如有错误请指正
vf=vapoursynth="~~/mvtools.py":concurrent-frames=25
vf=vapoursynth="~~/mvtools-blksize64.py"
本帖最后由 KC猫 于 2020-4-19 19:32 编辑
我自己使用是没问题的,可能是我CPU太强了? (3950x
看负载6-8核的U大概是没问题的
啊,老的那个就注释掉,是二选一的
你还可以试试把
dfps = 60000
改成48000,也就是目标帧率48fps看看,压力会小点
实时压片?太残暴了 KC猫 发表于 2020-4-19 19:22
我自己使用是没问题的,可能是我CPU太强了? (3950x
看负载6-8核的U大概是没问题的
R9 3950x能把我的8700从单核到多核性能全面碾压~~~
那个老的不注释掉也不影响,它默认只认后边的那个。
测试下来(48000)还是12线程满载,不过倒是不ppt了,算是一个折中方案吧,刀剑剧场也算vcb里码率给的十分高的了,一般视频之前老的参数倒也能应付的来。
巴洛克哥特 发表于 2020-4-19 21:12
实时压片?太残暴了
倒也没这么恐怖,svp和mvtools原理差不多的
我看你的图FPS前后是一样的,U确定没有空转?