Flac 到 mp3 的转换会偏移几毫秒的声音

Flac 到 mp3 的转换会偏移几毫秒的声音

当运行这个简单的转换命令时:ffmpeg -i fileA.flac fileB.mp3 ,mp3 输出偏移大约 5 毫秒。

ffmpeg -i fileA.flac fileC.ogg如果我尝试转换为 Vorbis/Ogg(即)则不会发生这种情况

大胆截图:

Audacity 屏幕截图显示偏移

知道为什么会发生这种情况以及如何解决它吗?

答案1

这是由 MP3 编码(或者实际上,编码和解码)的工作方式决定的。请参阅技术常见问题解答

为什么解码后的 MP3 比原始 .wav 文件长?

因为 LAME(以及所有其他基于 MDCT 的编码器)在每首歌曲的开头和结尾添加了填充。LAME 将填充量嵌入 MP3 文件第一帧的辅助数据中。(LAME INFO 标签)。

继续:

全部解码器我已经测试过引入 528 个样本的延迟。也就是说,解码 mp3 文件后,输出将在前面附加 528 个 0 样本。这是因为 ISO 使用的标准 MDCT/滤波器组例程具有 528 个样本延迟。可以编写一个具有 0 个样本延迟的 MDCT/滤波器组例程(请参阅下面 LAME 编码中使用的 Takehiro 的 MDCT/滤波器组例程的描述),但我不知道是否有人这样做过。此外,由于 MDCT 帧的重叠性质,第一个颗粒的前半部分(1 个颗粒 = 576 个样本)没有前一帧可以重叠,导致前 N 个样本衰减。

如果你继续阅读,它会变得更加技术性,但这应该可以总结出这个问题。

相关内容