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


38

J'ai deux clips vidéo. Les deux sont en 640x480 et durent 10 minutes. L'un contient un fond sonore, l'autre un acteur chantant. Je souhaite créer un seul clip vidéo de 10 minutes de 1280x480 (en d'autres termes, je souhaite placer les vidéos les unes à côté des autres 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 resté vide. Ils font tous référence à la concaténation lorsque je recherche une fusion.

Des recommandations?

Réponses:


45
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 l'entrée input2.mp4 au-dessus de la zone noire avec le filtre de superposition.

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


Que fait -map [vid]-il?
0xcaff

@caffinatedmonkey [vid]est un libellé appelé linklabel , qui est un libellé de lien de sortie défini dans le graphe de filtre (la ligne ci-dessus avec filter_complex). Il mappe la sortie du graphe de filtre complexe au fichier de sortie.
Jan

Je vais avoir Unrecognized option 'crf'. Erreur lors du fractionnement de la liste d'arguments: Option non trouvée. Si je retire cralorsunrecognized option 'preset'
RS

Obtenirno such filter
user1767754

25

Pour être honnête, utiliser la réponse acceptée a entraîné beaucoup de pertes d'images.

Cependant, l’utilisation de hstackfilter_complex produisait une sortie parfaitement fluide:

ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4

22

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 2le rendra stéréo; sans cette option, le flux audio peut se transformer en 4 canaux si les deux entrées sont stéréo.

Bonjour, puis-je superposer une vidéo sur une autre?
Nisarg

@Nisarg Utilisez le filtre de superposition .
llogan

Je veux une petite vidéo supérieure transparente pour que nous puissions voir ce qui se passe en arrière-plan. Pouvez-vous m'aider avec ça?
Nisarg

Bonjour Monsieur, Pouvez-vous vous occuper de cela ?
Nisarg

1
J'ai perdu l'audio avec la réponse acceptée. Celui-ci fonctionne parfaitement.
Matt Hough

2
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 de surimpression apparaissant sur les vidéos. Vous pouvez également modifier l'image d'arrière-plan en [BgPaddingImage.jpg]définissant le chemin de l'image bg.

Montrer cette vidéo ci-dessous sa commande create from Above

entrez la description de l'image ici


1
Quelle langue est-ce? Comment le dirigez-vous?
Muru

@muru Découvrez maintenant sa commande FFMPEG? :)
Sanjay Hadiya
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.