ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Diese Zeile hat gut funktioniert, aber ich möchte eine Videodatei aus Bildern in einem anderen Ordner erstellen. Bildnamen in meinem Ordner sind:
img001.jpg
img002.jpg
img003.jpg
...
Wie kann ich Bilddateien aus einem anderen Ordner eingeben? Beispiel:C:\mypics
Ich habe diesen Befehl ausprobiert, aber nur ffmpeg
mit dem ersten Bild (img001.jpg) ein Video generiert.
ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Antworten:
Siehe die Diashow Video aus Bildern erstellen - FFmpeg
Ich habe die folgenden Parameter getestet, es hat bei mir funktioniert
Die folgenden Parameter funktionierten ebenfalls, überspringen jedoch immer das erste Bild
Erstellen eines Videos aus Bildern in verschiedenen Ordnern
Fügen Sie zunächst wie unten beschrieben Bildpfade zu imagepaths.txt hinzu .
Beispielnutzung wie folgt;
-safe 0 Parameter verhindert Unsichere Dateinamen Fehler
Ähnliche Links
FFmpeg erstellt ein Video aus Bildern, die in verschiedenen Ordnern abgelegt sind
FFMPEG Eine Zwischenführung / Bildsequenz
Verketten - FFmpeg
quelle
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
schien zu funktionieren, führte jedoch am Ende zu einem Video, das von keinem Spieler (unter Ubuntu) gelesen werden konnte. VNC sagte, "Moov-Atom nicht gefunden". Der Versuch, dies zu beheben,qt-faststart
erzeugte den Fehler "Das letzte Atom in der Datei war kein Moov-Atom"-i img%05d.png
Muster verwendet, aber es gibt 133 Bilder, von denen nur 10 als Video erstellt wurden. Warum?-pattern_type glob
Diese großartige Option erleichtert in vielen Fällen die Auswahl der Bilder.
Diashow-Video mit einem Bild pro Sekunde
Fügen Sie etwas Musik hinzu, schneiden Sie ab, wenn das vermutlich längere Audio, wenn die Bilder enden:
Hier sind zwei Demos auf YouTube:
Seien Sie ein Hippie und verwenden Sie das patentfreie Theora-Videoformat :
Ihre Bilder sollten natürlich alphabetisch sortiert sein, normalerweise wie folgt:
und so weiter.
Ich würde auch zuerst sicherstellen, dass alle zu verwendenden Bilder das gleiche Seitenverhältnis haben, möglicherweise indem ich sie vorher mit
imagemagick
oder nomacs beschneide , damit ffmpeg keine schwierigen Entscheidungen treffen muss. Insbesondere muss die Breite durch 2 teilbar sein, andernfalls schlägt die Konvertierung fehl mit: "Breite nicht durch 2 teilbar".Video mit normaler Geschwindigkeit mit einem Bild pro Bild und 30 FPS
So sieht es aus:
GIF generiert mit: /ubuntu/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Fügen Sie etwas Audio hinzu:
Ergebnis: https://www.youtube.com/watch?v=HG7c7lldhM4
Dies sind die Testmedien, die ich verwendet habe: a
Bilder generiert mit: Wie verwende ich GLUT / OpenGL, um in eine Datei zu rendern?
Es ist cool zu beobachten, wie stark das Video die Bildsequenz viel besser komprimiert als ZIP, da es mit speziellen Algorithmen Frames komprimieren kann:
opengl-rotating-triangle.mp4
: 340Kopengl-rotating-triangle.zip
: 7,3 M.Konvertiere eine Musikdatei in ein Video mit einem festen Bild für den YouTube-Upload
Beantwortet unter: /superuser/700419/how-to-convert-mp3-to-youtube-allowed-video-format/1472572#1472572
Schritt für Schritt vollständige realistische Einrichtung der Diashow-Fallstudie
Das Erstellen von Diashows umfasst etwas mehr als das Ausführen eines einzelnen Befehls ffmpeg. Hier finden Sie ein interessanteres detailliertes Beispiel, das von dieser Zeitleiste inspiriert ist .
Holen Sie sich die Eingabemedien:
Jetzt haben wir einen kurzen Blick auf alle Bildgrößen, um das endgültige Seitenverhältnis zu bestimmen:
welche Ausgänge:
Daher scheint das klassische Seitenverhältnis von 480p (640 x 480 == 4/3) angemessen zu sein.
Führen Sie eine Konvertierung mit minimaler Größenänderung durch, um die Breite gleichmäßig zu machen (TODO-Automatisierung für jede Breite, hier habe ich nur die
identify
Ausgabe manuell betrachtet und Breite und Höhe um eins reduziert):Dies erzeugt eine schreckliche Ausgabe, weil von:
ffmpeg nimmt nur die Größe des ersten Bildes (556 x 494) an und konvertiert dann alle anderen Bilder in genau diese Größe, wodurch das Seitenverhältnis unterbrochen wird.
Konvertieren wir nun die Bilder automatisch in das Ziel-Seitenverhältnis von 480p, indem wir sie gemäß ImageMagick zuschneiden : Wie kann ein Bild minimal auf ein bestimmtes Seitenverhältnis zugeschnitten werden?
Das Seitenverhältnis ist also gut, aber es musste zwangsläufig etwas beschnitten werden, wodurch interessante Teile der Bilder zerschnitten wurden.
Die andere Option besteht darin, mit schwarzem Hintergrund aufzufüllen, um das gleiche Seitenverhältnis wie unter gezeigt zu haben: Größe ändern, um in ein Feld zu passen, und Hintergrund auf "leerem" Teil auf Schwarz setzen
Im Allgemeinen können Sie jedoch idealerweise Bilder mit denselben oder ähnlichen Seitenverhältnissen auswählen, um diese Probleme zu vermeiden.
Informationen zu den CLI-Optionen
Beachten Sie jedoch, dass dies trotz des Namens
-glob
nicht so allgemein ist wie Shell-Glob-Muster, z. B.: Fehlgeschlagen-i '*'
: https://trac.ffmpeg.org/ticket/3620 (anscheinend, weil der Dateityp von der Erweiterung abgeleitet wird).-r 30
macht das-framerate 1
Video 30 FPS, um Fehler in Playern wie VLC für niedrige Frameraten zu überwinden: VLC friert für Videos mit niedrigen 1 FPS ein, die aus Bildern mit ffmpeg erstellt wurden. Daher wird jedes Bild 30 Mal wiederholt, um den gewünschten Effekt von 1 Bild pro Sekunde beizubehalten.Nächste Schritte
Sie werden auch wollen:
Schneiden Sie den gewünschten Teil des Audios, bevor Sie ihn verbinden: Schneiden Sie die Videos basierend auf der Start- und Endzeit mit ffmpeg
TODO: Lernen Sie, mehrere Audiodateien ohne Zwischendateien in das Video zu schneiden und zu verketten. Ich bin mir ziemlich sicher, dass dies möglich ist:
Getestet am
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Literaturverzeichnis
quelle
'
in den Namen der Eingabe- und Ausgabedateien nicht verwenden. Andernfalls werden die Dateien nicht gefunden.ffmpeg-static
implementiert glob nicht. (Pattern type 'glob' was selected but globbing is not supported by this libavformat build
)-pix_fmt
verursachterTrailing options were found on the commandline.
Fehlerffmpeg -framerate 1 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Ubuntun 19.10 ffmpeg 4.1.4 gerade nicht reproduzieren. Was ist Ihre Version und der genaue Befehl?-r 15 -f image2 -s 512x512 -i "sequencePath" -vcodec libx264 -crf 25 -pix_fmt yuv420p -y "1.mp4"
habe ich Videos aus Sequenzbildern vonIM00001.jpg
'IM00133.jpg' erstellt, aber nur einige davon sind in Videos wie 15 vorhanden. Wie man dies ändert, um entfernte Duplikate zu ignorieren oder alle Bilder als Videos mit einer bestimmten Framerate zu erstellen, möchte ich nichtffmpeg
irgendetwas entfernen, ich will alles?Einfache Version aus den Dokumenten
Funktioniert besonders gut für Google Earth Studio- Bilder:
quelle
%3d
oder%03d
?cat *.png | ffmpeg -f image2pipe -i - output.mp4
aus dem Wiki
quelle