-pattern_type glob
exemples concrets avec audio
Cette option a été mentionnée à : https://superuser.com/a/782520/128124 mais voici quelques exemples concrets de son utilisation, notamment pour ajouter du son à la vidéo de sortie.
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 le son à la fin des images :
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émonstrations sur YouTube :
Soyez un hippie et utilisez le format vidéo Theora non breveté :
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 classées par ordre alphabétique, généralement comme suit :
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
et ainsi de suite.
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 trame à 30 FPS
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
Voilà à 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-y du son :
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
Convertir un fichier musical en une vidéo avec une image fixe pour le téléchargement sur YouTube
Répondu à : Comment convertir un MP3 en format vidéo autorisé par Youtube ?
Obtenir quelques images d'entrée de test synthétiques
Ce sont 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 : https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Il est intéressant d'observer à quel point la vidéo compresse la séquence d'images bien mieux que le ZIP, car elle est capable de comprimer plusieurs images grâce à des algorithmes spécialisés :
-
opengl-rotating-triangle.mp4
: 340K
-
opengl-rotating-triangle.zip
: 7.3M
À propos des options de l'interface CLI
Notez cependant que malgré le nom, -glob
ce n'est pas aussi général que les patrons de Shell Glob, 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
fait le -framerate 1
vidéo 30 FPS pour surmonter les bugs des lecteurs comme VLC pour les framerates bas : https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using-ffmpeg/41797724#41797724 Il répète donc chaque image 30 fois pour conserver l'effet souhaité d'une image par seconde.
Prochaines étapes
Vous voudrez aussi :
TODO : apprendre à couper et concaténer plusieurs fichiers audio dans la vidéo à partir de la ligne de commande :
Testé sur
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliographie
0 votes
Il s'est écoulé un certain temps depuis que vous avez posé cette question, mais si vous êtes toujours intéressé par la question, la réponse est OUI - j'ai posté les détails et un exemple ci-dessous: stackoverflow.com/a/12160155/181638
0 votes
@casperOne ce serait utile d'avoir une idée de pourquoi cela est hors sujet. Il semble s'agir d'un problème de programmation spécifique. La balise FFmpeg compte 3,7k abonnés, et avec 27k vues, il est clair que les gens le trouvent utile.
2 votes
@geotheory Les statistiques de balises sont sans importance. ffmpeg est un programme à l'image de WinRar. Bien que vous puissiez programmer contre les bibliothèques dans ffmpeg, cette question ne concerne pas cela. L'utilisation de ffmpeg en ligne de commande doit être posée sur Super User, là où c'est pertinent.