You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FFmpeg库按指定时间线合并多段音频(含静音间隔)

用FFmpeg实现自定义时间线的音频合并

场景1:指定每段音频的绝对开始时间

如果需要让每段音频在固定的绝对时间点启动播放(比如audio1在0秒、audio2在12秒、audio3在25秒),可以通过filter_complex结合延迟滤镜和静音基底来实现:

ffmpeg -i audio1.mp3 -i audio2.mp3 -i audio3.mp3 \
-filter_complex "
# 生成足够长的静音作为基底,时长要覆盖所有音频的结束时间
anullsrc=channel_layout=stereo:sample_rate=44100:d=30 [base];
# 给每个音频设置延迟(毫秒),立体声需写两个值(左右声道)
[0:a] adelay=0|0 [a1];
[1:a] adelay=12000|12000 [a2];
[2:a] adelay=25000|25000 [a3];
# 依次将延迟后的音频混合到静音基底上
[base][a1] amix=inputs=2:duration=longest [tmp1];
[tmp1][a2] amix=inputs=2:duration=longest [tmp2];
[tmp2][a3] amix=inputs=2:duration=longest [out]
" -map "[out]" output.mp3

参数说明

  • anullsrc:生成静音轨道,d=30需设置为大于「最晚结束的音频的开始时间+自身时长」的值;channel_layout和sample_rate要和你的音频保持一致。
  • adelay=X|X:X为延迟毫秒数,单声道只需写一个值(如adelay=12000)。
  • amix:将多个音频轨道混合,duration=longest确保输出时长覆盖所有音频的播放周期。

场景2:前一段结束后填充指定静音再播放下一段

如果需求是“播放完一段音频后,等待N秒静音再启动下一段”(比如audio1播放完→2秒静音→audio2播放→3秒静音→audio3播放),可以用concat滤镜实现:

方法1:生成静音文件后拼接

  1. 先生成对应时长的静音文件:
# 生成2秒立体声静音(采样率44100)
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100:d=2 silence_2s.mp3
# 生成3秒立体声静音
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100:d=3 silence_3s.mp3
  1. 创建一个concat.txt,按顺序列出要拼接的文件:
file 'audio1.mp3'
file 'silence_2s.mp3'
file 'audio2.mp3'
file 'silence_3s.mp3'
file 'audio3.mp3'
  1. 执行拼接命令:
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp3

方法2:直接在滤镜链内完成(无需单独静音文件)

ffmpeg -i audio1.mp3 -i audio2.mp3 -i audio3.mp3 \
-filter_complex "
# 生成需要的静音片段
anullsrc=channel_layout=stereo:sample_rate=44100:d=2 [s2];
anullsrc=channel_layout=stereo:sample_rate=44100:d=3 [s3];
# 按顺序拼接所有音频和静音片段
[0:a][s2][1:a][s3][2:a] concat=n=5:v=0:a=1 [out]
" -map "[out]" output.mp3

重要注意事项

  • 所有参与拼接/混合的音频必须保持相同的采样率、声道数、编码格式,否则会出现异常。如果参数不一致,先统一:
    # 将音频转为立体声44100采样率
    ffmpeg -i input.mp3 -ac 2 -ar 44100 output_norm.mp3
    
  • 如果音频音量差异大,可添加volume滤镜调整,比如[0:a] volume=1.2 [a1]。

内容的提问来源于stack exchange,提问作者itsMU1X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:01:21