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.
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.
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
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