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 -framerateein Standardwert von -framerate 25auf die Eingabe angewendet wird.
Verlustfreie Optimierung
Mit dieser Option können Sie jpegtranverlustfreie 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 ffmpegwie 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