You double-click a video, Windows Media Player or Movies & TV opens, and immediately throws NS_E_CODEC_UNAVAILABLE (0XC00D1B83) — the file won't play and you're stuck. I've seen this pop up most often with MKV files from a phone camera, AVCHD clips off a Sony camcorder, or FLV downloads. The fix is usually quick, but only if you know which layer of Windows is failing.
Fix 1: Install the actual codec the file needs
Windows ships with a small set of codecs (H.264, MP3, AAC, WMV). Anything else — HEVC/H.265, VP9, AV1, ProRes, or older stuff like DivX and Xvid — isn't there by default. The error literally means "I don't have the decoder for this stream."
- Right-click the video file and choose Properties. Go to the Details tab. Look at the Video compression and Audio format fields. Write those down — that's what you need.
- Download the K-Lite Codec Pack Standard from codecguide.com. Skip the Mega pack; Standard covers 99% of real-world cases.
- Run the installer, pick Lots of stuff on the preset screen, and let it register the filters. Reboot.
- Try the file again.
If it's specifically HEVC (H.265), the cleaner route on Windows 10/11 is the Microsoft Store: search HEVC Video Extensions and install it. It's $0.99, but there's a free OEM version if you search for the exact name "HEVC Video Extensions from Device Manufacturer."
Fix 2: Clear the Media Foundation cache
Sometimes the codec is installed but Windows is loading a stale or corrupted entry from the Media Foundation cache. This happens after a Windows update or a botched codec pack uninstall.
- Close every media app. Check Task Manager for hidden
wmplayer.exeorVideo.UI.exeprocesses. - Open File Explorer and paste this into the address bar:
%LOCALAPPDATA%\Microsoft\Windows\Media Foundation\
- Delete everything inside that folder (not the folder itself). Windows rebuilds it on next launch.
- Reboot and retry the file.
Fix 3: Re-register the codec DLLs
If you've ever run a "codec cleanup" tool, it can unregister filters that other apps still depend on. Re-registering is a two-minute job.
Open Command Prompt as Administrator and run:
regsvr32 /s qcap.dll
regsvr32 /s qedit.dll
regsvr32 /s quartz.dll
regsvr32 /s mf.dll
regsvr32 /s mfplat.dll
No output means success. If you get a DllRegisterServer error, that specific DLL is missing — run sfc /scannow next to restore it from the Windows image.
Why this actually works
Here's what's happening under the hood. Windows Media Player and Movies & TV don't decode video themselves. They ask the Media Foundation (or the older DirectShow graph) for a decoder that matches the file's stream signature. The player reads the container header, sees something like V_MPEGH/ISO/HEVC, and requests an HEVC decoder. If no registered filter advertises that media type, Media Foundation returns NS_E_CODEC_UNAVAILABLE and the player bails out.
The reason Fix 1 works is that installing a codec pack registers new filter CLSIDs under HKLM\SOFTWARE\Classes\CLSID, and Media Foundation enumerates those on the next request. Fix 2 works because the cache at %LOCALAPPDATA%\Microsoft\Windows\Media Foundation\ stores the resolved filter graph from the last successful play. If a codec got updated and its CLSID changed, the cached graph points at a ghost — deleting the cache forces a fresh lookup. Fix 3 handles the case where the DLL exists on disk but its registration entries were wiped by an installer or a system cleaner.
Less common variations
Error only in one app (VLC plays fine)
This means the codec is present system-wide but that specific app can't see it. VLC bundles its own decoders, which is why it works regardless. For Windows Media Player, check Tools > Options > Player and make sure Download codecs automatically is checked. For third-party players like PotPlayer or MPC-HC, they usually have their own settings — reset to defaults and they'll pick up the K-Lite filters.
DRM-protected content
If the file is from Netflix downloads, Amazon Prime, or an Audible audiobook, the codec is there but the DRM license isn't. You'll get this same error code if the PlayReady license store is corrupted. Reset it with:
net stop Wuauserv
net stop PlayReadySvc
Then delete C:\ProgramData\Microsoft\PlayReady\ contents and restart both services. You'll need to re-download the content afterward.
Corrupt file masquerading as a codec error
A truncated download or a bad SD card copy can produce a header that claims a codec the file doesn't actually contain. Before you install anything, try opening the file in VLC. If VLC also fails with "no suitable decoder," the file is damaged, not your system. Re-download or re-copy from source.
Windows N editions
Windows 10/11 N (the EU version sold without media features) genuinely doesn't ship with Media Foundation. You have to install the Media Feature Pack from Microsoft's site. Without it, every media file throws 0XC00D1B83 no matter what codec pack you install.
Prevention
- Stick with one codec pack, not three. Conflicting packs are the #1 cause of recurring codec errors. K-Lite or CCCP — pick one and stay there.
- Don't run registry cleaners on a media PC. They love deleting filter registrations.
- Convert problem files proactively. HandBrake with the H.264 preset re-encodes anything into a format Windows handles natively. Worth it for archival content.
- Keep Windows updated. Media Foundation fixes ship through cumulative updates and rarely get backported.
- For HEVC, install the codec from the Store once. It survives feature updates and doesn't conflict with codec packs.
If you've done all four fixes and the error persists, run sfc /scannow then DISM /Online /Cleanup-Image /RestoreHealth. At that point you're dealing with a corrupted Windows component store, not a missing codec.