使用ffmpeg合并两个文件时获取异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ffmpeg合并两个文件时获取异常相关的知识,希望对你有一定的参考价值。

我试图使用ffmpeg命令合并两个mp4文件。我的输入文件不是相同的编码,因此它们不与普通命令合并。我使用下面的命令,但得到了例外。命令: -

ffmpeg -i File_1.mp4 -i File_2.mp4 -filter_complex "[0:v]setsar=1[0v];[1:v]scale=720:576:force_original_aspect_ratio=decrease,setsar=1,pad=720:576:(ow-iw)/2:(oh-ih)/2[1v];[0v][0:a][1v][1:a]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v libx264 -crf 23 ffmpeg1.mp4

我有例外: -

[Parsed_concat_4 @ 00000000067ea380] Input link in1:v0 parameters (size 720x576, SAR 1:1) do not match the corresponding
output link in0:v0 parameters (320x240, SAR 1:1)
[Parsed_concat_4 @ 00000000067ea380] Failed to configure output pad on 
Parsed_concat_4
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0
Conversion failed!

请告诉我是什么解决方案或任何命令可以帮助我在Windows中使用cmd合并任意两个mp4文件。

答案

concat过滤器要求其所有视频输入具有相同的分辨率和样本宽高比。帧速率和像素格式可能不同,但输出可能不是您想要的。

因此,在此命令中,更改第一个视频输入的过滤以匹配第二个视频输入。

ffmpeg -i File_1.mp4 -i File_2.mp4 -filter_complex "[0:v]scale=720:576:force_original_aspect_ratio=decrease,setsar=1,pad=720:576:(ow-iw)/2:(oh-ih)/2[0v];[1:v]scale=720:576:force_original_aspect_ratio=decrease,setsar=1,pad=720:576:(ow-iw)/2:(oh-ih)/2[1v];[0v][0:a][1v][1:a]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v libx264 -crf 23 ffmpeg1.mp4

以上是关于使用ffmpeg合并两个文件时获取异常的主要内容,如果未能解决你的问题,请参考以下文章

如何在ffmpeg中合并音频和两个视频文件?

如何使用 ffmpeg 合并两个 avi 文件?

在 C# 中使用 FFMPEG 合并音频和视频文件

FFmpeg实现多个视频文件的合并(时间和空间)

一次用ffmpeg实现图片+音频合成视频的开发

FFmpeg用concat合并视频时,文件名中有单引号的转义方法