我有两个需要合并的文件。
我可以使用ffmpeg concat协议
来做到这一点创建文本文件并在其中设置文件。
像这样:
files_to_be_merged.txt
file '/home/user/Videos/video1.mov'
file '/home/user/Videos/video2.mov'
他们使用以下命令。
ffmpeg -f concat -i mylist.txt -c copy output.mov
但我想在不创建文本文件的情况下这样做。
我试过这个命令:
ffmpeg -i 'concat:video1.mov|video2.mov' -codec copy output.mov
但结果文件只是第一个视频,而不是两者一起。
我在执行此命令时收到此警告;
[mov @ 0x35933c0]流0的编解码器不使用全局头,但是 容器格式需要全局标题
[mov @ 0x35933c0]流1的编解码器不使用全局头 容器格式需要全局标题
答案 0 :(得分:1)
这两种方法不同。
使用文本文件(-f concat
)的是 concat demuxer ,它更灵活。如果您使用相同的编解码器但接受不同的容器,并且更重要的是使用任何容器格式,则它可以工作。
第二个(-i 'concat:file1|file2'
)是 concat协议。它仅适用于可以直接连接的格式,例如mpg
或mpegts
。
mov
格式无法直接连接,因此必须通过解复用程序。
有关详细信息,请参阅wiki。
如果您不想使用文本文件,只需扩展existing demuxer即可添加功能。毕竟,它是一个开源项目。