Methode 1: Verwenden Sie Sequenzmuster
Was Sie wirklich brauchen, ist dies, wenn Ihr erstes Bild aufgerufen wird GOPR0001.JPG
:
ffmpeg.exe -i "GOPR%04d.JPG" -pix_fmt yuv420p out.mp4
Wenn das erste Bild aufgerufen wird GOPR3973.JPG
, müssen Sie ffmpeg die Startnummer geben, nach der gesucht werden soll:
ffmpeg.exe -start_number 3973 -i "GOPR%04d.JPG" -pix_fmt yuv420p out.mp4
Methode 2: Verwenden Sie Globbing-Muster
Wenn Ihre ffmpeg-Version Unterstützung für Globbing bietet (was die Windows-Builds meiner Meinung nach nicht haben), können Sie einfach Folgendes tun:
ffmpeg.exe -pattern_type glob -i "GOPR*.JPG" -pix_fmt yuv420p out.mp4
Dies ist vorzuziehen, wenn Sie die Startnummer nicht kennen oder einfach keine genaue Kontrolle wünschen.
Warum funktioniert es nicht?
ffmpeg.exe -i GOPR*.JPG out.mp4
Dies funktioniert nicht, da es sich in etwa so ausweiten wird (vorausgesetzt, Ihr erstes Bild wird aufgerufen GOPR0001.JPG
):
ffmpeg.exe -i GOPR0001.JPG GOPR0002.JPG … out.mp4
Da ffmpeg die letzte unbenannte Argumentoption (dh alles ohne führende -
) als Ausgabedateiname behandelt, GOPR2.JPG
wäre dies die Ausgabe, und alles, was out.mp4
nicht verwendet wird, wird nicht übernommen.
Einige Hinweise
-pix_fmt yuv420p
wird benötigt, um aus dem YUV 4: 2: 2-Farbraum von JPEG in 4: 2: 0-Subsampling zu konvertieren. Andernfalls können einige (die meisten nicht auf FFmpeg basierenden) Player das Video nicht anzeigenKontrollieren Sie die Qualität, indem Sie die
-crf 23
Option einstellen und zwischen 18 und 28 wählen, wobei niedriger für bessere Qualität steht.Möglicherweise möchten Sie die Bildrate entsprechend der Aufnahme der Eingangsbilder (Bilder) einstellen. Tun Sie dies, indem Sie laufen
ffmpeg.exe -framerate 30 -start_number …
. Wenn Sie keine Framerate angeben, geht ffmpeg davon aus, dass Ihre ursprünglichen Frames mit 25 Hz aufgenommen wurden.Lesen Sie den
image2
Demuxer- Teil des Handbuchs.Doppelte Anführungszeichen sind immer gut zu verwenden, um eine Schalenausdehnung von Mustern zu verhindern.