使用 FFMPEG 将一个 MP4 文件附加到另一个 MP4 文件

使用 FFMPEG 将一个 MP4 文件附加到另一个 MP4 文件

我想连接两个 MP4 文件而无需重新编码。两个文件具有相同的特征。

根据一些论坛的建议,我使用以下命令:

"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -hide_banner -loglevel info -f concat -safe 0 -i "R:\VTS_01_1.mp4" -c copy "R:\JointVideoFile.mp4"

这里我稍微修改了一下。论坛建议创建一个临时文件,其中包含要连接的文件的名称列表。我只有两个文件,不想创建临时文件,所以我通过直接指定文件名稍微修改了这个命令。

所以我希望 FFMPEG 采取一个现有的JointVideoFile.mp4并将一个现有的附加VTS_01_1.mp4到其末尾。

执行上述命令会出现错误:

[concat @ 00000000004b08c0] 第 4 行:未知关键字“ftypisom”
R:\VTS_01_1.mp4:处理输入时发现无效数据

ftypisom是我的 MP4 文件中的第一个文本标签。

FFMPEG 在使用时需要一个文本列表文件concat,并将 MP4 文件中的字符解释为文本。

在没有列表的情况下如何使其工作?

答案1

如果两个视频确实具有相同的特征(例如帧宽度、高度、速率),则类似这样的方法应该有效:

ffmpeg -safe 0 -f concat list.txt -c:v copy -c:a copy output.mp4

其中 list.txt 应如下所示:

file 'video_1.mp4"
file 'video_2.mp4"

使用一行代码:

echo file 'JointVideoFile.mp4'>>List.txt&echo file 'VTS_01_1.mp4'>>List.txt& ffmpeg -safe 0 -f concat -i List.txt -c copy output.mp4& del /q List.txt

相关内容