ffmpeg \ -i "v1.mp4" \ -i "v2.mp4" \ -filter_complex " \ nullsrc=size=1900x950 [base]; \ [0:v] setpts=PTS-STARTPTS, scale=950x950 [left]; \ [1:v] setpts=PTS-STARTPTS, scale=950x950 [right]; \ [base][left] overlay=shortest=1 [tmp1]; \ [tmp1][right] overlay=shortest=1:x=950 \ " \ -c:v libx264 output2.mkv ffmpeg \ -i "v1.mp4" \ -i "v2.mp4" \ -i "v3.mp4" \ -i "v4.mp4" \ -filter_complex " \ nullsrc=size=1900x1900 [base]; \ [0:v] setpts=PTS-STARTPTS, scale=950x950 [upperleft]; \ [1:v] setpts=PTS-STARTPTS, scale=950x950 [upperright]; \ [2:v] setpts=PTS-STARTPTS, scale=950x950 [lowerleft]; \ [3:v] setpts=PTS-STARTPTS, scale=950x950 [lowerright]; \ [base][upperleft] overlay=shortest=1 [tmp1]; \ [tmp1][upperright] overlay=shortest=1:x=950 [tmp2]; \ [tmp2][lowerleft] overlay=shortest=1:y=950 [tmp3]; \ [tmp3][lowerright] overlay=shortest=1:x=950:y=950 \ " \ -c:v libx264 output4.mkv ffmpeg \ -i "video.mp4" \ -i "drones/0/video.mp4" \ -i "drones/1/video.mp4" \ -i "drones/2/video.mp4" \ -i "drones/3/video.mp4" \ -i "drones/4/video.mp4" \ -filter_complex " \ nullsrc=size=2850x1900 [base]; \ [0:v] setpts=PTS-STARTPTS, scale=950x950 [upperleft]; \ [1:v] setpts=PTS-STARTPTS, scale=950x950 [uppermiddle]; \ [2:v] setpts=PTS-STARTPTS, scale=950x950 [upperleft]; \ [3:v] setpts=PTS-STARTPTS, scale=950x950 [lowerleft]; \ [4:v] setpts=PTS-STARTPTS, scale=950x950 [lowermiddle]; \ [5:v] setpts=PTS-STARTPTS, scale=950x950 [lowerright]; \ [base][upperleft] overlay=shortest=1 [tmp1]; \ [tmp1][uppermiddle] overlay=shortest=1:x=950 [tmp2]; \ [tmp2][upperleft] overlay=shortest=1:x=1900 [tmp3]; \ [tmp3][lowerleft] overlay=shortest=1:y=950 [tmp4]; \ [tmp4][lowermiddle] overlay=shortest=1:y=950:x=950 [tmp5]; \ [tmp5][lowerright] overlay=shortest=1:y=950:x=1900 \ " \ -c:v libx264 output6.mkv
This post is also available in: Greek
in your 3rd iteration you have [upperleft] twice instead of [upperright]
thank you for posting this though, it’s helpful to see it written out this way
you save my day,thanks