비디오 스트림이 일련의 JPEG인 오래된 디지털 카메라의 MOV 비디오 파일이 있습니다. JPEG를 다시 인코딩하지 않고(또는 최소한 원본에 최대한 가깝게) 추출하려고 하지만 ffmpeg를 사용하면 추출된 JPEG가 예상보다 작습니다.
작업에 더 좋은 도구가 있다면 ffmpeg 이외의 다른 도구를 사용해도 됩니다.
프레임 분할을 시도하는 데 사용한 명령은 다음과 같습니다.
ffmpeg -i original.mov -f jpeg img%04d.jpg
원본 비디오의 프레임 파일 크기 확인:
# ffprobe -show_frames original.mov | grep pkt_size
pkt_size=25600
pkt_size=25600
...
(Total size ~944 KB)
그러나 추출된 JPEG는 상당히 작습니다.
# 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
또한 해시가 다른지 확인했습니다.
# 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
...
해시가 일치하도록 완벽하게 추출하는 것이 불가능할 수도 있다는 것을 이해하지만 파일 크기가 너무 커서 ffmpeg가 일종의 재엔코딩을 수행하고 있다는 것을 알고 있습니다.
답변1
-c copy
활성화하려면 추가하세요 .스트림 복사방법:
ffmpeg -i original.mov -c copy img%04d.jpg