我正在尝试使用以下命令连接一些 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
音频过滤器可能使间隙不那么突然。但是,过滤需要重新编码。