求指导,借鉴大佬分享的参数用H265软压remux,如何提升VMAF值?
dwing吧
全部回复
仅看楼主
level 3
阳羊爸爸 楼主
感谢吧内大佬分享了成熟的压制参数!借鉴这套参数,不论是处理H264转H265,还是蓝光的m2ts转H265,画质基本都非常满意。crf26-faster的组合下,SSIM和VMAF都能达到92以上。
最近从98上下了6T多的Remux原盘大包,文件都在20G左右。想用纯cpu软压成H265格式的mp4保存。借鉴吧内大佬分享的压制参数,ffmpeg命令行尝试了从crf26-faster到crf14-medium等不同的压制组合,然后跑FFMetrics测试画质。结果很悲剧,所有的PSNR都在32.xx,所有的SSIM都在95.xx,而所有的VMAF都在67-72之间。最好的crf14-medium组合也只有72.7。求大佬指导如何调整参数提升VMAF值,达到91以上的近似无损画质。谢谢!
ffmpeg -i "smbd-172.mkv" -c:a aac -b:a 128k -ac 2 -c:v hevc -x265-params min-keyint=5:scenecut=50:open-gop=0:rc-lookahead=60:lookahead-slices=0:me=hex:subme=2:merange=57:ref=3:max-merge=3:no-strong-intra-smoothing=1:no-sao=1:selective-sao=0:deblock=-3,-3:ctu=32:rdoq-level=2:psy-rdoq=1.0:crf=26:rskip=2 -preset faster -pix_fmt yuv420p smbd-172-H265-CPU-crf26-faster-aac.mp4
2023年09月19日 13点09分 1
level 7
快速压制没啥用,软编预设开快速不如硬编了,软编上个veryslow
2023年09月19日 23点09分 2
level 7
预设默认更没必要了
2023年09月19日 23点09分 3
吧务
level 14
能跑到这么低分多半是方法有问题
2023年09月20日 05点09分 4
感谢Z大回复!按照“分享一下我主要用于BDrip的x265参数吧……”帖子中的参数再次压制,三项指标均没有个位数的提升。求指导!
2023年09月20日 13点09分
level 5
用264.exe和ffmpeg的libx264,同样的参数,压出来的视频一般分数相同,或者差距很小,但偶尔也有视频分数差距很大,据说是因为音频不同步造成ffmepg压出来分数极低。虽然不一定能解决你的问题,但是至少能告诉你,不要迷信数据。
ps:av1也是用ffmpeg管道输出给Svtav1压制。
2023年09月20日 11点09分 5
要验证是不是视频本身的问题,也很简单,你用单独的x265程序压一遍,就知道了。
2023年09月20日 11点09分
谢谢大佬! 求教单独的x265程序有教程吗?我只会命令行的ffmpeg和图形的ShanaEncoder这两个工具,然而这两个工具用h265格式压制出来的结果几乎没有差距。
2023年09月20日 13点09分
@阳羊爸爸 一般我是用avs4x26x.exe配合x265.exe,输入avs脚本,还需要AviSynth的库文件,有点麻烦。至于ShanaEncoder,这玩意儿本来就是ffmepg套壳,实际上还是ffmepg,其它ffmpeg套壳工具也是一样。
2023年09月20日 14点09分
我的意思是,如果压其它视频跑分正常,可以不用理会个别跑分偏低的视频。你压出来的视频质量其实没有问题,只是ffmpeg导致跑分变低。
2023年09月20日 14点09分
level 3
阳羊爸爸 楼主
感谢Z大回复!今天学习了大佬的“分享一下我主要用于BDrip的x265参数吧……”帖子,照猫画虎再次压制,速度超级慢,但三项指标PSNR、SSIM和VMAF依然没有个位数的提升,求指导!
ffmpeg -i "smbd-172.mkv" -c:a aac -b:a 128k -ac 2 -c:v hevc -x265-params psy-rd=2:aq-mode=1:aq-strength=0.8:qcomp=0.7:pbratio=1.2:sao=0:rect=0:strong-intra-smoothing=0:b-intra=1:weightb=1:ctu=32:cbqpoffs=-2:crqpoffs=-2:deblock=-1,-1:rc-lookahead=80:keyint=360:min-keyint=1:open-gop=0:bframes=8:rd=5 -pix_fmt yuv420p10le -preset 6 -crf 14 smbd-172-H265-CPU-crf14-6-Z.mp4
2023年09月20日 13点09分 6
level 5
这是简化版的x265批处理脚本供你参考,把视频文件拖放到批处理文件上就行。需要提前准备好AviSynth的库文件,x265.exe和avs4x26x.exe这些都需要设置好环境变量,或者用绝对路径,ffmpeg只做转音频和合并的工作。
2023年09月20日 14点09分 7
感谢大佬耐心指导!这个对于我而言太难了,好在现在硬盘便宜,这批REMUX原盘就原封不动的收藏了。用ffmpeg的crf26+faster压成2G左右的小文件,方便在ipad上观看。
2023年09月21日 13点09分
吧务
level 14
跟你说分数有问题了,我们正常vmaf 95分叫偏低,91分叫做很差了,码率不变改个参数哪来的地方让你个位数提升
2023年09月21日 09点09分 8
感谢Z大!ffmpeg转码我完全是小白,还不会调整参数。照搬大佬帖子里的参数压制后,码率达到了21.6M,已经很接近原盘了,尺寸也比原盘大了1GB,然而vmaf还是只有68.xx,也许是音频不同步的原因造成。
2023年09月21日 13点09分
level 6
preset 要用中
2023年09月22日 00点09分 9
谢谢大佬!-r参数指定后,VMAF一口气飙升到92了,完全可用。
2023年09月22日 13点09分
level 6
ffmpeg -r 指定帧数
-i 前面加
2023年09月22日 01点09分 10
level 3
阳羊爸爸 楼主
大佬的方法还是很有效的,所有参数都没有动,就是在-i的前面加了 -r 29.97这个参数。用crf26和faster压制后测试,PSNR上到了41,SSIM也提升到97以上,最关键的VMAF直接从70左右一口气飞升到92.4。完美了。谢谢大佬!
2023年09月22日 13点09分 11
level 1
md output
for %%i in (*.mp4) do ffmpeg.exe -noautorotate -i ".\%%i" -filter:v "scale=1920:-1" -vsync passthrough -c:v libx265 -pix_fmt yuv420p10le -preset 3 -crf 26 -x265-params psy-rd=2:aq-mode=1:aq-strength=0.8:qcomp=0.6:pbratio=1.2:sao=0:rect=0:strong-intra-smoothing=0:b-intra=1:weightb=1:ctu=32:cbqpoffs=-2:crqpoffs=-2:deblock=-1,-1:rc-lookahead=25:keyint=250:min-keyint=20:open-gop=0:bframes=5:rd=4 -acodec copy "G:\output\%%i.x265.crf26.10bit.ctu32.mp4"
给一个之前用过的BAT代码参数供参考。
说明:
1、md output在当前目录创建output文件夹(存放转码后的文件)
2、建议不改,用原始的scenecut=40(场景切换,充入i帧,会有连续影响,推荐原始值40)
3、转码后在ipad上看,可以把分辨率降到720p,上面代码是1080p,只是在ipad看crf可以加到默认值28
4、以上代码参考Mr-Z、flyabcdefg321在本吧的贴子,自己组装
5、没有万能的参数,只有适合自己的代码最好
2023年10月17日 05点10分 12
直接传递源文件的帧率:-vsync passthrough 参考z大的10比特位深:-pix_fmt yuv420p10le,可用可不用的(对于暗场有帮助)
2023年10月17日 05点10分
for循环,自动将文件夹中的MP4全部转码
2023年10月17日 05点10分
@贴吧用户_5bNU5WN :-vsync passthrough 有用。之前vfr的片子压出来分数不对。
2024年02月15日 09点02分
@gartour 我记得passthrough只能用于有时间码的源文件,如果源文件没有时间码会出错
2024年02月15日 11点02分
1