Avec 5 images, je dois créer une vidéo de 60 secondes dans ffmpeg, chaque image doit s'afficher pendant 15 secondes. après 15 secondes, la première image doit apparaître en fondu et la deuxième image doit apparaître en fondu, après cette deuxième image doit disparaître, la troisième image doit apparaître en fondu, etc. Veuillez me guider comment puis-je y parvenir à l'aide des commandes ffmpeg.
27
Réponses:
Dip / fondu au noir
Faites défiler vers le bas pour la méthode de fondu.
Exemple où chaque image affichée pendant 5 secondes et chacune a un fondu qui dure 1 seconde. Chaque entrée d'image a la même largeur, hauteur et rapport d'aspect d'échantillon. S'ils varient en taille, voir l'exemple n ° 3 ci-dessous.
Sortie MP4
Avec audio
Comme ci-dessus mais avec audio:
Pour des images d'entrée de tailles variables ou arbitraires
Comme le premier exemple, mais avec des images d'entrée qui varient en largeur x hauteur. Ils seront rembourrés pour tenir dans une boîte 1280x720:
Voir les exemples dans Redimensionner des vidéos pour qu'elles tiennent dans un lecteur de taille statique si vous souhaitez recadrer (remplir l'écran) au lieu de pad (boîte aux lettres / pilier), ou si vous voulez empêcher la mise à l'échelle.
Sortie GIF
Ajoute les filtres de Comment convertir une vidéo en GIF en utilisant ffmpeg, avec une qualité raisonnable?
Utilisez l'
-loop
option de sortie pour contrôler le nombre de boucles GIF. La valeur par défaut est boucle infinie si cette option n'est pas utilisée. Une valeur de-1
n'est pas une boucle.Options et filtres utilisés:
-t
pour régler la durée en secondes de chaque entrée.-loop 1
boucle l'image sinon elle aurait une durée de 1 image.-framerate
pour définir le taux de trame de l'image d'entrée (par défaut lorsque non déclaré est 25). Utile pour créer des GIF.mettre à l'échelle avec un tampon pour adapter les images d'entrée dans une taille spécifique et uniforme (utilisée dans l'exemple # 3).
fondu pour fondre en avant et en arrière.
d
est la durée du fondu.st
c'est quand ça commence.concatène pour concaténer (ou "joindre") chaque image.
format pour sortir un schéma de sous-échantillonnage chromatique compatible avec les lecteurs non basés sur FFmpeg si la sortie MP4 et le codage avec libx264 (l'encodeur par défaut pour la sortie MP4 s'il est pris en charge par votre build).
fractionner pour faire des copies d'une sortie de filtre. Nécessaire par les filtres de palette * pour tout faire en une seule commande.
palettegen et paletteuse pour faire de beaux GIF.
Fondu enchaîné
Exemple où chaque image affichée pendant 5 secondes et chacune a un fondu enchaîné qui dure 1 seconde. Chaque entrée d'image a la même largeur, hauteur et rapport d'aspect d'échantillon. S'ils varient en taille, adaptez l'exemple # 3 ci-dessus.
Sortie MP4
Avec audio
Fondu enchaîné entre deux vidéos avec audio
Sélectionnez un segment de 5 secondes dans chaque entrée et ajoutez un fondu enchaîné de 1 seconde:
Sortie GIF
Utilisez l'
-loop
option de sortie pour contrôler le nombre de boucles GIF. La valeur par défaut est boucle infinie si cette option n'est pas utilisée. Une valeur de-1
n'est pas une boucle.la source
-t
dans-loop 1 -t 1 -i 001.png
définit la durée des images individuelles et que les nombres suivantT/
dans lefilter_complex
bloc définissent la durée de la transition? Et la durée de la trame dans cet exemple est-elle comptée, y compris la durée de la transition ou non?-preset ultrafast
.melt
.concat=n=9
partie de la commande, le9
provient des 5 images de l'exemple + 4 transitions entre les images. Si vous gérez un nombre différent d'images, vous devrez l'ajuster en conséquence.J'ai écrit un script bash général qui prend un chemin vers un dossier d'images et produit une vidéo de fondu enchaîné avec ffmpeg:
https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e
Le script examine essentiellement les images dans un dossier et imprime une commande similaire à la réponse de @LordNeckbeard ci-dessus, et exécute la commande. Ce script est utile lorsque vous avez de nombreuses images dans un dossier et que vous ne voulez pas saisir manuellement une commande d'une longueur déprimante.
la source