web-dev-qa-db-fra.com

Joindre des vidéos côte à côte

De quelle manière puis-je joindre ces quatre vidéos côte à côte (avec une marge de 10 pixels entre le côté gauche et le côté droit. Aucune marge entre le haut et le bas)?

  • top_left.mp4

  • top_right.mp4

  • bottom_left.mp4

  • bottom_right.mp4

Kdenlive est tellement buggy et m'a rendu fou. Toute méthode en ligne de commande est la bienvenue.

1
ar2015

Vidéo seulement

10px frontière entre gauche et droite

enter image description here

Il existe plusieurs méthodes pour ce faire, mais utiliser hstack , vstack , et pad est probablement la plus simple:

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
  • Les entrées doivent avoir les mêmes largeur, hauteur et "format de pixel". S'ils ne le sont pas, utilisez les filtres scale et/ou format pour préparer les flux pour les * filtres de pile.

  • Utilisez *stack=shortest=1 si vous voulez que la sortie du filtre se termine lorsque l'entrée la plus courte se termine.

10px frontière entre gauche et droite, 3px frontière entre haut et bas

enter image description here

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

Avec audio combiné

Le filtre amerge combinera tous les canaux d’entrée, puis -ac 2 les remixera en stéréo:

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
  • En utilisant amerge, l’audio combiné sera aussi long que l’entrée la plus courte. Si cela pose un problème, utilisez amix .
3
llogan