最近有一个需求,需要将多个音频文件延时插入到一段视频中,经过学习,得到以下命令:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[0:a][s1][s2][s3]amix=4[a] -map 0:v -map [a] -c:v copy result.mp4
如果不需要视频原声,则修改命令为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex [1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[s1][s2][s3]amix=3[a] -map 0:v -map [a] -c:v copy result.mp4
以上命令为Android使用,如果需要在windows使用,则需要修改为:
-y -i videoSource.mp4 -i test1.mp3 -i test2.mp3 -i test3.mp3 -filter_complex "[1]adelay=5000|5000=[s1];[2]adelay=15000|15000=[s2];[3]adelay=25000|25000=[s3];[s1][s2][s3]amix=3[a]" -map 0:v -map "[a]" -c:v copy result.mp4
其中
[1]adelay=5000|5000=[s1]的意思为:取第二个输入文件的音轨(下标从0开始)并延时5000毫秒
[0:a]的意思为:第一个输入文件的音频资源