How to check if a video file is corrupted (ffprobe, MediaInfo, VLC)

By the FixMP4 engineering team · · 6 min read

Before you repair, convert or delete a video, it helps to know exactly what state it is in. Here are four checks, from the quickest to the most thorough, and how to read the results.

1. VLC (30 seconds)

Open the file in VLC. If it plays from start to end and seeking works, the file is structurally healthy; any problem elsewhere is codec support. Tools, Codec Information shows the container's codecs, resolution and frame rate, which is exactly what a reference file must match.

If VLC shows nothing, plays only audio, or shows 0:00, move on.

2. MediaInfo (1 minute)

MediaInfo (free for Windows, Mac and Linux) reads the container without decoding. It reports:

  • Format: MPEG-4 or QuickTime for healthy MP4/MOV files.
  • Duration and bit rate per stream.
  • Codec and profile (AVC High, HEVC Main 10, AAC LC).

A large file where MediaInfo shows only the format with no streams and no duration is a strong sign of a missing index.

3. ffprobe (1 minute)

ffprobe file.mp4 prints the container and streams. Typical outcomes:

OutputMeaning
Streams listed with a durationIndex present and readable
moov atom not found, Invalid data found when processing inputIndex missing; see moov atom not found
partial fileIndex present, data truncated (often an incomplete copy)
Invalid data, no moov message, file named .mp4Possibly another format with a wrong extension; see "invalid data found"

Add -v trace to see each box as ffprobe parses it, which shows whether there is an ftyp, an mdat and a moov, and where the file ends.

4. Full decode test (minutes)

ffmpeg -v error -i file.mp4 -f null -

This decodes every frame and discards the output, printing only errors. No output means the decoder found no problems. Errors such as "error while decoding MB" or "Invalid NAL unit size" indicate damaged data at specific points, which shows up as glitches during playback. Add -xerror to stop at the first error.

Reading the combination

  • Plays in VLC, ffmpeg decode clean: healthy file. Problems are codec support in another app.
  • No moov atom: cut-off recording; frames usually intact. Rebuild the index with the repair tool.
  • Index present, decode errors: damaged data in places; the file plays with glitches. Re-copy from the original if possible.
  • 0 bytes or all zeros: no data; see MP4 is 0 bytes.

Checking many files

For a folder of clips, a shell loop with ffprobe -v error -show_entries format=duration prints the duration of each file, or an error for broken ones. That is a quick way to find the broken clips on a full card after a shoot.

Free diagnosis in the browser

If you prefer not to use the command line, drop the file into the FixMP4 repair tool. It analyses the structure locally, reports what it found (container, codecs, whether the index is missing, how many frames it can recover) and shows a free preview if repair is possible. Nothing is uploaded.

Checksums for copies

To confirm a copy matches the original, compare SHA-256 checksums; see video corrupted after transfer.

Frequently asked questions

How do I check a video for errors with FFmpeg?

Run ffmpeg -v error -i file.mp4 -f null - which decodes the whole file and prints only errors. No output means no decoding errors.

What does "moov atom not found" from ffprobe mean?

The MP4 or MOV index is missing, usually because recording stopped abruptly. The frames are often intact and the index can be rebuilt.

Is there a way without the command line?

Yes. VLC's codec information and MediaInfo show whether a file is readable, and the FixMP4 tool diagnoses a file for free.

Have a broken recording right now?

Diagnose it and hear or watch a free repaired preview. Nothing is uploaded.

Open the repair tool
  • ffprobe
  • FFmpeg
  • MediaInfo
  • diagnosis
  • integrity