recover_mp4 v1.92 (C) 2011-2017 Dmitry Vasilyev http://slydiman.me This utility can recover video and audio streams from unfinalized MP4/MOV/3GP files without (or empty) header. You may got the unfinalized file in case of damaging camcorder during recording or such. Supported video formats: AVC/H.264, HEVC/H.265 Supported audio formats: AAC, ADPCM (Intel), MP3, PCM (LE, BE, float), RAW Usage: recover_mp4 in_good_similar.mp4 --analyze recover_mp4 in_corrupted.mp4 {out_video.h264 | out_video.hevc | --novideo} {out_audio.aac | out_audio.wav | out_audio.mp3 | out_audio.raw | --noaudio} [options] Options: --start read from position (ignore mdat atom) --end end position (ignore mdat atom). Specify 0 for EOF --avcidrmax ignore AVC NAL units (IDR) with the size above than bytes --avcxmax ignore AVC NAL units (non IDR) with the size above than bytes --aaclong --aacmin --pcmmin --pcmfix --verbose --gopro4 use Ambarella templates and detect GoPro4 specific data (default for MP4 files) --ambarella use Ambarella templates (ignore GoPro4 specific data) --lav use Lav/ffmpeg templates --mainconcept use Mainconcept templates --novatek use car DVR templates based on Novatek (DV turnkey, Street Guardian, etc.) --qt use QuickTime templates (default for MOV files) --iphone4 use iPhone4 templates --eos use Canon EOS 5D Mark II, 7D, 550D templates --eos3 use Canon EOS 5D Mark III, 7D Mark II, 100D templates --eos4 use Canon EOS 5D Mark IV templates --canon use Canon SX, EOS 80D templates --vmix use vMix templates --wowza use Wowza templates --blackmagic use BlackMagic templates --avermedia use AVerMedia Live Gamer Portable C875 templates --lumia use Lumia templates --panasonic use Panasonic DMC-G7, DMC-GX80, DMC-G85, DMC-GH4, DC-GH5, HC-X1000 templates --sony use SONY A7S [Mark II], AX1E, NX5R, A6000, HDR-CX405, HDR-CX625 templates --drim use DRIMeIII templates (Samsung NX1000 camcorder) --drim5 use DRIMeV HEVC/H.265 templates (Samsung NX1/NX500 camcorder) --tomtom use TomTom Bandit Action Camera templates --icat use iCatch templates --cgo3 use cgo3 templates --dji.avc use DJI.AVC Phantom (H.264) templates --dji.hvc use DJI.HVC Phantom (H.265) templates --hevc use generic HEVC/H.265 templates --ext use generic templates for any other camcorder or smartphone, Open Broadcaster Software, etc. Step 1: Use any good previous file with the same resolution and bitrate to generate the header files, for example >recover_mp4.exe good.mp4 --analyze It will create files 'video.hdr' and 'audio.hdr' in the current directory and print instructions (ffmpeg options, etc.). Step 2: Recover streams from the corrupted file, for example >recover_mp4.exe bad.mp4 recovered.h264 recovered.aac Note: Files 'video.hdr' and 'audio.hdr' must be exist. Probably you need to add a specific option (look at instructions from step 1). Step 3: Use any other utility (Yamb or ffmpeg for example) to recreate the MP4/MOV file from the streams (recovered.h264 and recovered.aac). >ffmpeg.exe -r 30 -i recovered.h264 -i recovered.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy recovered.mp4 Note MP4 does not support PCM sound, you must create MOV in this case: >ffmpeg.exe -r 30 -i recovered.h264 -i recovered.wav -c:v copy -c:a copy recovered.mov In case of ADPCM audio: >ffmpeg -r 30 -i recovered.h264 -i recovered.wav -c:v copy -c:a adpcm_ima_wav recovered.mov Note: 30 is FPS in these examples. Specify your correct value. In case of 29.97 I suggest to specify 30000/1001 instead.