要合并两个 MP4 文件,需要传递 .ts 文件。
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.mp4
但是,我在第一个/第二个命令上遇到此错误:
比特流过滤器“h264_mp4toannexb”不支持编解码器“mpeg4”(13)。支持的编解码器为:h264 (28) 初始化比特流过滤器时出错:h264_mp4toannexb
你有主意吗?
答案1
您尝试使用concat
在文件级别连接的协议来完成此操作。
如果尝试通过解复用器连接是否会获得更好的结果?
您可以在文本文件 (mylist.txt) 中列出输入文件,然后:
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
-safe 0
如果路径是相对的,则不需要。
建议使用此方法和您尝试过的方法在 ffmpeg.org 上以及各种其他连接方法。肯定有一个适合您吗?如果一切都失败了,你可以先将它们转码为 h264,显然它们还没有进入。
答案2
这是你的问题
流#0:0[0x1]:视频:mpeg4(简单配置文件)(mp4v / 0x7634706D),
正如@stoney所说,它需要是
流 #0:0(und):视频:h264(高)(avc1 / 0x31637661)
您可以通过首先重新编码为 h264 来验证这一点。
ffmpeg -i input1.mp4 output1.mp4
ffmpeg -i output1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts