FFmpeg:连接多个视频,一些有音频,一些没有

Tom*_*iyi 4 audio video ffmpeg

我正在尝试连接5个视频,其中第一个和最后一个没有音轨.我尝试了以下命令:

    ffmpeg -i 1-copyright/copyright2018640x480.mp4 -i 2-openingtitle/EOTIntroFINAL640x480.mp4 -i 3-videos/yelling.mp4 -i 4-endtitle/EOTOutroFINAL640x480.mp4 -i 5-learnabout/Niambi640.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] [3:v:0] [3:a:0] [4:v:0] [4:a:0] concat=n=5:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output_video.mp4
Run Code Online (Sandbox Code Playgroud)

我得到输出错误:

    Stream specifier ':a:0' in filtergraph description [0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] [3:v:0] [3:a:0] [4:v:0] [4:a:0] concat=n=5:v=1:a=1 [v] [a] matches no streams.
Run Code Online (Sandbox Code Playgroud)

我知道第一个和最后一个视频没有音频,但我不知道如何编写语句来忽略这些视频中的音轨.我试过删除[0:a:0],但这只会引发另一个错误:

   Stream specifier ':v:0' in filtergraph description [0:v:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] [3:v:0] [3:a:0] [4:v:0] [4:a:0] concat=n=5:v=1:a=1 [v] [a] matches no streams.
Run Code Online (Sandbox Code Playgroud)

它没有意义,我有点失落.

Gya*_*yan 6

如果您同时连接音频,则所有视频输入必须与音频配对.如果文件本身没有任何音频,则可以使用虚拟静音轨道.

使用

ffmpeg -i 1-Video.mp4 -i 2-openingtitle/EOTIntroFINAL640x480.mp4
       -i 3-videos/yelling.mp4 -i 4-endtitle/EOTOutroFINAL640x480.mp4
       -i 5-learnabout/Niambi640.mp4 -f lavfi -t 0.1 -i anullsrc -filter_complex
       "[0:v:0][5:a][1:v:0][1:a:0][2:v:0][2:a:0][3:v:0][3:a:0][4:v:0][5:a] concat=n=5:v=1:a=1 [v][a]"
       -map "[v]" -map "[a]" output_video.mp4
Run Code Online (Sandbox Code Playgroud)