ffmpeg teilt JPEG-kodiertes MOV-Video in Frames auf, ohne es neu zu kodieren

ffmpeg teilt JPEG-kodiertes MOV-Video in Frames auf, ohne es neu zu kodieren

Ich habe eine MOV-Videodatei von einer alten Digitalkamera, bei der der Videostream nur aus einer Reihe von JPEGs besteht. Ich versuche, diese JPEGs zu extrahieren, ohne sie neu zu kodieren (oder zumindest so nah wie möglich an die Originale heranzukommen), aber mit ffmpeg sind die extrahierten JPEGs kleiner als erwartet.

Ich bin offen dafür, etwas anderes als ffmpeg zu verwenden, wenn es dafür ein besseres Tool gibt.

Befehl, den ich verwendet habe, um zu versuchen, die Frames zu teilen:

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

Überprüfen der Dateigröße der Frames im Originalvideo:

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

(Total size ~944 KB)

Allerdings sind die extrahierten JPEGs deutlich kleiner:

# 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

Außerdem wurde überprüft, dass die Hashes unterschiedlich sind:

# 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
...

Mir ist bewusst, dass es möglicherweise nicht möglich ist, sie so perfekt zu extrahieren, dass die Hashes übereinstimmen, aber die Dateigrößen weichen stark voneinander ab, sodass ich weiß, dass ffmpeg eine Art Neukodierung durchführt.

Antwort1

-c copyZum Aktivieren hinzufügenStreamkopieModus:

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

verwandte Informationen