How to fix "moov atom not found"

"moov atom not found" is the error ffmpeg, ffprobe, HandBrake, Premiere, DaVinci Resolve and many other tools print when an MP4, MOV or M4A file has lost its index. You might see it as [mov,mp4,m4a,3gp,3g2,mj2] moov atom not found followed by "Invalid data found when processing input". The video may also simply refuse to open in VLC, QuickTime or the Photos app. This page explains what the moov atom is, why it goes missing and how to rebuild it.

Open the free repair tool: it diagnoses the file and shows a free preview of the fixed video, all without uploading it.

What is the moov atom?

An MP4 file is a sequence of boxes, historically called atoms. The mdat atom holds the actual compressed audio and video frames. The moov atom is the index that makes those frames usable. It contains:

  • the list of tracks (video, audio, sometimes metadata),
  • the codec configuration, such as the H.264 avcC or HEVC hvcC parameter sets and the AAC esds audio settings,
  • the size of every frame (stsz),
  • the byte position of every chunk of frames (stco / co64),
  • timestamps (stts), frame reordering offsets (ctts) and keyframe positions (stss).

Without the moov atom a player knows that it is looking at an MP4 file, but it has no idea where frame 1 starts, how big it is or how to decode it. So it gives up.

Why the moov atom goes missing

Most recorders write the moov atom at the very end, after the last frame, because only then do they know the final size and position of everything. Anything that stops the recording abruptly leaves you with a file that has media data and no moov atom:

  • the phone, camera, drone or laptop lost power,
  • the recording app or OBS crashed,
  • the SD card was full or was pulled out,
  • the operating system killed the camera app,
  • a transfer from the camera, a cloud download or a copy to an external drive was interrupted.

A second, less common cause is the file being cut off at the end by a broken copy even though the recording finished properly. A third is the beginning of the file being overwritten, which can make the tools fail to find the index even though it is still there.

How to check that this is your problem

If you have ffmpeg installed, run ffprobe yourfile.mp4. If it prints "moov atom not found", the index is missing. FixMP4 shows the same diagnosis in plain English: it lists the boxes it found (ftyp, mdat, moov), tells you whether the media data was cut short and whether the header is damaged.

The fix: rebuild the moov atom

There are two ways to rebuild a missing moov atom.

1. Rebuild from the media data and a reference file

This is the method FixMP4 uses, and it is the one that works for real recordings. The tool:

  1. reads the codec configuration from a healthy reference video made with the same device and settings,
  2. scans the mdat atom and finds every frame: for H.264 and HEVC video it follows the length-prefixed NAL units and groups them into frames, for AAC audio it parses each frame to find exactly where it ends,
  3. decodes the picture order of each video frame so B-frames are shown in the right order,
  4. writes a brand-new moov atom with correct sizes, positions, timestamps and keyframes.

The original frames are not touched or re-encoded, so the repaired file is as sharp as the original.

2. Move an existing moov atom

Sometimes the moov atom exists but sits in the wrong place or the header in front of it is damaged. In that case nothing needs to be rebuilt: the existing index can be reused and a clean header written. FixMP4 detects this automatically and does not need a reference file for it.

What about "faststart" and qt-faststart?

You may read that ffmpeg -movflags +faststart or qt-faststart fixes this error. They do not. Those tools move an existing moov atom from the end to the beginning of a healthy file for web streaming. If the moov atom is missing, there is nothing to move. Re-muxing with ffmpeg -i broken.mp4 -c copy fixed.mp4 fails for the same reason: ffmpeg cannot read the input without its index.

Picking a good reference file

The reference must match the broken file's codec settings. Record a few seconds with the same device, same resolution, same frame rate and the same codec setting (on iPhone, "High Efficiency" = HEVC and "Most Compatible" = H.264). A clip recorded just before or after the broken one is perfect. Read how to choose a reference file for device-specific tips.

Supported files

  • MP4, MOV and M4A with H.264 or HEVC video and AAC audio.
  • iPhone and Android phone videos, GoPro, DJI, dashcams and screen recorders that write standard MP4.
  • iPhone Voice Memos and other AAC-LC audio recordings.

Not supported: ProRes, AV1, VP9, PCM or ALAC audio, fragmented MP4 and encrypted files. If the file is outside that list, the free preview will tell you before you pay anything.

Try it

  1. Open the repair tool.
  2. Drop the file that says "moov atom not found".
  3. Add a reference video from the same device.
  4. Press Repair, play the 15-second preview, then export the full file with a subscription ($9/month or $29/year, cancel anytime).

Related: repair a corrupted video, repair an MP4 file, what the moov atom is.

FixMP4 compared with other options

FeatureFixMP4Desktop repair suitesuntrunc (CLI)VLC
Runs whereBrowser, on your deviceDesktop appCommand lineDesktop 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 tooln/a
Voice Memos / AAC without a referenceUsuallyVaries✕✕
Formats beyond MP4/MOV/M4A✕✓Many (FFmpeg)Plays many

Try it on your file

Free diagnosis and 15-second preview. Nothing is uploaded.

Open the repair tool

Frequently asked questions

What does "moov atom not found" mean?

The file has lost its index (the moov atom), which lists every frame and the codec settings. The audio and video data are usually still in the file.

Can ffmpeg fix moov atom not found?

Not on its own. ffmpeg needs the index to read the file. The index has to be rebuilt first, which is what FixMP4 does.

Does faststart fix a missing moov atom?

No. faststart only moves an existing moov atom to the front of a file. It cannot create one that is missing.

Why do I need a reference video?

The codec settings were stored in the missing index. A healthy clip from the same device contains the same settings, so they can be copied from it.