Konvertieren von Bildern in Videos mit FFMPEG unter Windows

8

Ich versuche, eine Reihe von JPEG-Bildern in ein Zeitraffervideo umzuwandeln. Sie haben das Format IMGP0001.JPG, IMGP0002.JPG usw. Aus heutiger Sicht sollte dies mit dem Muster IMGP% 04.JPG übereinstimmen.

Ich habe die folgenden Befehle ausprobiert (geändert ab dem 2. Eintrag auf dieser Seite) :

ffmpeg -f image2 -i IMGP%04d.jpg video.mpg

Ich erhalte die Fehlermeldung "IMGP% 04d.JPG: Keine solche Datei oder kein solches Verzeichnis".

Was mache ich falsch? Vielleicht ist die Syntax "IMGP% 04d.JPG" * nix-spezifisch? Wenn ja, welches wäre das Windows-Äquivalent?

CadentOrange
quelle
Verschieben Sie Bilder in einen Pfad mit Kurznamen (keine Leerzeichen usw.).
Wenn Ihre Bilder nicht fortlaufend benannt sind, erledigt diese Batch-Datei dies für Sie. Superuser.com/a/350633/7018
Matthew Lock

Antworten:

6

Versuchen Sie, die Dateinamenvorlage in doppelte Anführungszeichen zu setzen. Wenn Sie den Befehl in einem Skript ausführen, müssen Sie möglicherweise %% anstelle von% verwenden.

Mike Fitzpatrick
quelle
1
Das war's! Es wurde in einer Batch-Datei aufgerufen, und ich musste das% mit einem anderen umgehen. dh IMGP %% 04d.jpg.
CadentOrange
3
Eine andere Sache zu beachten ist, dass die Sequenz mit 1 beginnen sollte, sonst wird sie nicht richtig erkannt. Möglicherweise müssen Sie Ihre Dateien umbenennen, bevor Sie sie verarbeiten können. Dieses Problem hat mich heute gebissen. Siehe stackoverflow.com/questions/2829113/…
Jason Navarrete
2
@ JasonNavarrete: Sie können vermeiden, Dateien umbenennen zu müssen, indem Sie den -start_numberSchalter verwenden ...;)
Assad Ebrahim
@AKE, na ja, würdest du dir das ansehen? Zu meiner Zeit hatten wir noch keine 'start_number'. Wir sind jetzt in der Zukunft ...
Jason Navarrete
10

Aufbauend auf Mikes Antwort oben gibt es einige andere nützliche Schalter, die auch auf der Windows-Lösung funktionieren.

Ich verwende den folgenden Liner, um eine langsamere Bildrate zu erzielen, die Bilder zu komprimieren und ein kleineres resultierendes Video zu erhalten:

ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number 1234 
        -framerate 3 -i "Imgp%%04d.jpg" -s 720x480 test.avi

Mit dieser -framerate 3Option wird die Bildrate des resultierenden Videos auf 3 Bilder pro Sekunde eingestellt, sodass ich jedes Bild für einen kurzen Zeitraum noch sehen kann. Durch Hinzufügen -rals Ausgabeoption wird die Framerate der Ausgabe geändert, wenn sie von Ihrem -framerateWert abweichen muss. Mit dieser -sOption werden die Bilder auf die gewünschte Auflösung skaliert, um die Größe des resultierenden Videos zu verwalten. Alternativ kann stattdessen der flexiblere Skalenfilter verwendet werden.

Beachten Sie, dass es entgegen dem obigen Kommentar von Jason nicht erforderlich ist, Dateien umzubenennen, wenn Sie den -start_numberSchalter wie folgt verwenden :

ffmpeg -f image2 -start_number n -i "IMGP%%04d.jpg" video.mpg 
    -vcodec mpeg4 test.avi

Wo nbeginnt die Sequenz der Standbilder?

Dies funktioniert so lange, wie die Sequenz nach dem Start nicht unterbrochen wird. Wenn es Lücken gibt und Sie möchten, dass alle Standbilder enthalten sind, kann eine Umnummerierung erforderlich sein, um die Lücken zu füllen.

Assad Ebrahim
quelle
0

Es gibt eine viel einfachere Methode, die die Verwendung einer kostenlosen Software (Total Commander) und eines kostenlosen AVI-Plugins erfordert.

Siehe diesen Artikel " Animationen aus Standbildern erstellen " hier .

Assad Ebrahim
quelle