Apenas vídeo
Borda de 10px entre esquerda e amp; certo
Existem vários métodos para fazer isso, mas usando hstack , vstack e pad é provavelmente o mais fácil:
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
-
As entradas devem ter a mesma largura, altura e "formato de pixel". Se eles não usarem a escala e / ou filtros para preparar os fluxos para os filtros * stack.
-
Use
*stack=shortest=1
se quiser que a saída do filtro termine quando a entrada mais curta terminar.
Borda de 10px entre esquerda e amp; direita, borda 3px entre top e amp; fundo
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v]pad=iw:ih+3[tl]; \
[tl][1:v]vstack,pad=iw+10:ih[l]; \
[2:v]pad=iw:ih+3[tr]; \
[tr][3:v]vstack[r]; \
[l][r]hstack" \
output.mp4
Com áudio combinado
O filtro amerge combinará todos os canais de entrada, então -ac 2
os converterá em estéreo:
ffmpeg -i top_left.mp4 -i bottom_left.mp4 -i top_right.mp4 -i bottom_right.mp4 -filter_complex \
"[0:v][1:v]vstack,pad=iw+10:ih[l]; \
[2:v][3:v]vstack[r]; \
[l][r]hstack[v]; \
[0:a][1:a][2:a][3:a]amerge=inputs=4[a]"
-map "[v]" -map "[a]" -ac 2 output.mp4
- Usando o amerge, o áudio combinado será apenas o menor tempo possível. Se isso for um problema, use amix .