ffmpeg 的 aac 编码器是否需要音频比特率?

C0n*_*0nk 8 ffmpeg aac

如果不在 aac 编码器中设置音频比特率会怎样?

-ab 128k
Run Code Online (Sandbox Code Playgroud)

它是否会自动选择它所能达到的最高比特率,或者我很好奇我是否应该这样做,或者如果这样做会很糟糕,我看不出有什么区别。

slh*_*hck 13

这完全取决于您使用的 AAC 编码器。ffmpeg 可以使用多种 AAC 编码器:

  • aac (ffmpeg-internal) – 单声道和立体声默认为 128 kBit/s。
  • libfdk-aac – 立体声默认为 128 kBit/s,单声道默认为 96 kBit/s CBR。

通常,您应该选择比默认值更高的比特率aac。这是因为它产生的质量略低于libfdk-aac相同比特率。通过-b:a适当设置来做到这一点,例如-b:a 192k

我试图在我的主页上总结 VBR 选项,FFmpeg Wiki有关于 AAC 编码的良好信息以及一些示例命令。

此外,当您在 ffmpeg 的日志输出中看到与此类似的行时:

Stream #0:0: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), … 96 kb/s
Run Code Online (Sandbox Code Playgroud)

那么kb/s这里显示的不一定反映编码器将真正使用什么,因为这取决于具体的实现。


还有一些 ffmpeg 不再支持的编码器:

  • libfaac– 默认 VBR 设置为 100,这导致立体声音频约为 128 kBit/s(参考)。
  • libvo-aacenc – 单声道和立体声默认为 128 kBit/s。
  • libaacplus