如何解释 LAME 和 FFmpeg 对低 CBR MP3 文件进行编码方式之间的差异?

如何解释 LAME 和 FFmpeg 对低 CBR MP3 文件进行编码方式之间的差异?

我正在尝试寻找匹配的 FFmpeg 选项,以便在使用 lame 时产生相同的结果。我们主要使用 CBR,因此转换似乎很简单。

LAME: -b XXX --cbr -m j -q 2 -t
ffmpeg: -codec:a libmp3lame -b:a XXXk  -compression_level 2

其中XXX表示此范围内的比特率(64、128、192、256、320)

我正在针对一组具有不同采样率(44100、48000、96000、176400、192000)的杂项音频文件测试此转换。输出结果与所有 CBR 速率匹配64.

以下是简要总结。

inp freq   lame   ffmpeg
44100   -> 24000, 44100
48000   -> 24000, 48000
88200   -> 24000, 48000
96000   -> 24000, 48000
176400  -> 24000, 48000
192000  -> 24000, 48000

在所有情况下,LAME 都重新采样到 24000,而 FFmpeg 并未跟进。

在此处本维基文章中说:

CBR 比特率低于 104 kbps,输入将重新采样为 32000、24000、22050、16000、12000、11025 或 8000,具体取决于目标质量级别或比特率。

但 FFmpeg 似乎不遵循此规则?我是不是漏掉了什么?

相关内容