如何在最终输出的MP4文件中串联或合并2个或更多MP4文件?
我曾尝试在DOS窗口中使用COPY命令(我已在某处阅读过此命令),但它不能很好地运行。
如何在最终输出的MP4文件中串联或合并2个或更多MP4文件?
我曾尝试在DOS窗口中使用COPY命令(我已在某处阅读过此命令),但它不能很好地运行。
Answers:
MP4Box可以做到这一点,尽管您可能希望使用它的GUI,例如YAMB或My MP4Box GUI。(注意:这不是我个人的程序,这只是名称。)可从该站点获得Windows的MP4Box二进制文件。
例:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
我建议使用usind ffmpeg,它可用于Mac OS X,Linux和Windows。
这是有关如何连接两部电影的很好的例子:http ://www.ffmpeg.org/faq.html#SEC27
在最后一步,您只需要确保为生成的文件制作一个MP4容器。
您可以尝试使用ffmpeg进行此操作:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
这不会重新编码任何内容,而是将它们放置在新的传输流容器中,这使它们更易于串联,然后将它们串联回到MP4中。如果output.mp4已经存在,则该命令将失败。上面的版本使用命名管道,因为您使用的系统不支持那些必须使用中间文件的管道:
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
这是命令:
ffmpeg -i concat:"video1.ts|video2.ts"