FFMPEG 连接时出现空白小音频点

FFMPEG 连接时出现空白小音频点

我正在尝试使用以下命令连接一些 mp3 音频文件:

ffmpeg -y -i concat:"1.mp3|2.mp3|3.mp3" -c copy output.mp3

FFMPEG 在连接的文件之间留下了一些微小的空白音频点,使用 Audacity 查看 output.mp3 我发现: 在此处输入图片描述

FFMPEG 上是否有某些功能可以避免这些空的音频点?

答案1

LAME 技术常见问题解答有一些相关信息。以下是部分摘录:

为什么 LAME 在每首歌曲的开头都会添加静音?

这是由于以下几个因素造成的:

文件开始时的解码器延迟:

我测试过的所有解码器都会引入 528 个样本的延迟。也就是说,解码 mp3 文件后,输出将在前面附加 528 个 0 样本。这是因为 ISO 使用的标准 MDCT/滤波器组例程具有 528 个样本延迟。

此外,由于 MDCT 帧的重叠特性,第一个颗粒的前半部分(1 个颗粒=576 个样本)没有前一帧可以重叠,导致前 N 个样本衰减。

文件开始时的编码器延迟:

基于 ISO 的编码器(BladeEnc、8hz-mp3 等)使用与解码中使用的 MDCT/滤波器组例程类似的例程,因此也引入了它们自己的 528 个样本延迟。编码和解码的 .wav 文件将具有 1056 个样本延迟(1056 个样本将附加到开头)。

从 LAME 3.55 开始,我们有了一个由 Takehiro Tominaga 编写的新 MDCT/滤波器组例程,具有 48 个样本延迟。

请参阅LAME 技术常见问题解答以获得更多相关答案和更深入的信息。

有些选项不是很好,但可以起到作用:

  • 您必须使用 MP3 吗?您可以将文件重新输出为其他格式,例如 PCM(“wav”)吗?请注意,只需将现有 MP3 文件重新编码为其他格式即可保留延迟。

  • 您可以使用afade音频过滤器为每个部分添加淡出/淡入,或atrim音频过滤器可能使间隙不那么突然。但是,过滤需要重新编码。

相关内容