我无法将两个avi视频合并在一起。 谷歌充满了以下例子:
cat file1.avi file2.avi file3.avi > video_draft.avi
after appending the data together using cat above, you need to re-index the draft movie like this:
mencoder video_draft.avi -o video_final.avi -forceidx -ovc copy -oac copy
Now you're video_final.avi file will be right to go.
但它对我不起作用,第一个视频被转换,就是这样。
答案 0 :(得分:54)
您应该查看ffmpeg 1.1中添加的concat demux and concat protocol。假设编解码器是相同的,您可以创建一个文件(例如mylist.txt
):
file '/path/here/file1.avi'
file '/path/here/file2.avi'
file '/path/here/file3.avi'
然后将该文件传递给ffmpeg
ffmpeg -f concat -i mylist.txt -c copy video_draft.avi
您可以使用此命令制作列表:
ls *.avi | while read each; do echo "file '$each'" >> mylist.txt; done
链接页面有更多高级示例,用于处理不同编解码器/格式等问题。
答案 1 :(得分:2)
您可以使用以下单个命令行:
ffmpeg -i "concat:input1.avi|input2.avi|input3.avi" -c copy output.avi
答案 2 :(得分:0)
您需要为ffmpeg的最新版本添加-safe 0,并且必须在文件列表之前。
ffmpeg -f concat -safe 0 -I mylist.txt ...