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

FFmpeg音频定时播放异常求助:指定时间播放却全部起始播放

问题分析与解决方案

原命令的核心问题有两个:

  1. -itsoffset 仅偏移输入文件的起始时间戳,但 amix 滤镜默认会忽略所有输入的时间偏移,强制将所有音频从时间0点开始混合
  2. amix=inputs=5 参数设置错误,实际音频输入数量远大于5,导致大部分音频未被纳入混合处理

修正后的命令

使用 adelay 滤镜为每个音频添加指定延迟(单位:毫秒,1秒=1000毫秒),amix 会尊重延迟后的时间戳,实现音频按设定时间播放:

-y -i ./temp/background.mp4 \
-i ./temp/tts/0.mp3 \
-i ./temp/tts/1.mp3 \
-i ./temp/tts/10.mp3 \
-i ./temp/tts/11.mp3 \
-i ./temp/tts/12.mp3 \
-i ./temp/tts/13.mp3 \
-i ./temp/tts/14.mp3 \
-i ./temp/tts/2.mp3 \
-i ./temp/tts/3.mp3 \
-i ./temp/tts/4.mp3 \
-i ./temp/tts/5.mp3 \
-i ./temp/tts/6.mp3 \
-i ./temp/tts/7.mp3 \
-i ./temp/tts/8.mp3 \
-i ./temp/tts/9.mp3 \
-filter_complex "
[1:a]adelay=1000|1000[a1];
[2:a]adelay=3000|3000[a2];
[3:a]adelay=4000|4000[a3];
[4:a]adelay=7000|7000[a4];
[5:a]adelay=8000|8000[a5];
[6:a]adelay=10000|10000[a6];
[7:a]adelay=12000|12000[a7];
[8:a]adelay=14000|14000[a8];
[9:a]adelay=15000|15000[a9];
[10:a]adelay=18000|18000[a10];
[11:a]adelay=20000|20000[a11];
[12:a]adelay=22000|22000[a12];
[13:a]adelay=23000|23000[a13];
[14:a]adelay=25000|25000[a14];
[15:a]adelay=27000|27000[a15];
[0:a][a1][a2][a3][a4][a5][a6][a7][a8][a9][a10][a11][a12][a13][a14][a15]amix=inputs=16:duration=longest[a]
" \
-map 0:v -map [a] -c:v copy -c:a aac ./temp/withoutsubs.mp4

关键说明

  • adelay=X|X:第一个X是左声道延迟毫秒数,第二个是右声道;如果是单声道音频,可简化为adelay=X
  • amix=inputs=16:对应1个背景视频音频 + 15个MP3音频的总输入数量,需与实际音频输入数一致
  • duration=longest:确保混合后的音频长度匹配视频或最长音频的长度,避免提前截断
  • 若无需保留背景视频的原音频,可删除[0:a]输入,并将amix=inputs改为15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:15:32