Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Repairing a Corrupt MP4 Video File [closed]

Tags:

video

mp4

corrupt

I have an MP4 video that I took with a Flip camera. The camera froze up while I was stopping the recorder and now the video appears corrupt. I can still download it off the camera, but it won’t play. Now, the video is still over 2 Gigabytes in size, so I think the data is still there.

So, I scoured the web looking for solutions, and I found paid services and software that claim to be able to fix such a thing. One diagnostic service (“Treasured”), showed me stills from the video, confirming my believe that there probably is something salvageable there. Unfortunately, though, the price requested to fix it is not in the budget. It requires more of a homespun solution.

Does anyone know how to fix a corrupted MP4? Or of a service or software that is not too much money?

like image 381
Steve C. Avatar asked Apr 21 '14 17:04

Steve C.


People also ask

Can you fix corrupted MP4 files?

To help repair a corrupted MP4 video, you can try these three options: VLC Player is the best media player for most operating systems; it stands strong as an excellent example of free MP4 repair software. Video Repair from Grau GmbH for Windows, though it does include a paywall.

How can I open a corrupted video file?

To do this, you can use a video file recovery software such as Ontrack EasyRecovery. Ontrack EasyRecovery has many advantages. It is easy to use and is designed for all user profiles, even those with minimal computer experience. This powerful tool will allow you to recover your corrupted file in just a few clicks.


2 Answers

give this a shot Official tool Link This utility can recover H.264/AVC stream from unfinalized MP4/MOV files without (or empty) header. You may got the unfinalized file in case of damaging camcorder during recording or such. This utility has been tested with files recorded by GoPro, but it may work with other camcorders too.

Usage:

recover_mp4_to_h264 in_good_similar.mp4 --analyze recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [out_audio.aac | out_audio.wav | out_audio.mp3] [] recover_mp4_to_h264 in_corrupted.mp4 out_video.h264 [--aac | --pcm | --mp3] [] 

Supported recorders:

Default is Ambarella (used in GoPro, etc.) Specify --eos in case of Canon EOS Specify --apple in case of some Apple software encoder Specify --htc in case of HTC smartphone Specify --motorola in case of Motorola smartphone Specify --samsung in case of Samsung camcorder 

Step 1: Use any good previous file with the same resolution and bitrate to generate the AVC configuration record, for example

recover_mp4_to_h264.exe GOPR0346.MP4 --analyze

Note: It will create the file 'avcc.hdr' in the current directory.

Step 2: Recover H.264 stream from the corrupted file, for example

recover_mp4_to_h264.exe GOPR0347.MP4 GOPR0347.h264 GOPR0347.aac

Note: The file 'avcc.hdr' must be exist. Note: Specify --pcm or the WAV file name in case of recovering MOV file written by Canon EOS.

Step 3: Use any other utility (Yamb or ffmpeg for example) to recreate the MP4/MOV file from the H.264 stream (GOPR0347.h264). Note MP4 does not support PCM sound, you must create MOV in this case:

ffmpeg.exe -r 30 -i recovered.h264 -i recovered.wav -vcodec copy -acodec copy result.mov

Edit: add official tool link. thanks The Compiler

Old Link: Mega Link

like image 65
Andrew Avatar answered Sep 23 '22 17:09

Andrew


SUPERB!

I had my android phone crash whilst i was filming. Luckily it's rooted so i could retrieve the temporary file from the Camera folder.

It was easy to recover the material using the advice here, it got me well on the way. But there were a few difficulties to conquer concerning the merge of the files...

The recovered audio had a higher bitrate than audio from 'good' files. 128k instead of 96k. So I could merge the files back into a working movie, but audio would go too fast and lose sync. So it needed conversion.

Also ffmpeg couldn't/wouldn't copy the aac stream, so it needed to convert the stream with a filter;aac_adtstoasc

In my case i had to do:

recover_mp4_to_h264.exe good.MP4 --avcc

recover_mp4_to_h264.exe bad.MP4 bad.h264 bad.aac --android

ffmpeg -i bad.aac -acodec libvo_aacenc -b:a 96k fixed.aac

ffmpeg -r 30 -i bad.h264 -i fixed.aac -vcodec copy -acodec copy -bsf:a aac_adtstoasc fixed.mp4

Success!

like image 41
user4938055 Avatar answered Sep 23 '22 17:09

user4938055