ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Cette ligne a bien fonctionné, mais je souhaite créer un fichier vidéo à partir d’images situées dans un autre dossier. Les noms d'images dans mon dossier sont:
img001.jpg
img002.jpg
img003.jpg
...
Comment puis-je entrer des fichiers images d'un autre dossier? Exemple: C:\mypics
J'ai essayé cette commande mais ffmpeg
n'a généré qu'une vidéo avec la première image (img001.jpg).
ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Voir le Créer un diaporama vidéo à partir d'images - FFmpeg
Si votre vidéo ne montre pas correctement les images Si vous rencontrez des problèmes, tels que la première image est ignorée ou ne s'affiche que pour une image, utilisez la touche Filtre vidéo fps au lieu de - r pour le nombre d'images par seconde en sortie
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
Alternativement, le filtre vidéo de format peut être ajouté à la chaîne de filtres pour remplacer - pix_fmt yuv420p comme "fps = 25, format = yuv420p ". L'avantage de cette méthode est que vous pouvez contrôler quel filtre va en premier
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
J'ai testé les paramètres ci-dessous, cela a fonctionné pour moi
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4
les paramètres ci-dessous ont également fonctionné, mais la première image est toujours ignorée
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4
créer une vidéo à partir d'images placées dans différents dossiers
Tout d’abord, ajoutez les chemins d’image à imagepaths.txt comme ci-dessous.
# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate
file 'E:\images\png\images__%3d.jpg'
file 'E:\images\jpg\images__%3d.jpg'
Exemple d'utilisation comme suit;
"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4"
- safe 0 paramètre empêche erreur de nom de fichier
Liens connexes
FFmpeg réalise une vidéo à partir d’images placées dans différents dossiers
-pattern_type glob
Cette excellente option facilite la sélection des images dans de nombreux cas.
Diaporama vidéo avec une image par seconde
_ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
_
Ajoutez de la musique, coupez quand le son quand les images se terminent:
_ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
_
Voici deux démos sur YouTube:
Soyez un hippie et utilisez le format vidéo non breveté de Theora :
_ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
_
Vos images doivent bien sûr être triées par ordre alphabétique, généralement comme suit:
_0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
_
etc.
Voir aussi: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Vidéo à vitesse normale avec une image par image à 30 FPS
_ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
_
Voici à quoi ça ressemble:
GIF généré avec: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Ajoutez de l'audio à cela:
_ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
_
Résultat: https://www.youtube.com/watch?v=HG7c7lldhM4
Convertissez un fichier de musique en vidéo avec une image fixe pour le téléchargement sur YouTube
Obtenir des images d'entrée de test synthétiques
Voici les images de test que j'ai utilisées dans cette réponse:
_wget -O opengl-rotating-triangle.Zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.Zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
_
Images générées avec: Comment utiliser GLUT/OpenGL pour le rendu dans un fichier?
Il est intéressant d'observer à quel point la vidéo compresse mieux la séquence d'images que Zip, car elle est capable de compresser des images à l'aide d'algorithmes spécialisés:
opengl-rotating-triangle.mp4
_: 340Kopengl-rotating-triangle.Zip
_: 7.3MA propos des options CLI
Notez toutefois que malgré le nom, _-glob
_, ce n’est pas aussi général que les modèles Shell Glob, par exemple: _-i '*'
_ échoue: https://trac.ffmpeg.org/ticket/362 = (apparemment parce que le type de fichier est déduit de l'extension).
_-r 30
_ crée le _-framerate 1
_ vidéo 30 FPS pour surmonter les bogues dans les lecteurs tels que VLC pour les basses fréquences d'images: VLC se bloque pour les vidéos basses de 1 FPS créées à partir d'images avec ffmpeg Il répète donc chaque image 30 fois pour conserver l’effet souhaité d’une image par seconde.
Prochaines étapes
Vous voudrez aussi:
couper un peu d’audio pour qu’il corresponde à la longueur de la vidéo: Couper les vidéos en fonction de l’heure de début et de fin en utilisant ffmpeg
_ffmpeg -i in.mp3 -ss 03:10 -to 03:30 -c copy out.mp3
_
ajoutez l'audio découpé: https://superuser.com/questions/277642/how-to-merge-audio-and-video-file-in-ffmpeg
_ffmpeg -i video.mp4 -i audio.mp3 -c copy output.mkv
_
TODO: apprendre à couper et concaténer plusieurs fichiers audio dans la vidéo sans fichiers intermédiaires, je suis sûr que c'est possible:
Testé le
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliographie
Fonctionne particulièrement bien pour Google Earth Studio images:
ffmpeg -framerate 24 -i Project%03d.png Project.mp4
cat *.png | ffmpeg -f image2pipe -i - output.mp4
de wiki