Vidéo uniquement
Vous pouvez utiliser un seul filtre graphique pour tous les filtrages.
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]" \
-map "[v]" -movflags +faststart output.mp4
-
En movie
le filtre de source multimédia n'est pas nécessaire.
-
setpts
réinitialisera l'horodatage, de sorte qu'il fonctionne mieux avec overlay
.
-
Notez que les shortest=1
dans l'un des filtres de superposition. Dans le cas contraire, l'entrée de l'image tournera en boucle à l'infini. Vous pouvez également utiliser la fonction trim
sur l'image d'entrée.
-
L'action "fin de dossier" de overlay
peut être modifiée à l'aide de eof_action
.
-
En format
filtre définira le sous-échantillonnage chromatique compatible avec QuickTime et d'autres lecteurs de mauvaise qualité.
-
Lorsque l'encodage est terminé -movflags +faststart
relocalise certaines données au début du fichier. C'est utile, par exemple, si vous produisez un fichier MP4 et que vos spectateurs le regarderont par téléchargement progressif, par exemple à partir d'un navigateur.
Avec audio
Supposons que les deux vidéos aient un son stéréo et que vous souhaitiez combiner le son de chaque vidéo en une seule sortie stéréo.
Exemple 1
![enter image description here]()
Cet exemple placera les deux canaux d'entrée gauche dans le canal de sortie gauche et les deux canaux d'entrée droite dans le canal de sortie droite.
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 -movflags +faststart output.mp4
Exemple 2
![enter image description here]()
Cet exemple placera les deux canaux de la première entrée dans le canal gauche de la sortie, et les deux canaux de la deuxième entrée dans le canal droit de la sortie.
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[a]" \
-map "[v]" -map "[a]" -movflags +faststart output.mp4
Exemple 3
Si vous ne voulez que l'audio d'une entrée, il vous suffit d'ajouter une entrée -map
dans l'exemple vidéo ci-dessus (il n'est pas nécessaire d'utiliser l'option amerge
y pan
):
-map 1:a -c:a copy
Voir aussi