Muxen Sie einfach die Bilder
Sie können die JPG-Bilder einfach muxen, um ein Video zu erstellen:
ffmpeg -framerate 30 -i input%03d.jpg -codec copy output.mkv
Beachten Sie, dass beim Weglassen -framerate
ein Standardwert von -framerate 25
auf die Eingabe angewendet wird.
Verlustfreie Optimierung
Mit dieser Option können Sie jpegtran
verlustfreie Optimierungen für jeden Frame durchführen, wodurch möglicherweise erhebliche Einsparungen bei der Dateigröße erzielt werden:
mkdir outputdir
for f in *.jpg; do jpegtran -optimize -copy none -perfect -v "$f" > "outputdir/$f"; done
Nun muxen Sie mit ffmpeg
wie oben gezeigt.
Überprüfen, ob es tatsächlich verlustfrei ist
Mit dem Framehash-Muxer kann der eindeutige Hash jedes Frames verglichen werden, um sicherzustellen, dass das Ergebnis wirklich verlustfrei ist:
$ ffmpeg -i input%03d.jpg -f framehash -
stream_index, packet_dts, packet_pts, packet_duration, packet_size, hash
0, 0, 0, 1, 460800, 29bcc2db3726c7dfec1826c5740f603f
0, 1, 1, 1, 460800, b5fdc23d93cbd043dc2b9290dc8378f0
0, 2, 2, 1, 460800, ee0709942f24b458fd2380d134dcb59d
...
$ ffmpeg -i output.mkv -map 0:v -f framehash -
stream_index, packet_dts, packet_pts, packet_duration, packet_size, hash
0, 0, 0, 1, 460800, 29bcc2db3726c7dfec1826c5740f603f
0, 1, 1, 1, 460800, b5fdc23d93cbd043dc2b9290dc8378f0
0, 2, 2, 1, 460800, ee0709942f24b458fd2380d134dcb59d
...
In den obigen Beispielen hat jeder zugeordnete Frame für die Eingabe und die Ausgabe den gleichen Hash, um sicherzustellen, dass die Frames identisch sind und die Ausgabe verlustfrei ist.
Siehe auch