J'essaie d'ajouter mon logo pendant les 30 premières secondes dans une vidéo avec ffmpeg. J'ai une vidéo appelée d1.mp4
et un logo appelé logo.png
.
Lorsque la vidéo démarre, le filigrane doit se trouver dans le coin supérieur gauche ou supérieur droit de la vidéo et disparaître après 30 secondes.
Pouvez-vous me montrer comment l'ajouter?
ffmpeg -i d1.mp4 -i logo.png
montre? Veuillez simplement entrer cette commande et nous montrer quelle est la sortie. Lorsque vous posez des questionsffmpeg
, vous devez toujours inclure autant de détails que possible sur le matériel vidéo / audio que vous avez, ce que vous avez déjà essayé et la sortie en ligne de commande complète de tout ce que vous avez essayé.Réponses:
Cela suppose que le logo est une seule image fixe avec un canal alpha et que vous souhaitez la superposer sur une vidéo avec une fréquence d'images de 30000/1001 (taux NTSC). Modifiez le
-framerate
pour faire correspondre votre vidéo d'entrée si elle est différente. Si votre logo est une vidéo, omettez-la-framerate 30000/1001 -loop 1
. Si le logo n'a pas de canal alpha, ajoutez-en un en l'insérant par exempleformat=yuva420p,
juste avantfade
.Cela affichera le logo à la position x, y 10,10 pendant 30 secondes suivi d'un fondu sortant d'une seconde.
la source
framerate
etloop
sont nécessaires dans ce cas et non pour une simple superposition sans filtre de fondu?-framerate
et-loop
pour une image fixe est que le fondu sortant fonctionne. S'il n'y a qu'une seule image, elle n'a aucun moyen de disparaître sur un intervalle de 1 seconde. Idéalement, la fréquence d'images doit être identique à celle de la vidéo afin que le fondu soit le plus fluide possible.Utilisation d'
overlay
un filtre vidéo pour ajouter un logo à une vidéo:Pour comprendre cette commande, vous devez savoir ce qu'est un spécificateur de flux et lire l' Introduction au filtrage FFmpeg vous aidera.
[0:v]
fait référence au ou aux flux vidéo de la première entrée (video.mp4
) et se[1:v]
réfère au flux vidéo de la deuxième entrée (logo.mp4
). C'est ainsi que vous pouvez savoiroverlay
quelles entrées utiliser. Vous pouvez omettre[0:v][1:v]
, etoverlay
fonctionnera toujours, mais il est recommandé d'être explicite et de ne pas s'appuyer sur des valeurs par défaut éventuellement inconnues.Par défaut, le logo sera placé en haut à gauche.
L'utilisation
-codec:a copy
permet de copier en continu l'audio. Cela re-multiplexe simplement l'audio au lieu de le ré-encoder. Considérez-le comme un "copier-coller" de l'audio.Déplacer le logo
Cet exemple déplace le logo de 10 pixels vers la droite et de 10 pixels vers le bas:
Cet exemple déplace le logo de 10 pixels du côté droit et de 10 pixels vers le bas:
main_w
fait référence à la largeur de l'entrée "principale" (l'arrière-plan ou[0:v]
), etoverlay_w
fait référence à la largeur de l'entrée "superposition" (le logo ou[1:v]
). Ainsi, dans l'exemple, cela peut être traduit enoverlay=320-90-10:10
ouoverlay=220:10
.Synchronisation de la superposition
Certains filtres peuvent gérer l' édition de la chronologie, ce qui vous permet d'utiliser des expressions arithmétiques pour déterminer quand un filtre doit être appliqué. Reportez-vous à
ffmpeg -filters
pour voir quels filtres prennent en charge l'édition de la chronologie.Cet exemple montrera le logo jusqu'à 30 secondes:
Si vous souhaitez estomper le logo, reportez-vous à la réponse de mark4o .
la source
enable=not(between'(t,30,50)')
. Cela montrera la superposition à tout moment, mais pas à une durée de 30 à 60 secondes.overlay
tout seul, je l'ai fait, car la position par défaut en haut à gauche était ce que je voulais. (Donc à la fin mes drapeaux étaient tout simplementfilter_complex overlay
.)