I have a MOV video file from an old digital camera where the video stream is just a series of JPEGs. I'm trying to extract those JPEGs without reencoding them (or at least come as close to the originals as possible) however using ffmpeg the extracted JPEGs are smaller than expected.
I'm open to using something other than ffmpeg if there's a better tool for the job.
Command I used to try to split the frames:
ffmpeg -i original.mov -f jpeg img%04d.jpg
Checking file size of the frames in the original video:
# ffprobe -show_frames original.mov | grep pkt_size
pkt_size=25600
pkt_size=25600
...
(Total size ~944 KB)
But the extracted JPEGs are considerably smaller:
# 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
Also verified that the hashes are different:
# 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
...
I understand it might not be possible to extract them so perfectly that the hashes match, but the file sizes are way off so I know ffmpeg is doing some kind of reenecoding.