MP4 file checker: find out if your video is corrupted
This free checker reads the internal structure of an MP4, MOV, M4A, M4V or 3GP file in your browser and tells you whether it is intact, damaged but repairable, or empty. It looks for the boxes every MP4 needs (ftyp, moov, mdat), checks whether the file was cut off, and lists the codecs, resolution and duration stored in the index. Nothing is uploaded; the file never leaves your device. Use it before you buy any repair software: many "corrupted" videos are healthy files that simply use a codec your player lacks.
How to read the result
- Structure looks healthy: the index (moov) is present and readable. If the video still will not play, the cause is almost always the player. Try VLC; see file is not supported and MP4 won't play on Windows.
- Damaged: likely repairable: media data is present but the index is missing, or the box structure breaks partway through. This is what happens when a camera, phone or app stops recording abruptly. The repair tool rebuilds the index.
- No recoverable data: the file is 0 bytes or its first 64 KB are all zeros. The data was never written; see MP4 is 0 bytes.
- Not a readable MP4/MOV: no MP4 structure at the start. The file may be a different format with the wrong extension, encrypted, or overwritten.
What the checker actually inspects
An MP4 file is a sequence of boxes (also called atoms). Each box starts with a 4-byte size and a 4-byte type. The checker walks these boxes from the start of the file, reading only the 16-byte headers, so even multi-gigabyte files are checked in a second or two.
| Box | Role | If missing |
|---|---|---|
| ftyp | File type and brand (isom, mp42, qt, M4A) | Some players refuse the file |
| moov | The index: tracks, codecs, frame sizes and positions | File will not open, or shows 0:00 |
| mdat | The audio and video data itself | Nothing to recover |
| moof | Fragments in a fragmented MP4 | Normal for some recorders |
| free / skip / wide | Padding | Harmless |
When a moov box is present, the checker parses it to read the movie duration, each track's codec (avc1 for H.264, hvc1 or hev1 for HEVC, mp4a for AAC audio) and the video resolution.
Typical results and what to do
mdat present, no moov. The recording was interrupted before the camera wrote the index. Very common after a dead battery, a full card, a crash in OBS or Zoom, or a dashcam losing power. Repair by rebuilding the index from a short healthy clip recorded on the same device with the same settings. See fix moov atom not found.
A box is larger than the remaining file. The file was truncated: an interrupted copy, a download that stopped, or a recording that ended mid-write. Copy the file again from the original source first; if the source is gone, the part that exists can usually be repaired.
Structure breaks at a byte offset. Something after that point is not valid MP4. Sometimes the end of the file was overwritten or filled with zeros by the card. Data up to that point can often be saved.
moov at the end of the file. Normal for camera recordings. It only matters for web playback; you can move it to the front with ffmpeg -i in.mp4 -c copy -movflags +faststart out.mp4.
Healthy structure, HEVC video. If the file will not play on Windows, install the HEVC Video Extensions or use VLC.
Checking a file on the command line instead
If you prefer FFmpeg:
`` ffprobe -v error -show_entries format=duration:stream=codec_name,width,height -of default=nw=1 video.mp4 ``
A healthy file prints a duration and its streams. A file without an index prints "moov atom not found". To decode every frame and list errors (slower, but finds damage inside the media data):
`` ffmpeg -v error -i video.mp4 -f null - ``
No output means every frame decoded cleanly.
Limits of a structure check
The checker verifies the container, not every frame. A file can have a perfect index and still contain a damaged region in the middle (green blocks or a freeze at one point); the full FFmpeg decode above finds that. Conversely, files from some professional cameras use structures this checker does not fully understand, so treat "not readable" as a prompt to check with FFmpeg rather than a final verdict.
Why check before repairing
Repair tools work by rebuilding the index from the raw media data. If the index is already there and intact, there is nothing to rebuild, and a "repair" will at best return the same file. Checking first avoids wasted time and money. It also tells you whether you need a reference file: an index rebuild for H.264 or HEVC video almost always needs one healthy clip from the same camera and settings, so it is worth finding one before you start.
FixMP4 compared with other options
| Feature | FixMP4 | Desktop repair suites | untrunc (CLI) | VLC |
|---|---|---|---|---|
| Runs where | Browser, on your device | Desktop app | Command line | Desktop player |
| Keeps your file on your device | ✓ | ✓ | ✓ | ✓ |
| Nothing to install | ✓ | ✕ | ✕ | ✕ |
| Rebuilds a missing MP4/MOV index | ✓ | ✓ | ✓ | ✕ |
| Preview of your own repaired file before paying | ✓ | Trial (varies) | Free tool | n/a |
| Voice Memos / AAC without a reference | Usually | Varies | ✕ | ✕ |
| Formats beyond MP4/MOV/M4A | ✕ | ✓ | Many (FFmpeg) | Plays many |
Frequently asked questions
Is the MP4 checker free?
Yes. The check is free, has no file size limit set by us, and runs entirely in your browser.
Is my video uploaded?
No. The checker reads the file structure locally with JavaScript. Nothing leaves your device.
What does 'moov atom missing' mean?
The moov box is the file's index. Without it, players cannot find the frames. It is the most common damage after an interrupted recording and it is usually repairable.
The checker says the file is healthy but it still will not play. Why?
The container is fine, so the problem is most likely a codec your player does not support, such as HEVC on Windows. Try VLC.
Can it check MKV or AVI files?
No. It understands the MP4 family only: MP4, MOV, M4A, M4V and 3GP.