-pattern_type glob
Konkrete Beispiele mit Audio
Diese Option wurde erwähnt unter: https://superuser.com/a/782520/128124 , aber hier sind ein paar konkrete Beispiele für ihre Verwendung, einschließlich des Hinzufügens von Audio zum Ausgabevideo.
Diashow-Video mit einem Bild pro Sekunde
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Fügen Sie eine Musik hinzu, die abgeschnitten wird, wenn der Ton am Ende der Bilder endet:
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
Hier sind zwei Demos auf YouTube:
Seien Sie ein Hippie und verwenden Sie das patentfreie Videoformat 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
Ihre Bilder sollten natürlich alphabetisch sortiert sein, typischerweise als:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
und so weiter.
Siehe auch: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Normalgeschwindigkeitsvideo mit einem Bild pro Frame bei 30 FPS
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
So sieht es aus:
GIF erzeugt mit: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Fügen Sie etwas Audio hinzu:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
Ergebnis: https://www.youtube.com/watch?v=HG7c7lldhM4
Eine Musikdatei in ein Video mit einem festen Bild für den YouTube-Upload konvertieren
Beantwortet bei: How to convert MP3 to Youtube-allowed video format?
Erhalten Sie einige synthetische Test-Eingabebilder
Dies sind die Testbilder, die ich in dieser Antwort verwendet habe:
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
Bilder erzeugt mit: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Es ist cool zu beobachten, wie sehr das Video die Bildsequenz viel besser komprimiert als ZIP, da es in der Lage ist, mit speziellen Algorithmen über Frames hinweg zu komprimieren:
opengl-rotating-triangle.mp4
: 340K
opengl-rotating-triangle.zip
: 7.3M
Über die CLI-Optionen
Beachten Sie jedoch, dass dies trotz des Namens -glob
nicht so allgemein ist wie Shell-Glob-Patterns, z. B.: -i '*'
schlägt fehl: https://trac.ffmpeg.org/ticket/3620 (anscheinend, weil der Dateityp aus der Erweiterung abgeleitet wird).
-r 30
macht das -framerate 1
-Video zu 30 FPS, um Bugs in Playern wie VLC für niedrige Frameraten zu überwinden: https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using-ffmpeg/41797724#41797724 Daher wird jedes Bild 30 Mal wiederholt, um den gewünschten 1-Bild-pro-Sekunde-Effekt zu erhalten.
Nächste Schritte
Sie werden auch wollen:
TODO: lernen Sie, mehrere Audiodateien aus der Kommandozeile zu schneiden und in das Video zu verketten:
Tested on
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografie