2016-03-28 9 views
5

Desidero combinare quattro video in una griglia. Attualmente sto usando vstack per combinare le righe e quindi hstack per combinare le due uscite, oltre ad aggiungere l'audio.Griglia video con vstack e hstack

ffmpeg -ss 0 -i 1.mp4 -ss 8 -i 3.mp4 -filter_complex vstack left.mp4 
ffmpeg -ss 0 -i 2.mp4 -ss 0 -i 4.mp4 -filter_complex vstack right.mp4 
ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack -i audio.mp4 output.mp4 

It seams possible to do this in one operation using overlay and pad. Tuttavia, la documentazione afferma che l'utilizzo vstack e hstack è più veloce. Questi due filtri possono essere combinati in un'unica operazione?

risposta

10

enter image description here

Si può fare tutto in un comando usando i filtri hstack e vstack.

ffmpeg -i top_l.mp4 -i top_r.mp4 -i bottom_l.mp4 -i bottom_r.mp4 -i audio.mp4 \ 
-filter_complex "[0:v][1:v]hstack[t];[2:v][3:v]hstack[b];[t][b]vstack[v]" \ 
-map "[v]" -map 4:a -c:a copy -shortest output.mp4 
  • L'audio sarà stream copied da audio.mp4 invece di essere inutilmente ricodificato.

Se si desidera combinare l'audio di ciascun ingresso invece di fornire un ingresso audio separato, utilizzare il filtro amerge. -ac 2 viene aggiunto a downmix in stereo; altrimenti l'output avrebbe un numero cumulativo di canali audio.

ffmpeg -i top_l.mp4 -i top_r.mp4 -i bottom_l.mp4 -i bottom_r.mp4 -filter_complex \ 
"[0:v][1:v]hstack[t];[2:v][3:v]hstack[b];[t][b]vstack[v]; \ 
[0:a][1:a][2:a][3:a]amerge=inputs=4[a]" \ 
-map "[v]" -map "[a]" -ac 2 -shortest output.mp4 
+0

Grande! Ma quel filtro sembra un po 'confuso. Non riesco a far funzionare l'ingresso audio. Vedi la domanda per il messaggio di errore. – MeinAccount

+0

Prova comando modificato. – Mulvya

+0

Funziona in modo fantastico. Grazie! – MeinAccount

Problemi correlati