ffmpeg VP9 - 质量设置有何变化?

时间:2015-05-26 06:54:27

标签: ffmpeg libvpx

使用选项-qualitybestgood对VP9进行编码时,

ffmpeg设置为realtime。这些选项如何影响其他可用的编码选项(例如-speed-slices-frame-parallel等等?)?我在某个地方读到-best-good -speed 0将提供相同的质量,后者更快。对我来说这听起来像质量设置只是改变其他选项(如-speed),好像它们只是预设,人们可以手动获得相同的结果。这是真的,还是质量设置会影响我无法通过其他选项改变的事情?

1 个答案:

答案 0 :(得分:6)

经过一些在线搜索和一些挖掘libvpx代码之后,我想我已经弄明白了。似乎ffmpeg -quality命令与-deadline命令相同。这些命令不会直接影响其他选项,而只是确定允许编码器在任何特定帧上花费的时间。正如libvpx代码中的vpx_encoder.h文件中所评论的那样:

  

编码器支持软实时截止日期的概念。给定截止期参数的非零值,编码器将做出最好的努力"保证在给定时间片到期之前返回。隐含的是,限制编码的可用时间会降低输出质量。通过指定' 0'的最后期限,可以给编码器无限时间以产生最佳帧。这个截止日期取代了VPx的最佳质量,优质,实时的概念。希望将这些以前的设置映射到基于新截止期限的系统的应用程序可以使用符号#VPX_DL_REALTIME,#VPX_DL_GOOD_QUALITY和#VPX_DL_BEST_QUALITY。

预设质量的值在此文件中定义为:

- BEST     =       0 Microseconds = Infinite
- GOOD     = 1000000 Microseconds = 1 Second
- REALTIME =       1 Microsecond

默认设置为最佳。