Fix it now
- Drop the file
- Repair runs locally
- Download the result
Cause 1: a codec gap (the file is fine)
A video file is a container (the .mp4, .mkv, .avi or .mov wrapper) holding streams encoded with a specific codec. Windows only decodes the codecs it ships with — and the list is shorter than people expect. Out of the box Windows 11 handles H.264/AVC, VC-1, WMV and AAC/MP3; the common gaps that trigger 0xc00d5212 need a (usually free) Microsoft Store extension:
- HEVC / H.265 — needs the HEVC Video Extensions. This is the single most frequent cause: phones and modern cameras default to HEVC to save space, and a clean HEVC MP4 throws 0xc00d5212 on a stock Windows install.
- AV1 — needs the free AV1 Video Extension (YouTube/streaming re-encodes increasingly ship AV1).
- VP9 — needs VP9 Video Extensions or Web Media Extensions (common in
.webm). - Legacy AVI codecs — identified by their FourCC tag inside the stream header:
DIV3/DX50(DivX),XVID(Xvid),FMP4/MP4V(MPEG-4 ASP). These predate Windows' built-in decoders. - Older MOV codecs — ProRes (FourCC
apcn/apch/ap4h), Cinepak (cvid), Motion-JPEG (mjpg) and Apple Animation. Windows ships none of these.
The tell is decisive: the same file plays fine in VLC (which bundles its own decoders) or on another device. If it does, you have a codec gap, not damage — install the right extension or just use VLC, and you're done. No repair tool (this one included) can add a codec to your system, so rule this out first and don't try to "fix" a healthy file.
What "corrupt" means at the atom level
MP4 and QuickTime MOV are the same underlying format — a tree of atoms (also called boxes), each a 4-byte length followed by a 4-byte type. Three matter here. ftyp comes first and declares the brand (isom, mp42, qt ) — the fingerprint a player checks to know how to read the rest. mdat is the bulk of the file: the raw, encoded video and audio samples, with no structure of their own. moov is the index that makes mdat playable.
Inside moov, each track (trak → mdia → minf → stbl) carries the sample tables a decoder needs to locate every frame: stsd (which codec, and its configuration), stts (how long each sample lasts), stsc (how samples group into chunks), stsz (the size of every sample) and stco/co64 (the byte offset of every chunk — co64 is the 64-bit form for files over 4 GB). Corrupt or lose any of these and Windows can't work out what to decode, so it reports the generic 0xc00d5212 — even though the actual video bytes in mdat may be completely intact.
This is exactly what happens to an unfinalized recording. A camera, dash-cam or phone app writes ftyp and streams samples into mdat as it records, and only writes moov when you press stop. Cut the power first — a dead battery, a yanked card, a crashed app — and you get a large file with all the footage but no index at all. Nothing is "damaged"; the map was simply never written.
The fix: rebuild the index, or route to the right code
If the video also fails in VLC, opens to audio-only, shows a 0:00 length, or won't open anywhere, the container is the problem — and that's what a rebuild fixes. Drop the file above and the tool inspects the atoms in your browser, finds the surviving samples in mdat, and reconstructs the stbl tables and chunk offsets a player needs — regenerating the missing moov for an unfinalized recording, or correcting bad offsets and zero-length durations for a truncated one. It works on MP4 and MOV alike, since they share the atom structure, and produces a file that opens again.
One more check before you repair: make sure 0xc00d5212 is really the code you're seeing, because Windows has a family of near-identical media errors with different fixes.
- 0xc00d5212 — "format not supported": the codec case above, or a broken container.
- 0xc00d36c4 — "can't play; this might not be supported, the file extension might be incorrect, or the file might be corrupt": more often an extension/container mismatch. See fixing 0xc00d36c4.
- 0xc00d36e6 — Windows can't find a codec to download for the item (a pure codec-availability message, not a corruption one).
If the specific symptom is a missing or damaged moov atom — the unfinalized-recording case — the dedicated moov-atom repair page walks through it in detail.
What this can and can't fix
Can fix
- A damaged MP4/MOV that fails everywhere (including VLC) because its moov index or sample tables are broken or missing
- An unfinalized recording — ftyp and mdat present, no moov — where the stbl tables are regenerated from the surviving samples
- Wrong chunk offsets (stco/co64), bad sample sizes (stsz) or zero-length duration (stts) in the container index
- Truncated or partially-downloaded video, salvaging the frames that arrived
Can't fix
- A healthy file that only fails because Windows lacks the codec (install the extension / use VLC — nothing to repair)
- Adding a missing HEVC, AV1 or VP9 extension to your Windows install (that's not a file repair)
- The part of a truncated download that never arrived
- Files that read as 0 bytes or mostly zeros
If a repair fails, we tell you why (missing data versus broken structure), and you are never charged for a failed repair.