ffmpeg divide el video MOV codificado en JPEG en cuadros sin volver a codificarlo

ffmpeg divide el video MOV codificado en JPEG en cuadros sin volver a codificarlo

Tengo un archivo de video MOV de una cámara digital antigua donde la transmisión de video es solo una serie de archivos JPEG. Estoy tratando de extraer esos archivos JPEG sin volver a codificarlos (o al menos acercarme lo más posible a los originales); sin embargo, al usar ffmpeg, los archivos JPEG extraídos son más pequeños de lo esperado.

Estoy abierto a usar algo que no sea ffmpeg si hay una herramienta mejor para el trabajo.

Comando que utilicé para intentar dividir los fotogramas:

ffmpeg -i original.mov -f jpeg img%04d.jpg

Comprobando el tamaño de archivo de los fotogramas del vídeo original:

# ffprobe -show_frames original.mov | grep pkt_size
pkt_size=25600
pkt_size=25600
...

(Total size ~944 KB)

Pero los archivos JPEG extraídos son considerablemente más pequeños:

# ffprobe -show_frames img%04d.jpg | grep pkt_size
pkt_size=10554
pkt_size=15362
...

(Total size ~220 KB)

# du -ch *.jpg | grep total
220K    total

También verifiqué que los hashes son diferentes:

# ffmpeg -i original.mov -f framehash -

0,          0,          0,        1,   153600, 7ca21c4c396d15a4b4b4ebfbf70e9dc36ef8fb3ae12409822e34a25d0c9d5918
0,          1,          1,        1,   153600, e2ee2497513c032dab785d5ec65c9c96da47b6afa562b96a8b56b9c9169af4e0
...

# ffmpeg -i img%04d.jpg -f framehash -

0,          0,          0,        1,   153600, 09d39759af66c7d83bee706bd60d9e76e8e57925a49a8e2b07ff7a4eb811f986
0,          1,          1,        1,   153600, 96678aad212668c496944050b9d451c306edc09c5eaad0e14ce0dabbfba5ab3e
...

Entiendo que tal vez no sea posible extraerlos tan perfectamente que los hashes coincidan, pero los tamaños de los archivos están muy alejados, así que sé que ffmpeg está haciendo algún tipo de recodificación.

Respuesta1

Agregar-c copy para habilitarcopia de flujomodo:

ffmpeg -i original.mov -c copy img%04d.jpg

información relacionada