Comment créer une vidéo à partir d'images avec FFmpeg?
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 veux créer un fichier vidéo à partir d'images dans un autre dossier. Les noms d'Image dans mon dossier sont:
img001.jpg
img002.jpg
img003.jpg
...
Comment puis-je entrer des fichiers images à partir d'un autre dossier? Exemple: C:mypics
j'ai essayé cette commande mais ffmpeg
a généré une vidéo avec la première image (img001.jpg) seulement.
ffmpeg -r 1/5 -start_number 0 -i C:myimagesimg%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
2 réponses
voir le créer un diaporama vidéo à partir d'images – FFmpeg
si votre vidéo ne montre pas les images correctement si vous rencontrez des problèmes, tels que la première image est sautée ou montre seulement pour une image, puis utiliser le filtre vidéo fps au lieu de - r pour le framerate de 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 format peut être ajouté au filtre filterchain pour remplacer - pix_fmt yuv420p comme " fps=25,format=yuv420p " . L'avantage de cette méthode est que vous pouvez contrôler quel filtre passe en premier
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
j'ai testé ci-dessous les paramètres, ça a marché pour moi
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4
ci-dessous paramètres ont également fonctionné, mais il toujours sauter la première image
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4
faire de la vidéo à partir d'images placées dans des dossiers différents
ajoutez D'abord 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"
- sûr 0 paramètre prevents nom de fichier Non Sécuritaire erreur
liens connexes
FFmpeg réalisation vidéo à partir d'images placées dans différents dossiers
-pattern_type glob
cette grande option rend plus facile de sélectionner les images dans de nombreux cas:
ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 \
-r 30 -pix_fmt yuv420p out.mp4
cette commande crée une vidéo de diaporama qui montre chaque image pendant une seconde. Voici une démo .
vos images devraient alors être classées par ordre alphabétique, typiquement comme:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
et ainsi de suite.
notez cependant que malgré le nom, -glob
ce n'est pas aussi général que des marques de gangrène shell, par exemple: -i '*'
échoue: https://trac.ffmpeg.org/ticket/3620 (apparemment parce que le type de fichier est déduit de l'extension).
-r 30
rend la vidéo 30 FPS pour surmonter les bugs dans les lecteurs comme VLC pour les framerates bas: VLC gèle pour la vidéo bas 1 FPS créé à partir d'images avec ffmpeg donc, ce serait répéter chaque image 30 fois pour conserver l'effet désiré de 1 image par seconde.
voir aussi:
- http://trac.ffmpeg.org/wiki/Slideshow wiki officiel
- https://superuser.com/questions/624567/ffmpeg-create-a-video-from-images question similaire sur SU
Ensuite, vous voudrez aussi:
-
couper un peu d'audio pour correspondre à la longueur de la vidéo: couper les vidéos basées sur le début et la fin du temps en utilisant ffmpeg
ffmpeg -i in.mp3 -ss 03:10 -to 03:30 -c copy out.mp3
-
ajouter la coupure audio: 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
testé sur ffmpeg 2.8.6, Ubuntu 16.04.