Mux solo le immagini
Puoi semplicemente combinare le immagini JPG per creare un video:
ffmpeg -framerate 30 -i input%03d.jpg -codec copy output.mkv
Si noti che se si omette, verrà applicato -framerateun valore predefinito di -framerate 25input.
Ottimizzazione senza perdite
È possibile utilizzare jpegtranper eseguire l'ottimizzazione senza perdita di dati su ciascun fotogramma che può fornire un notevole risparmio di dimensioni del file:
mkdir outputdir
for f in *.jpg; do jpegtran -optimize -copy none -perfect -v "$f" > "outputdir/$f"; done
Ora mux con ffmpegcome mostrato sopra.
Verifica che sia effettivamente senza perdite
Il muxer framehash può essere utilizzato per confrontare l'hash univoco di ciascun frame per garantire che il risultato sia davvero senza perdite:
$ 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
...
Negli esempi precedenti ogni frame associato per l'input e l'output condividono lo stesso hash garantendo che i frame siano identici e che l'output sia senza perdita.
Vedi anche