Satria (Diskussion | Beiträge) |
Satria (Diskussion | Beiträge) (→Timestamps generieren) |
||
Zeile 46: | Zeile 46: | ||
oder | oder | ||
<pre>-use_wallclock_as_timestamps 1</pre> | <pre>-use_wallclock_as_timestamps 1</pre> | ||
+ | Bei Seekproblemen wurde auch schon mal | ||
+ | <pre>-fflags +nofillin</pre> | ||
+ | empfohlen. | ||
== Quellen == | == Quellen == |
Aktuelle Version vom 10. Mai 2022, 03:33 Uhr
FFmpeg ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren.
Inhaltsverzeichnis
Einzelbilder zu einem Video machen
Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt.
Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B.
Frame 001.jpg
Frame 002.jpg
Frame 003.jpg
Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren:
ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx
Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben.
Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.
Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche.
Mit einem kleinen Trick lässt sich auch SmartFFmpeg dazu nutzen, Bilder zu einem Video zusammenzufügen.
Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie Frame %03d.jpg (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.
Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt.
Dateien zusammenfügen
Stichwort "concat". Ja, ffmpeg kann auch Dateien des selben Typs zu einer Datei zusammenfügen und dabei noch ggf. in ein gewünschtes Zielformat konvertieren. Es kann sein, dass das und hier und die Sache mit den Einzelbilden alternativ verwendet werden können.
Die Textdatei, die dazu als Quell-Liste der Dateien dient, die aneinandergehängt werden sollen muss so aussehen:
file 'path\to\file'
file 'path\to\nextfile'
Sagen wir, sie heißt Liste.txt
Die Parameter für ffmpeg lauten:
ffmpeg -f concat -safe 0 -i Liste.txt
Mehrere Audio-Streams
Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:
ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio
Timestamps generieren
Bei der Meldung Timestamps are unset in a packet for stream 0, kann das hier in den Output Paramatern helfen:
-fflags +genpts
oder
-use_wallclock_as_timestamps 1
Bei Seekproblemen wurde auch schon mal
-fflags +nofillin
empfohlen.
Quellen
... und weitere Tutorials:
http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/
http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html
http://electron.mit.edu/~gsteele/ffmpeg/
https://trac.ffmpeg.org/wiki/Concatenate