ffmpeg在一个视频文件中的2个音频文件

问题描述:

可以说我有一个视频文件(video.mp4)和2个音频文件(audio1.mp3和audio2.mp3)。视频长度为60秒,每个音频文件都有30秒的长度。ffmpeg在一个视频文件中的2个音频文件

我试图实现的是: 视频的前20秒是原始音频流,接着是20秒的第一个音频文件(偏移5秒,长度为20s),同样与第二个音频文件。

ffmpeg -i video.mp4 -ss 5 -t 20 -i audio1.mp3 -ss 5 -t 20 -i audio2.mp3 -vcodec copy -acodec copy -copyinkf -map 0:v:0 -map 1:a:0 -map 2:a:0 -shortest final.mp4 

上面的命令取第一个输入的视频流和第三个输入的音频流。第二个输入的音频流似乎被覆盖。如何将所有音频流放在一起,以及如何在音频流开始时定义偏移量?

我假设你想在一个流中组合音频节目。即使您将时间戳偏移应用于其他音频,大多数播放器也不会在播放中期切换音频流。

所以,

ffmpeg -i video.mp4 -ss 5 -t 20 -i audio1.mp3 -ss 5 -t 20 -i audio2.mp3 
    -filter_complex 
     "[0]atrim=0:20[a];[1]adelay=20000|20000[b];[2]adelay=40000|40000[c];[a][b][c]amix=3" 
    -vcodec copy -copyinkf -shortest final.mp4 
+0

谢谢。这就是我所寻找的 –