Способом розміщення 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
Для цього не використовується жоден інший фільтр, він використовує килимок для зменшення розміру, а потім фільтр накладання для розміщення на чотирьох піксельних положеннях. Але у ланцюзі фільтру це потрібно зробити кілька разів, поєднуючи ефекти перших 2 входів, потім накладання на третій, а потім на четвертий.
Я використовував mp4
контейнер, але він може працювати для інших контейнерів. Вам не знадобиться -strict -2
за більшості обставин - тут він використовується тому, що мій ffmpeg за замовчуванням aac
аудіо кодер для 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