web-dev-qa-db-fra.com

Fusionnez deux clips vidéo en un seul, en les plaçant l'un à côté de l'autre

J'ai deux clips vidéo. Les deux sont 640x480 et durent 10 minutes. L'un contient un fond sonore, l'autre un acteur chantant. Je voudrais créer un seul clip vidéo de 10 minutes mesurant 1280x480 (en d'autres termes, je veux placer les vidéos côte à côte et les lire simultanément, en mélangeant l'audio des deux clips). J'ai essayé de comprendre comment faire cela avec ffmpeg/avidemux, mais jusqu'à présent, je suis venu vide. Ils font tous référence à la concaténation lorsque je recherche une fusion.

Des recommandations?

43
User402841
ffmpeg \
  -i input1.mp4 \
  -i input2.mp4 \
  -filter_complex '[0:v]pad=iw*2:ih[int];[int][1:v]overlay=W/2:0[vid]' \
  -map [vid] \
  -c:v libx264 \
  -crf 23 \
  -preset veryfast \
  output.mp4

Cela double essentiellement la taille de input1.mp4 en remplissant le côté droit avec du noir de la même taille que la vidéo d'origine, puis place input2.mp4 au-dessus de cette zone noire avec le filtre de superposition.

Source: https://superuser.com/questions/153160/join-videos-split-screen

48
Jan

Pour être honnête, l'utilisation de réponse acceptée a entraîné beaucoup de trames perdues pour moi.

Cependant, l'utilisation du hstack filter_complex a produit une sortie parfaitement fluide:

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
31
Albus Dumbledore

Cela peut être fait avec seulement deux filtres et l'audio des deux entrées sera également inclus.

ffmpeg -i left.mp4 -i right.mp4 -filter_complex \
"[0:v][1:v]hstack=inputs=2[v]; \
 [0:a][1:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 output.mp4
  • hstack placera chaque vidéo côte à côte.
  • amerge combinera l'audio des deux entrées en un seul flux audio multicanal et -ac 2 le rendra stéréo; sans cette option, le flux audio peut devenir 4 canaux si les deux entrées sont stéréo.
24
llogan
ffmpeg -y -ss 0 -t 5 -i inputVideo1.mp4 -ss 0 -t 5 -i inputVideo2.mp4 -i BgPaddingImage.jpg -filter_complex nullsrc=size=720*720[base];[base][2:v]overlay=1,format=yuv420p[base1];[0:v]setpts=PTS-STARTPTS,scale=345*700[upperleft];[1:v]setpts=PTS-STARTPTS,scale=345*700[upperright];[base1][upperleft]overlay=shortest=1:x=10:y=10[tmp1];[tmp1][upperright]overlay=shortest=1:x=366:y=10 -c:a copy -strict experimental -ss 0 -t 5 -preset ultrafast -an output.mp4

Ajoutez deux vidéos côte à côte et ajoutez également une image OverLay qui apparaît sur le remplissage des vidéos avec. Vous pouvez modifier l'image d'arrière-plan [BgPaddingImage.jpg] définissez ici le chemin de votre image bg.

Afficher cette vidéo ci-dessous sa création à partir de la commande

enter image description here

2
Sanjay Hadiya