FFMPEG - 合并两个 MP4 文件

FFMPEG - 合并两个 MP4 文件

要合并两个 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

相关内容