How an MP4 gets corrupted
Some kinds of damage leave footage to repair, and some leave nothing. Find yours in the table.
| What happened | What's left in the file | Repairable here |
|---|---|---|
| Battery died, app or computer crashed, card pulled or power cut during recording | The frames written before the cut, no index | Yes |
| Copy or transfer stopped halfway | Part of the file | Copy it again from the source |
| File deleted | Nothing in the folder | No: undelete it with file-recovery software first |
| Card formatted and reused | New data over the old frames | No |
| File shows 0 bytes or holds only zeros | No footage | No |
| Video hidden by a vault or "hide video" app | Encrypted data | No |
| Partial download of an encrypted file | Encrypted fragments | No |
| AVI, MKV, TS or WebM file | Footage in a container the tool can't open | Not yet |
Two signs point to the first row. The file has a size in megabytes or gigabytes that fits the length of the recording, and no player opens it. If you have ffmpeg, ffprobe on the file prints moov atom not found. On Windows, Media Player and Movies & TV show error 0xc00d36c4.
An interrupted recording keeps its frames
An MP4 keeps its compressed frames in one part of the file, the mdat box, and an index in another, the moov box. The index lists the size, position and timing of every frame, plus the codec settings a player needs to decode them. Cameras write the index last, when you press stop, because they can't know those sizes and positions in advance.
An interruption leaves the frames written before the cut and no index. Players can't find a single frame without one: ffmpeg reports moov atom not found, and Windows shows error 0xc00d36c4. A repair scans the raw footage, finds each H.264 or H.265 frame and each AAC packet, measures them and writes a new index.
A popular tip says to rename the file to .avi and let VLC's "Damaged or incomplete AVI file" option fix it. We tried it on a cut-off MP4 with that option set to Always fix. VLC's AVI reader found no AVI header and skipped the file, and VLC played nothing.
Repair an MP4 step by step
- Copy the broken file from the camera card to your computer. Keep the original until you have a repaired file that plays.
- Drop the copy into the checker on this page. It runs the engine of the Video Repair apps for Android and Windows, compiled to WebAssembly, and reads the file from your own disk. The video never uploads.
- Read the result of the free check. It tells you whether the tool can rebuild the footage.
- Add a reference clip if the tool asks for one.
- Watch the free 5-second preview, played at reduced quality with a watermark.
- Download the full video with a plan: one video, 3 months or a year, and you can cancel anytime. If the repaired video doesn't play, you get a refund.
The check and the preview are free, so if the tool says it can't rebuild your file, you haven't paid anything. The same steps work for MOV, M4V and 3GP files with H.264 or H.265 video and AAC sound.
When the tool asks for a reference clip
Some cameras repeat their video settings inside the footage, and the tool reads them there. Others keep them only in the index the camera never wrote, next to the sound settings. For those files the tool asks for a reference clip: any healthy video recorded by the same camera at the same settings.
Same settings means the same resolution, frame rate and codec, plus options such as HDR. On an iPhone, the codec choice sits under Settings > Camera > Formats: High Efficiency records HEVC and Most Compatible records H.264. An older clip works if you haven't changed those options since. If you have none, record a few seconds now with the camera set the way it was. The reference clip also brings the sound back when the broken file needs it.
Original quality, byte for byte
The repair copies your camera's compressed video and sound into the new file unchanged. It decodes nothing and compresses nothing a second time. The only new part is the index around the data.
Re-encoding means decoding every frame and compressing it again, and each round of compression throws away detail. A byte-for-byte rebuild skips that round. You keep the resolution, frame rate and bitrate your camera recorded, and each frame holds the same bytes the camera wrote.
