Reputation: 6633
I'm trying to use xstacks. I have several video, which I want to rescale, then concatenate and then give to xstack.
This in the input I give to python's subprocess.run(), it's a list of string, so it can better deal with spaces by himself.
'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'
I got an error:
[AVFilterGraph @ 000002540f986d40] No such filter: ''
Error initializing complex filters.
Invalid argument
I'm not sure if I should use lavfi, -vf or -filter_complex
Upvotes: 0
Views: 594
Reputation: 92928
Remove the semi-colon after the last filter; they only separate a set of filters.
'[concat0][concat1][concat2][concat3]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0',
Upvotes: 1