Способ размещения 4 потоков изображений:
ffmpeg -y -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:0]pad=iw*2:ih*2[a];[a][1:0]overlay=w[x];[x][2:0]overlay=0:h[y];[y][3:0]overlay=w:h" -strict -2 output.mp4
При этом не используется какой-либо другой фильтр, он использует пэд для уменьшения размера, а затем накладываемый фильтр, чтобы наложить его на четыре позиции пикселя. Но в цепочке фильтров он должен делать это несколько раз, комбинируя эффекты первых двух входов, затем накладывая их на третий и затем на четвертый.
Я использовал контейнер mp4
но он может работать для других контейнеров. Вам не понадобится -strict -2
в большинстве случаев - здесь он используется, потому что мой ffmpeg по умолчанию использует aac
audio encoder для mp4.
Если нет звука, что весьма вероятно в вашем случае, вам снова не понадобится опция -strict -2
. Если у вас есть аудио в качестве входных данных, но вы не хотите использовать его в выходных данных, добавьте параметр -an
в команду.
В качестве альтернативы, и это хороший вариант, используйте параметр map
:
ffmpeg -y -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:0]pad=iw*2:ih*2[a];[a][1:0]overlay=w[x];[x][2:0]overlay=0:h[y];[y][3:0]overlay=w:h[v]" -map '[v]' output.mp4