FFMPEG连接2随机和不同的视频



我正在尝试制作一个应用程序,用户可以在其中发送视频,并且它将与其他视频自动串联。因此,视频是随机格式的,但是我使用此命令在串联之前将它们转换为:

ffmpeg -y -i {orginalVideo.itsExtention} -vcodec wmv2 4.wmv

对于串联,我有以下命令:

ffmpeg -y -i concat.wmv -i 4.wmv -filter_complex "[0:0][0:1][1:0][1:1] concat=n=2:v=1:a=1" output.wmv

但是我会收到以下错误

Input link in1:v0 parameters (size 640x480, SAR 1:1) do not match the corresponding output link in0:v0 parameters (1080x1920, SAR 1:1)
Failed to configure output pad on Parsed_concat_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0

谢谢您的回答

使用单独的步骤进行扩展不是有效的,如果使用有损耗的编码器,将引入另一代代质量的质量。

由于您已经重新编码,因此可以在同一命令中扩展:

ffmpeg -y -i concat.wmv -i 4.wmv -filter_complex "[1:v]scale=1080:1920,setsar=1[v1];[0:v][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.wmv

,或者您可以使用更复杂的命令来避免由于纵横比的差异而伸展或挤压:

ffmpeg -y -i concat.wmv -i 4.wmv -filter_complex "[1:v]scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,setsar=1[v1];[0:v][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.wmv

视频必须是相同的大小(即像素尺寸,也就是说)。输出流无法中途更改大小。因此,将一个(或两者兼具)的大小调整到所需的尺寸。

例如:

ffmpeg -y -i {orginalVideo.itsExtention} -vf scale=640:480 -vcodec wmv2 4.wmv

并参见https://trac.ffmpeg.org/wiki/scaling for for hit for。

最新更新