所以我尝试使用以下命令将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个或更多文件,但结果是一样的。可能的原因是什么?请帮忙
麦克
答案 0 :(得分:8)
您无法将mp4
文件直接与concat protocol
连接,因为格式不支持它。这适用于mpg
或mpeg-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'