FFmpeg VP9 - 质量设置改变了什么?

5

在使用选项bestgoodrealtime对VP9进行编码时,ffmpeg有一个-quality设置。这些选项会如何影响其他可用的编码选项(例如-speed-slices-frame-parallel等)?我在某个地方读到过-best-good -speed 0将提供大约相同的质量,但后者速度更快。对我来说,这听起来就像质量设置只是更改其他选项(例如-speed)的预设,人们可以手动实现相同的结果。这是真的吗,还是质量设置会影响我无法通过其他选项更改的东西?

1个回答

8
经过在线搜索和对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

默认设置是最佳的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接