Es ist sehr einfach mit ffmpeg, und es kann ein Bild alle N Sekunden ausgeben, ohne extra Skripting. Um als Bildsequenz zu exportieren, verwenden Sie einfach myimage_%04d.png
oder ähnliches als Ausgabe. Das %0xd
-Bit wird in eine mit Nullen aufgefüllte Ganzzahl von x
Stellen Länge umgewandelt - das Beispiel, das ich gegeben habe, wird als
myimage_0000.png
,
myimage_0001.png
,
myimage_0002.png
ausgegeben. Sie können viele Standbildformate verwenden, png, jpeg, tga, was auch immer (siehe ffmpeg -formats
für eine vollständige Liste).
Ok, jetzt wissen wir also, wie man den Film als eine Sequenz von Bildern exportiert, aber sagen wir, wir wollen nicht jedes einzelne Bild exportieren?
Der Trick ist, einfach die Bildrate der Ausgabe auf das zu ändern, was wir wollen, indem wir die Option -r n
verwenden, wobei n
die Anzahl der Bilder pro Sekunde ist. 1 Bild pro Sekunde wäre -r 1
, ein Bild alle vier Sekunden wäre -r 0.25
, ein Bild alle zehn Sekunden wäre -r 0.1
und so weiter.
Um alles zusammenzufassen, würde es also so aussehen, dass ein Frame von input.mov
alle vier Sekunden zu output_0000.png
, output_0001.png
usw. wird:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Beachten Sie, dass die Option -r 0.25
nach dem Teil -i input.mov
kommt, da sie die Framerate der Ausgabe steuert. Wenn Sie sie vor die Eingabe setzen, würde sie die Eingabedatei so behandeln, als hätte sie die angegebene Framerate.
Ändern Sie das %xd in so viele Ziffern, wie Sie benötigen, z. B. wenn der Befehl mehr als 10.000 Frames erzeugen würde, ändern Sie das %04d
in %05d
. Dies funktioniert auch für Eingabedateien, die eine Bildsequenz sind. Lesen Sie mehr hier .
Windows-Benutzer : In der Befehlszeile verwenden Sie %
Beispiel: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
In CMD- und BAT-Skripten verwenden Sie %%
Beispiel: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Also doppeltes %%
in Skripten und einfaches %
in der interaktiven Befehlszeile. Wenn Sie sich in einer der beiden Situationen vertun, wird ein Fehler erzeugt.