有一个名为input.txt的文件
file '/home/1.flv'
file '/home/2.flv'
我可以使用命令将1.flv和2.flv连接到mp4文件中。
# there are two files in output.mp4
ffmpeg -f concat -i input.txt -c copy output.mp4
当我使用以下命令时
ffmpeg -i "concat:1.flv|2.flv" -c copy output.mp4
我发现1.flv
中只有一个文件output.mp4
,为什么?
答案 0 :(得分:6)
我发现
1.flv
中只有一个文件output.mp4
。为什么呢?
您的第一个命令使用concat
demuxer。如果要避免重新编码以及输入不支持文件级别连接,可以使用此方法。使用分路器要求所有文件必须具有相同的流(相同的格式,相同的时基等),但是相对较新的添加,因此较旧的ffmpeg构建将不具有此功能。
您的第二个命令使用concat
protocol,它要求您的输入支持文件级别连接(例如MPEG-1视频,MPEG-2视频和DV)。这是连接(或“加入”两种不同的方法,因为它通常由用户调用)。
另请参阅How to concatenate (join, merge) media files上的FFmpeg Wiki。我看到你也在ffmpeg-user上问了这个问题,其他人也提供了答案:[FFmpeg-user] can't concatenate the flv file。