Fix a Corrupted MP4 File
MP4 is the container almost everything records into: phones, drones, action cameras, dashcams, screen recorders, DVRs. That ubiquity is why "mp4 file won't play" is such a common emergency. Most corrupted MP4s still contain every frame you shot. What broke is the index that tells a player where those frames are.
How an MP4 is built, and why it matters
An MP4 has three main blocks:
[ftyp] file type declaration (a few dozen bytes)
[mdat] the actual video and audio frames (nearly all of the file)
[moov] the index: codec settings, timing, where every frame sits in mdat
Cameras and phones write mdat continuously while you record and keep the bookkeeping for moov in memory. The moov atom itself is written only when the recording stops cleanly. Apple's file-format documentation defines moov as the atom holding the information that describes the movie's data. Player behaviour follows from that. No moov, no playback, even with every frame present.
That design is efficient, and it is also the single biggest reason MP4s corrupt.
The usual ways it goes wrong
- The recording is interrupted. Battery dies, the camera powers off, the app crashes, storage fills up, someone pulls the SD card while the light is still blinking.
mdatis full of frames;moovnever got written. - The transfer is interrupted. A copy, download, AirDrop or sync stops partway. You now have a truncated file, and if the
moovsat at the end (the normal position for recordings), it is gone. - The file was carved back by data-recovery software. Undelete tools often restore the bytes but not a coherent structure, so the "recovered" MP4 refuses to play.
- Card or filesystem damage. Rarer, and it usually shows up as a file with the right name but the wrong size.
Rule out the cheap explanations first
Corruption is not always the answer, and the checks below cost nothing.
- Try VLC. It is far more tolerant than Windows Media Player, QuickTime or Photos. If VLC plays the file, the file is fine and you have a player or codec problem, not a corruption problem.
- Go back to the source. If this copy came from a phone, a card or a cloud service, the original may still be intact there. Re-download before repairing a partial copy.
- Check the size. A 0 KB file contains nothing. No tool recovers data that was never written.
- Run ffprobe if you have FFmpeg. "moov atom not found" or "Invalid data found when processing input" confirms real corruption. We keep separate pages on both: moov atom not found and invalid data found.
- Try untrunc for truncation. It is free, open source, and often does the job on interrupted recordings, though it needs an intact video shot on the same camera at the same settings, since the repair borrows that file's structure. If you cannot produce a second clip, it has nothing to copy from.
What our engine does with a broken MP4
No reference clip. The engine scans the mdat payload byte by byte, finds frame boundaries from the codec's own markers (NAL start codes for H.264 and HEVC), reads the codec parameters from the frames it observes, and rebuilds a fresh moov around them: sample tables, chunk offsets, timing, the lot. Audio is reconstructed alongside, AAC from phones and drones, PCM from cameras. Files over 4 GB get 64-bit offsets, so long recordings play past the point where naive rebuilds break.
Your frames are never re-encoded. The output is your original video data in a container players accept.
What you do
- Upload the MP4. Up to 50 GB.
- About a minute later you get a free 5-second preview with picture and sound.
- Pay from $5 only if the preview shows your footage. If nothing works, you pay nothing.
FAQ
A data-recovery program restored my MP4 but it won't play. Can this be fixed? Often, yes. Carved files typically have intact frame data with missing or scrambled structure, which is exactly the case the engine rebuilds. Upload it and the preview will tell you within a minute or so.
The video plays for a few seconds, then freezes. What does that mean?
That usually means a partial index: the file was cut off mid-transfer and the surviving moov only describes the beginning. The frames past the freeze point are usually still in the file and recoverable.
My MP4 shows 0 bytes. Is there any hope? No. A 0-byte file means the camera or the copy never wrote data. Recovery needs bytes to work with.
Do I need the camera, or a sample video from it? No. The rebuild reads everything it needs from the broken file itself. That is the main practical difference from untrunc.
Is my footage private? The file goes to a server in France over HTTPS, is auto-deleted after 48 hours, and is never shared or used to train anything.
Related
- MP4 file truncated
- GoPro Hero 12 truncated file
- DJI Mavic 3 corrupted MP4
- How the recovery engine works
無料プレビュー · 義務はありません
動画を復元する準備はできましたか?
ファイルをアップロードしてください。約1分で5秒間の無料プレビューをご覧いただけます。プレビューが正しいと思える場合にのみお支払いください。
動画をアップロード →