h.264 코덱으로 된 녀석이라 데이터 부분만 빼내서 ffmpeg 거치면 재생이 가능할줄 알았는데 무리인가?

 

[링크 : https://video.stackexchange.com/questions/29073]

[링크 : https://codecpack.co/download/recover-mp4.html]

[링크 : https://stackoverflow.com/questions/19300350]

 

+

2022.02.14

복구 성공!

 

동일 기기에서 촬영된 정상 동영상과 복구할 동영상이 필요함

1. 정상 동영상에서 부터 무언가를 추출

C:\> recover_mp4.exe good.mp4 --analyze
/// 중략
Now run the following command to start recovering:
recover_mp4.exe corrupted_file result.h264 --noaudio --ext

Then use ffmpeg to mux the final file:
ffmpeg.exe -r 12.097 -i result.h264 -c:v copy result.mp4

 

2. 비정상 동영상으로 부터 h264 만 추출

위에서 알려준 옵션대로 처리해야 복구가 진행된다.

C:\> recover_mp4.exe corrupted_file result.h264 --noaudio --ext
// 중략
skip: 0x001C02C5 [0x       6] ???           {00 00 00 02 09 F0}
H264: 0x001C02CB [0x    15CA] -> 0x  1BF903 {41 9B A0 14} P frame
%100.000
Complete!
H264 non-IDR NAL unit size: Min 0x4, Avg 0x1289, Max 0x366C
Video=99.864
'result.h264' created, size 1838797 (99.864%)

 

3. 복구 데이터를 이용해서(아마도 h.264 스트림?) mp4로 변환

-r 뒤의 숫자는 framerate 니까 굳이 안 넣어 주면 원본의 속도로 복구 된다. (안되면 넣어주는게 좋을 듯)

C:\> ffmpeg.exe -r 30 -i result.h264 -c:v copy recovered.mp4
Input #0, h264, from 'result.h264':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 800x480, 25 fps, 25 tbr, 1200k tbn
Output #0, mp4, to 'recovered.mp4':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 800x480, q=2-31, 25 fps, 25 tbr, 15360 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0000020bce548780] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
frame=  363 fps=0.0 q=-1.0 Lsize=    1798kB time=00:00:12.06 bitrate=1220.7kbits/s speed=2.16e+03x
video:1796kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.130085%

[링크 : https://blog.naver.com/winsweet/222340783544]

[링크 : http://slydiman.me/eng/mmedia/recover_mp4.htm]

[링크 : https://restore.media/blog/how-to-fix-corrupted-mp4-files]

Posted by 구차니