FFMPEG Concat协议不合并视频文件

时间:2015-09-16 09:37:26

标签: ffmpeg

所以我尝试使用以下命令将2个视频文件与相同的编解码器合并:

ffmpeg -i "concat:/home/mike/downloads/a1.mp4|/home/mike/downloads/a2.mp4" -c copy "/home/mike/downloads/output.mp4"

结果:output.mp4仅包含来自a1.mp4的视频。我也尝试了2个或更多文件,但结果是一样的。可能的原因是什么?请帮忙

麦克

1 个答案:

答案 0 :(得分:8)

您无法将mp4文件直接与concat protocol连接,因为格式不支持它。这适用于mpgmpeg-ts及类似内容。

如果您通过以下格式之一,则可以执行此操作:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

另一种方法是使用更灵活的concat demuxer(输入文件仍需要相同的编解码器,但它可以使用不同的容器):

ffmpeg -f concat -i mylist.txt -c copy output

mylist.txt类似于:

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Documentation