- UID
- 238208
- 精华
- 0
- 冰点
- 99
- 阅读权限
- 100
- 主题
- 115
- 回帖
- 3885
- 性别
- 男
- 在线时间
- 699 小时
- 注册时间
- 2019-7-6
- 最后登录
- 2025-1-11
签到天数: 800 天 [LV.10]以坛为家III
炎之精灵LV.1
- 回帖
- 3885
- 雪点
- 91677
- 阅读权限
- 100
- 性别
- 男
- 在线时间
- 699 小时
- 注册时间
- 2019-7-6
- 最后登录
- 2025-1-11
|
本帖最后由 yanggw13 于 2022-1-8 14:24 编辑
此贴已过时,请移玉步到v2
SVP重大更新已经过去了大半年了,旧版的教程已经过时了,有很多不适用于现在的版本。
因此,新的一年重新开讲【高质量补帧讲座v2】,新讲座暂定为七讲,除第一讲为通用,其余为新增或重写;希望在元旦假期能够更新完成。
v2新版链接:
【高质量补帧讲座一】序言:SVP补帧、madVR渲染、去色带、缩放的 介绍 及 必要性
https://www.deainx.me/thread-75936-1-1.html
【高质量补帧讲座二v2】硬件篇:SVP补帧+madVR渲染所需硬件指导
https://www.dranime.net/thread-85367-1-1.html
【高质量补帧讲座三v2】安装篇:安装LAV、potplayer、MPC-HC、SVP、madVR
https://www.dranime.net/thread-85376-1-1.html
【高质量补帧讲座四v2】配置篇:MPC-HC/potplayer+LAV+SVP+madVR
https://www.dranime.net/thread-85380-1-1.html
【高质量补帧讲座五v2】不良问题应对:丢帧BUG、花屏BUG、强制反交错(限potplayer)
https://www.dranime.net/thread-85414-1-1.html
【高质量补帧讲座六v2】方案匹配:potplayer、SVP多方案自动匹配
https://www.dranime.net/thread-85425-1-1.html
【高质量补帧讲座七v2】媒体中心:kodi多媒体中心简介及调用第三方播放器
https://www.dranime.net/thread-85427-1-1.html
旧版链接:
【高质量补帧讲座 一】SVP补帧、madVR渲染、去色带、缩放的 介绍 及 必要性
https://www.deainx.me/thread-75936-1-1.html
【高质量补帧讲座 二】potplayer+SVP+madVR教程,无伪影、无扭曲、动画字幕,完美方案
https://www.deainx.me/thread-75946-1-1.html
【高质量补帧讲座 三】potplayer+SVP+madVR / EVR(CP)的硬件性能需求
https://www.deainx.me/thread-76446-1-1.html
【高质量补帧讲座 四】USB采集卡+VLC+SVP让电视盒也补帧
https://www.deainx.me/thread-77570-1-1.html
【前言】
前面介绍过SVP、madVR作用。https://www.deainx.me/thread-75936-1-1.html
本贴主要是讲解如何安装和配置,达到最佳效果。
本教程主要针对potplayer环境,其他播放器可以参考一下,但是我不推荐你们用别的播放器玩SVP就是了。
有用过SVP的网友多少都会遇到过这些问题:
1、CPU占用太高了,掉帧
2、输出不了10bit
3、出现果冻状扭曲变形、鬼影之类的不良反应,例如:硬字幕变形
4、不知道怎么设置SVP能够达到最佳效果,手调怎么调?
以上常见问题都是可以改善或解决的,下面抛干货,绝对比现在能搜到的任何教程都要好用。
首先1、2问题其实是相同的原因,老掉牙的ffshow滤镜的锅。效率低下,还不支持10bit。需要改用AviSynth。唯一支持AviSynth只有potplayer,所以只能用potplayer,并且只能用potplayer自带的FFmpeg软解码哦。不支持Lav之类的第三方软解码哦。而且明现potplayer自带的反交错效率和效果都比Lav要好啊。
其次,问题3的果冻、伪影问题,需要用到黑米其大佬的脚本,不过那个脚本有BUG,不能放VCD老片,所以我个人做了点小修改。大家下载附件。
最后,问题4当然会在最后提供几个比较合理的设置参数。
好了,大致要教的就是这些,下面开始一步步跟着做就行。尽量少说理论。
一、【安装篇】
1.1 安装potplayer
真正的官网:potplayer.daum.net
天朝被墙(DNS污染),自行改host可以访问:
211.231.108.181 potplayer.daum.net
potplayer安装方法没必要教了吧。
只是强调一下,绿色版、安装版,均可。
版本酌情选择,我个人推荐1.7.17508版本及之前的版本。因较新版本的FFmpeg解码器有些老片解码有BUG,花屏。(例如论坛里的:极道君、五更、萌萌侵略者)
有个网址可以找到potplayer所有历史版本的,不过网址我弄丢了,希望有找到的飘有发一下链接。
我珍藏的potplayer_1.7.17508安装版32&64位
链接:https://pan.baidu.com/s/1-UF9jdRmttqJuKdO8zsmxg
提取码:pppp
1.2.1 安装SVP
手动装
SVP安装已附带madVR,如果你想懒点,就勾上把madVR一起装了。不过我并不知道安装目录是哪里。
我是自己到madVR官方下载并安装的。
精简安装
根据我们的用途,只保留用得上的东西。
完全安装
无脑完全安装,反正容量不大,说不定以后能用得上(但是不装播放器)
安装时不必担心自己多装或者少装什么,以后是可以增减组件的。
1.2.2 SVP打入完美脚本
脚本象征性收费:
脚本文件覆盖到C:\Program Files (x86)\SVP 4\script
注意备份好原版文件,没备份的复原只能重装哦。
这个脚本就是前言提到的问题3,用于消除伪影、果冻效应、扭曲变形的副作用。不过打入脚本之后CPU占用率会大涨。
1.2.3 SVP更新
SVP出新版本的时候,并不会自动更新也不会自动检测。
提前说一下更新方法是为了避免有些网友跟我一样,傻傻的卸载旧版再装新版。这样做的话,所有配置都会丢失哦。
手动更新:主界面-左上角图标-工具-高级功能-更新组件-无脑下一步
更新后脚本可能会被覆盖,建议更新后覆盖一遍脚本。
1.2.4 SVP首次运行
首次运行SVP以及变更重要硬件之后首次运行SVP都会提示要你跑分测试。
这一步不要跳过,必须跑。不跑效能会发挥不好。
1.3.1 madVR安装
官网:http://www.madvr.com/
下载:http://madshi.net/madVR.zip
解压缩到你想要安装的路径。
右键-以管理员身份运行install.bat
1.3.2 madVR汉化
网上找到一个汉化包,虽然汉化不完美,中文总会比较好理解的。
https://github.com/revaraver/Soft-CHS/tree/master/madVR
二、【配置】
2.1 potplayer设置
这里只讲最重要、和必须的选项,其他选项你们根据自己喜好、需求设置
带星号代表必须,其他是比较重要属于建议、推荐这么做
在播放器右键-选项,打开设置窗口
*基本-多重处理-单个进程(挂了SVP要是几个视频一个播,可能电脑会Boom)
基本-自动更新-不使用自动更新(必须不需要的新版的朋友不小心更新新版了)
基本-保存设置到INI(改东西比较方便)
*字幕-输出方式-输出到覆盖
字幕-语言同步-首选语言“粤 粵 港 hk hongkong 台 臺 繁 tw ts big5 b5 cht 中 简 zh chi cs chs”
复制这段文字进去吧,总之经过测试飘雪里面99%的合成作品这样填基本能正确默认粤语。
(自动首选的音轨。注意不能有重复的关键字,会有BUG,例如:“粤语 粤”两个会起冲突导致失效)
*滤镜-激活条件-不使用(大佬教的,我不是很懂)
滤镜-两项不要勾(大佬教的,我不是很懂)
*滤镜-全局滤镜-添加系统滤镜madVR,并勾选为强制使用
(这里要特别说明一下,这里用滤镜的方式调用madVR是为了兼容SVP补帧后正常播放字幕动画。许多大佬的主流教程说是用视频渲染器选择madshi的方式,但是这样SVP补帧后会有帧率BUG字幕闪屏)
*视频-色彩空间-直接转换
这里设置解码输出的色深,默认值无论源编码是什么都会统一输出为8bit 4:2:0
如果我们希望10bit视频能正常解码出10bit,那就要修改一下。、
但是输出色深质量越好,CPU占用率和内存吞吐量会越大。质量太高可能负荷不起,所以需要酌情选择。
这里推荐几个选择
1、性能:默认值,锁定为8bit 4:2:0
2、均衡:锁定为 8bit 4:2:2,比默认会好一点,性能消耗增加很微
3、自适应:根据源编码自动选择 8bit 4:2:0 或 10bit 4:2:0
4、质量:锁定为 10bit 4:2:0,据说有些编码不能正确识别10bit,这就需要锁定为10bit了。还有,8bit源码强制为10bit输出并不会对画面有任何优化或劣化,但是资源消耗大点,比较费电
视频-反交错-S/W反交错方式-LB(我觉得这个反交错综合效果比较好)
反交错也特别说明一下,有些片源不能自动识别出交错,就需要把使用条件改为总是使用。反交错是非常占用CPU的,所以用完记得改回自动。
建议大家自定义快捷键,会方便点。
*视频-AviSynth-启用帧缓冲-20~20(默认是10,会导致补帧卡顿,很多人说用AviSynth更卡。其实是没改这个。电脑配置越低,越需要调大。我8700K改14够用,但是4核老E3需要24)
声音-默认输出设备-内置WASAPI(大家都说好,我不懂)
*关联-选择视频(potplayer安装好默认关联的文件不多,需要自行设置一下)
全部都好了,记得点确定哦!!
2.2.1 SVP全局设置
打星号为必须,没带星号的你看情况随意,我只是推荐这么做
*修改值,使用avisynth
*右上角的。。。-设置
*找到potplayer。使用右下角的搜索可以快速找到你需要修改的字段
*native:true
*prefer_avisynth:true
*多路平台修正
*这一项是对于双路、三路、四路等的多CPU平台的补充。只有多路平台才需要修改。
图中几个参数是跑分结果,但是跑分有个BUG,只测试单CPU,所以这个结果只是单路成绩。
双路需要把圈中数值 X2,三路则是 X3,如此类推。否则只会发挥单路级性能。
左上角图标
*应用程序-随windows启动,勾选
*应用程序-附加选项-尝试恢复HDR,不勾(madVR会对HDR处理,播放器也有HDR修复功能,不要重复处理。重复处理会“过曝”)
*应用程序-附加选项-允许10bit输出,勾选
视频处理-不检测黑边(好像根本检不到黑边,关闭了)
视频处理-保持正常大小(保持:画质好,缩减:省资源,但是又省不了多少)
背景灯-禁用(不喜欢这种华丽花销又占资源的特效)
应用程序-附加选项-启用多路视频-对所有视频用SVP(避免换片或跳转SVP失效,有失效情况就要选这个)
2.2.2 SVP补帧参数设置
默认是使用自动方案的,可以通过拉高低质量。
而各挡位只是官方预设了一堆配置参数。不过我们已经换了脚本,基本上这些预设方案都不好用,其实本来也并不好用。
所以我们开始做手动方案。
右上角“新建”,输入名称,就创建了一个方案。
右边的红色STOP是彻底禁用SVP。如果你不需要补帧,必须要选中。不然就算不补帧也会吃掉与补帧相当的CPU资源。例如很多电脑根本不具备对4K片源进行补帧的能力,就要用这个STOP,不然就卡死了。
这个选项只有手动才有。
点开启补帧的话,下面就出参数了,不点开不补帧。
这里只有两个选项是大幅度影响CPU占用率的。“渲染设备”和“SVP着色器”
渲染设备:选择用纯CPU,还是显卡加速。(是最影响占用率的选项)
这个是最影响占用率的选项。选显卡能够大大降低CPU占用率,而且本身也不占多少显卡性能,核显可以胜任。但是缺点是会降低画质,能不用加速尽量不用。
SVP着色器:选择用什么算法来补帧,不同算法的效果以及资源占用率当然有区别。
经过反复测试“1、最快”占用率明显降低。2~23基本相同差距不大于3%,所以直接用公认效果最好的“23、复杂”就可以。所以只推荐1和23,二选一。
因此得出的结论是有2*2=4种主要方案可以选择。
不过根据我反复的尝试1、最快搭配纯CPU,画质一般,但是CPU占依然居高,属于性价比特差的方案,所以抛弃。因此实际大方案只有3个:
高档:23、复杂+纯CPU
中档:23、复杂+显卡加速
低档:1、最快+显卡加速
这几个选项是必须的
*补帧模式:恒定(只推荐这个)
*删除重复帧:不要删除(这个其实是删原画,测试才用,播放成幻灯片)
*处理线程:不改变(改了好像没任何作用,没大问题不要乱改)
伪影去除力度:是用来去除补帧后产生的伪影的,不开会有伪影,但是开高对动画有副作用,动画卡顿。
动画建议:最轻微、轻微(轻微比较通用)
真人建议:最强
运动向量网格:据说动画比较适合调低。
动画建议:24像素
真人建议:6像素
所有运动向量选项的总和,从最低到最高,对于CPU的占用差别仅仅只有5%~10%。所以一般没必要拉低了,拉中高就好。参照下面截图吧。
高低挡位根据自己硬件性能以及片源分辨率来选择。然后分开真人和动画两种方案。
于是我们主要得出3*2=6套方案了。
动漫高档
动漫中档
动漫低档
真人高档
真人中档
真人低档
2.2.3 SVP设置方案生效条件
影响SVP性能消耗的条件主要有这几个:视频原生的 分辨率、帧率、码率:越高的话越消耗性能。
因此不同分辨率、帧率,对资源占用不一样。比如观看1080P很流畅,但是播放4K主流配置都会卡成幻灯片。
我们希望在1080P视频上面使用高档方案,4K视频使用低档、甚至禁用SVP,高帧率禁用SVP。
所以会根据不同的分辨率和帧率去创建多个方案,并加入生效条件。
条件在左下角加。
加了条件会按照条件的判断去匹配方案。而未添加条件的方案会被理解为“默认”,取代软件自带的“自动”。
如果有两个方案都同时满足时,会套用满足条件较多的方案。
例如:A方案是小于30fps,B方案是小于30fps且分辨率在1080P以内
我们播放一段1080P24fps的视频,这时候A、B方案都符合,但是A方案只有1个条件,而B方案有2个条件,因此采纳B方案
常用的条件主要有
原始帧大小(不要误用帧大小哦)
是片源的高宽乘积,例如1920*1080=2073600,这个条件的单位是百万像素,所以应该输入2.0736。比如我想表达1080P(1K)以内的片源。应该设置为,原始帧大小《2.1
视频帧率
就是原始视频的帧率,例如一般都创建一个禁用SVP的方案,条件为:视频帧率》59。这样所有60帧的视频都不会再做补帧了。
完整路径
用来判断路径有没有包含某个关键字,并且支持正则表达式。例如:/电影|剧集/ ,只要是路径包含了“电影”或者“剧集”其中一个就符合条件。比如我通常会把电影存放在“电影”文件夹,这样观看电影就可以套用这个方案了。
好了,明白用法就开始创建多个方案。
一般名字我都按实际用途取名,比如“2K以内”。也就是适合2K以下分辨率使用的方案,好的命名规则方便理解便于以后修改。大致上你看着这些命名就知道我设置了什么条件了
禁用:“大于60fps”
动画用(默认):“2K以内”、“4K30P以内”、“4K30P以上”、
真人用:“2K以内(真人)”、“4K30P以内(真人)”、“4K30P以上(真人)”
2.3 madVR设置
因madVR非常多人使用,所以关于madVR设置的文章网上也非常多,不会像SVP那样很难找到进阶的教程。
而且madVR的设置跟你的PC硬件有很大的关系,所以我就不深入讲解,主要提一些要点,以便缩短大家的上手时间。
打开madVR设置主界面的方法:
按照本教程设置好potplayer以后,直接播放一个视频,会发现右下角托盘就多了一个madVR的图标了,打开它吧。
*显示器设置
*devices-显示器型号-properties-RGB电平(你是PC还是TV)
*devices-显示器型号-properties-位深(这个超级重要,根据屏幕的物理位深选择,可以通过产品的官网查询,如果查不了就肉眼诊断了,从高到低逐渐找到一个无色带的数值)
*devices-显示器型号-hdr(默认第一个会自动修复HDR色彩,如果你是支持HDR的显示器则选择第二个,让显示器处理HDR)
scaling algorithms里面设置缩放算法,一般越往下的选项越消耗资源。用什么算法好、参数应该怎么设置,这些细节我不是大佬,请另行搜索。
不过算法当然不是一招打天下的。
相同地算法,缩放倍数越大,资源消耗会越大。假如我们要把低清老片放大8倍,这需要用比较厉害的算法了。
但是如果是4K超高清影片,会因为算法太强,显卡负荷不来导致丢帧卡顿。
所以要根据不同的条件,使用采用不同的算法。
这里支持用脚本做规则匹配的。新建多个配置方案,我是简单粗暴地建立了Level 0~9级,越高越耗资源。最用if else语法判断。如果语法有错误,右上角变成红X。
语法
if (满足条件) "方案名称"
else if(满足条件) "方案名称"
……
else "方案名称"
由上而下,当遇到满足条件的,就会采用该方案。当没有任何一个if满足的,会采用else的方案。也就是else代表“以上都不是”这个条件。
分享我自用的脚本,你们可以在这个基础上修改
if (1=2) "test"
else if ((srcHeight <= 420)&&(targetHeight/srcHeight > 2.8)) "Level 3"
else if ((srcHeight <= 420)&&(targetHeight/srcHeight > 2)) "Level 3"
else if ((srcHeight <= 420)&&(targetHeight/srcHeight > 1.4)) "Level 3"
else if ((srcHeight <= 420)&&(targetHeight/srcHeight > 1)) "Level 3"
else if ((srcHeight <= 420)&&(targetHeight/srcHeight <= 1)) "Level 3"
else if ((srcHeight <= 600)&&(targetHeight/srcHeight > 2.8)) "Level 3"
else if ((srcHeight <= 600)&&(targetHeight/srcHeight > 2)) "Level 3"
else if ((srcHeight <= 600)&&(targetHeight/srcHeight > 1.4)) "Level 3"
else if ((srcHeight <= 600)&&(targetHeight/srcHeight > 1)) "Level 3"
else if ((srcHeight <= 600)&&(targetHeight/srcHeight <= 1)) "Level 3"
else if ((srcHeight <= 780)&&(targetHeight/srcHeight > 2.8)) "Level 5"
else if ((srcHeight <= 780)&&(targetHeight/srcHeight > 2)) "Level 5"
else if ((srcHeight <= 780)&&(targetHeight/srcHeight > 1.4)) "Level 5"
else if ((srcHeight <= 780)&&(targetHeight/srcHeight > 1)) "Level 5"
else if ((srcHeight <= 780)&&(targetHeight/srcHeight <= 1)) "Level 5"
else if ((srcHeight <= 1080)&&(targetHeight/srcHeight > 2)) "Level 2"
else if ((srcHeight <= 1080)&&(targetHeight/srcHeight > 1.4)) "Level 2"
else if ((srcHeight <= 1080)&&(targetHeight/srcHeight > 1)) "Level 2"
else if ((srcHeight <= 1080)&&(targetHeight/srcHeight <= 1)) "Level 2"
else if ((srcHeight <= 1440)&&(targetHeight/srcHeight > 1.4)) "Level 2"
else if ((srcHeight <= 1440)&&(targetHeight/srcHeight > 1)) "Level 2"
else if ((srcHeight <= 1440)&&(targetHeight/srcHeight <= 1)) "Level 2"
else if ((srcHeight <= 2160)&&(targetHeight/srcHeight <= 1)&&(srcFps <= 30)) "Level 9"
else if ((srcHeight <= 2160)&&(targetHeight/srcHeight <= 1)&&(srcFps > 30)) "Level 9"
else if ((srcHeight <= 2160)&&(targetHeight/srcHeight > 1)&&(srcFps <= 30)) "Level 9"
else if ((srcHeight <= 2160)&&(targetHeight/srcHeight > 1)&&(srcFps > 30)) "Level 9"
else if ((srcHeight <= 4320)&&(targetHeight/srcHeight <= 1)&&(srcFps <= 30)) "Level 0"
else if ((srcHeight <= 4320)&&(targetHeight/srcHeight <= 1)&&(srcFps > 30)) "Level 0"
else if ((srcHeight <= 4320)&&(targetHeight/srcHeight > 1)&&(srcFps <= 30)) "Level 0"
else if ((srcHeight <= 4320)&&(targetHeight/srcHeight > 1)&&(srcFps > 30)) "Level 0"
else "Level 0"
srcHeight参数代表原始高度
targetHeight代表播放高度
srcFps参数代表帧率
其实有很多的变量,我只使用了这3个我认为好用的,如果想了解更多变量,请自行上网搜索。
比如我有一个720P@24fps片源,在1080P@60hz的显示器上播放,这时候srcHeight=720、targetHeight=1080、srcFps=24、targetHeight/srcHeight就是放大倍数了,1080÷720=1.5。
例一:我的第二句:else if ((srcHeight <= 420)&&(targetHeight/srcHeight > 2.8)) "Level 3"
意思为,当影片分辨率小于或等于420P并且放大倍数大于2.8倍的时候,采用Level 3方案。也就是说,我播放420P低清片源,在2K或以上的显示器上全屏播放,这时候条件就生效了。
例二:我倒数第二句:else if ((srcHeight <= 4320)&&(targetHeight/srcHeight > 1)&&(srcFps > 30)) "Level 0"
当影片分辨率小于或等于4320(其实是8K)并且放大倍数大于1(也就是想表达是放大算法)再并且帧率大于30,满足了全部条件,就采用Level 0方案
例三:我的第一句:if (1=2) "test"
这是方便我测试用的语句,1=2永远不成立,所以不会生效的。如果我手动改为1=1这样就生效了。看什么片都套用test方案,方便做测试用。
processing 里面也是和前面一样,可以建立方案套用规则,不再累赘
*processing-artifact removal-减少色带(勾选、低、高。反正大佬推荐的去色带参数,照搬)
rendering 这里也是支持规则
有些参数要提点一下。
general settings-全屏独占(不勾,开全屏独占副作用不少,主要是播放器UI出来的时候会闪黑屏)
*general settings-使用D3D11(必须勾选、提高效率)
CPU、GPU queue size-这是个缓冲量,根据自己的配置调节。并非越大越好,如果太大会挤爆内存、显存,导致反效果,在不塞爆显存、内存的前提下尽可能高一些。
madVR的设置,只简单讲解这么多,本人所知有限。如果我发现其他有意义的功能的话,会继续补充。
2.4 EVR(CP)渲染器
假如你的内存、显卡性能不足以满足madVR的性能需求,无法使用madVR。只能使用potplayer自带的渲染器。
*视频-视频渲染器:EVR(CP) (自带的唯一支持SR双线性缩放,并且公认自带最好的)
*视频-尺寸调整:SR双线性 (自带的算法里面,缩放效果最好的一个)
*视频-垂直同步 勾选 (不开垂直同步会撕裂)
至此,基本完结,有疑问欢迎跟帖提问,想起有什么重要的东西,会不定期更新一下
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|