连接时FFMPEG空白微小音频点

Adr*_*tos 1 audio ffmpeg concatenation

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

ffmpeg -y -i concat:"1.mp3|2.mp3|3.mp3" -c copy output.mp3
Run Code Online (Sandbox Code Playgroud)

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

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

llo*_*gan 6

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 开始,我们有一个新的 MDCT/filterbank 例程,由 Takehiro Tominaga 编写,具有 48 个采样延迟。

有关其他相关答案和更深入的信息,请参阅LAME 技术常见问题解答。

一些不太好但可能会起作用的选项:

  • 你必须使用MP3吗?您能否将文件重新输出为不同的格式,例如 PCM(“wav”)?请注意,只需将现有 MP3 文件重新编码为另一种格式即可保留延迟。

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