Repair a MOV File: What Actually Works on a Mac
MOV won't open and QuickTime throws an error? Why MOV breaks the exact same way MP4 does, and which method works depending on the damage. With honest success rates.
Jonas Becker
Codec-Research · Tech Writer · June 12, 2026 · 4min read
In short: A MOV almost always breaks at the same spot an MP4 does — the header (moov atom) is missing. QuickTime can’t repair that; it only shows “The file is not compatible.” ffmpeg helps when the structure has merely shifted; if the header is gone entirely, you need an intact reference file or a tool that can do exactly this.
MOV and MP4 are technically almost the same thing
This is the most important sentence to get out of the way first, because it saves you a lot of searching: MOV is Apple’s QuickTime container, MP4 the open standard that came out of it. Both are ISO-BMFF containers — the same atom structure, the same split between raw data (mdat) and index (moov).
In practice, that means every guide on repairing MP4 applies almost one to one to MOV as well. And the most common damage is identical — the missing moov atom.
Why QuickTime only says “not compatible”
When a camera or app records a MOV, it writes the entire video stream first and puts the index — the moov atom with all the timestamps and offsets — at the very end. If the recording cuts out before that, the stream is there but the index is missing. QuickTime finds no index, so it refuses the file outright. There’s no “Open anyway” button, because a player without an index has no idea where any single frame begins.
Typical triggers on a Mac:
- Screen recording with QuickTime ended badly (crash, force quit)
- Final Cut Pro or Premiere crashed during render/export
- Camera recording ProRes (Canon, Blackmagic, iPhone ProRes) — card full or battery dead mid-recording
- File half transferred over AirDrop or USB
Method 1: ffmpeg remux (when the header is still there)
If the MOV acts up but the basic structure is intact, a clean repack without re-encoding is often enough:
ffmpeg -i kaputt.mov -c copy -movflags faststart repariert.mov
Success rate: ~40%. Helps with shifted offsets and with files that only choke because of faststart. Does nothing when the moov atom is completely missing — in that case ffmpeg aborts with moov atom not found. That exact error is your cue for Method 2.
Method 2: Reconstruction with a reference file
If the header is gone entirely, it has to be rebuilt from the raw stream. For that you need an intact MOV from the same camera in the same mode — same resolution, same frame rate, same codec. Its structure lets you derive the missing index for the broken file.
The open-source option here is untrunc. It works with MOV too, but has the same limits as with MP4: pure CLI tool, no audio-drift correction, and often finicky about the reference when it comes to ProRes from newer cameras.
Success rate: ~70%, if the reference genuinely matches. The sticking point is exactly that reference — a 50p file used as a template for a 25p recording produces useless garbage.
Method 3: A tool that handles the whole path for you
That exact chain of “reconstruct the header + find a reference + pull the audio back in sync” is what Haven does in a single pass — with an interface, locally on your Mac, no upload. For the common camera models it ships with matching references built in, so you often don’t even need an intact file of your own. The preview is free: you see the repaired video before you pay for anything.
Which method for which damage?
| Situation | Recommendation |
|---|---|
| MOV stutters or jumps but plays | Method 1 (ffmpeg remux) |
moov atom not found in ffmpeg | Method 2 or 3 |
| QuickTime screen recording cut off | Method 1 → Method 3 |
| ProRes from a camera, battery dead | Method 3 (reference matching needed) |
| Final Cut export crashed | Method 1, a remux is often enough |
What you can skip
- Googling “repair QuickTime” — there’s no such function. Every guide claiming otherwise actually means a third-party tool.
- Renaming MOV to MP4. Changes nothing. The damage sits in the header, not in the extension.
- Re-encoding before you’ve remuxed. A remux (
-c copy) is lossless. Re-encoding costs quality — and still doesn’t repair a missing header.
Bottom line: You repair MOV the way you repair MP4, because under the hood it’s almost the same thing. Try the remux first — it’s free and lossless. If moov atom not found comes up, you need a reference reconstruction. And whatever the tool: look at the preview first, then pay.
About the author
Jonas Becker
Codec-Research · Tech Writer
A computer-science background with a focus on video containers and stream parsing. Writes Haven’s deep-dives — from HEVC NAL-unit structures to Dolby Vision RPU metadata.
Specialty · HEVC · ProRes · Container standards · NAL-unit analysis