根据有关/选项的x265 命令行选项文档:-F
--frame-threads
使用单帧线程在压缩方面略有改进,因为整个参考帧始终可用于运动补偿,但它具有严重的性能影响。
这会显着影响文件大小吗?
对于显着更多的编码时间,您可以获得微不足道的质量改进并且几乎没有文件大小差异。
使用 x265 编码。命令 #1 使用 default --frame-threads
。该值由核心数自动确定。使用我的老年硬件,它正在使用--frame-threads 3
.
time x265 input.y4m -o default.hevc
real 0m58.430s
user 6m34.437s
sys 0m2.409s
time x265 --frame-threads 1 input.y4m -o frame-threads1.hevc
real 1m29.684s
user 5m38.404s
sys 0m2.992s
大小基本相同:
24858360 (24M) default.hevc
24859280 (24M) frame-threads1.hevc
使用--frame-threads 1
速度明显较慢。在我的情况下,慢了 3 倍,但我的 CPU 很古老,所以对你来说可能会有更大的不同。
通过VMAF、PSNR、SSIM 或任何更喜欢确定质量的方式进行视觉比较。
ffmpeg -v error -i input.y4m -i default.hevc -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf" -f null -
VMAF score: 82.979207
ffmpeg -v error -i input.y4m -i frame-threads1.hevc -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf" -f null -
VMAF score: 82.986954
VMAF 分数越高越好,但只有 0.007747 的差异,我无法通过查看来判断。