首页 > 解决方案 > 带有缩放、concat 和 xstack 的 ffmpeg 过滤器语法的无效命令

问题描述

我正在尝试使用 xstacks。我有几个视频,我想重新缩放,然后连接然后给 xstack。

这在我给python的subprocess.run()的输入中,它是一个字符串列表,所以它可以更好地自己处理空格。

'ffmpeg.exe',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.webm',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.webm',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-i',
'file.mp4',
'-filter_complex',
'[0:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled0];',
'[1:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled1];',
'[2:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled2];',
'[3:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled3];',
'[4:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled4];',
'[5:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled5];',
'[6:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled6];',
'[7:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled7];',
'[8:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled8];',
'[9:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled9];',
'[10:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled10];',
'[11:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled11];',
'[12:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled12];',
'[13:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled13];',
'[14:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled14];',
'[15:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled15];',
'[16:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled16];',
'[17:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled17];',
'[18:v]scale=320:180:force_original_aspect_ratio=decrease,pad=320:180:(ow-iw)/2:(oh-ih)/2,setsar=1[rescaled18];',
'[rescaled0][rescaled1][rescaled2][rescaled3][rescaled4]concat=n=0:v=1:a=1[concat0];',
'[rescaled5][rescaled6][rescaled7][rescaled8][rescaled9]concat=n=1:v=1:a=1[concat1];',
'[rescaled10][rescaled11][rescaled12][rescaled13][rescaled14]concat=n=2:v=1:a=1[concat2];',
'[rescaled15][rescaled16][rescaled17][rescaled18]concat=n=3:v=1:a=1[concat3];',
'[concat0][concat1][concat2][concat3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0;',
'file.mp4'

我收到一个错误:

[AVFilterGraph @ 000002540f986d40] No such filter: ''
Error initializing complex filters.
Invalid argument

我不确定是否应该使用 lavfi、-vf 或 -filter_complex

标签: pythoncommand-lineffmpegvideo-encoding

解决方案


去掉最后一个过滤器后的分号;他们只分离一组过滤器。

'[concat0][concat1][concat2][concat3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0',   

推荐阅读