如果您没有在 aac 编码器中设置音频比特率会发生什么?
-ab 128k
它是否会自动选择最高比特率,或者我很好奇我是否应该这样做,或者是否会很糟糕,我看不出有什么区别。
答案1
编码器不一定需要传递比特率才能工作。但仍然建议设置它。
默认值是多少以及选择哪种比特率完全取决于您使用的 AAC 编码器。ffmpeg 可以使用多个 AAC 编码器:
aac
(ffmpeg-internal) – 单声道和立体声默认均为 128 kBit/s。libfdk-aac
– 立体声默认为 128 kBit/s CBR,单声道默认为 96 kBit/s CBR。
一般来说,你应该选择比默认比特率更高的比特率。这是因为它产生的质量比相同比特率aac
略低。libfdk-aac
通过适当设置来实现-b:a
,例如-b:a 192k
:
ffmpeg -i input.wav -c:a aac -b:a 192k output.m4a
aac
对比libfdk-aac
为什么libfdk-aac
有时不推荐?因为它使用非自由许可证,并且不能包含在ffmpeg
静态构建中(即,您可以直接从网站下载的构建)。这就是为什么使用aac
内置于 ffmpeg 中的 更容易。
但如果您可以访问libfdk-aac
,当然可以使用它。
选择哪些质量选项?
您还可以选择 VBR 编码,而不是选择固定比特率。
我尝试总结一下 VBR 选项在我的主页上,以及FFmpeg 维基有关于 AAC 编码的详细信息以及一些示例命令。
我可以相信日志输出吗?
当你在 ffmpeg 的日志输出中看到类似这样的一行时:
Stream #0:0: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), … 96 kb/s
那么kb/s
这里显示的不一定反映编码器实际使用的内容,因为这取决于具体的实现 - 编码器可以使用可变质量。
还有一些编码器不再被 ffmpeg 支持:
libfaac
– 默认 VBR 设置 100,立体声音频约为 128 kBit/s(参考)。libvo-aacenc
– 单声道和立体声默认均为 128 kBit/s。libaacplus
答案2
编辑 对于非常老版本的 ffmpeg /编辑Libfaac 设置了默认比特率。立体声输入为 128k,单声道为 96k。
在任何当前版本中都可以安全地忽略它