A maneira de colocar 4 fluxos de imagem seria:
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
Isso não usa nenhum outro filtro, ele usa o bloco para diminuir o tamanho e, em seguida, o filtro de sobreposição para colocá-lo em quatro posições de pixel. Mas na cadeia de filtros, isso tem que ser feito várias vezes, combinando os efeitos das duas primeiras entradas, depois sobrepondo na terceira e depois na quarta.
Eu usei o contêiner mp4
, mas ele pode funcionar para outros contêineres. Você não precisará de -strict -2
na maioria das circunstâncias - aqui ele é usado porque meu ffmpeg é padronizado como aac
codificador de áudio para mp4.
Se houver sem áudio , o que é muito provável no seu caso, novamente você não precisará da opção -strict -2
. Se você tiver áudio como entrada, mas não quiser usá-lo na saída, adicione o parâmetro -an
no comando.
Como alternativa, e esta é uma boa opção , use a opção 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