Fix NS_E_WMP_FILE_NO_DURATION (0XC00D10D9) in Windows Media Player
Windows Media Player can't play a file because it can't read its duration — usually a codec issue or a corrupt file. Here's how to fix it.
Quick answer: Install a proper codec pack like K-Lite Standard, or re-encode the file to a format WMP natively supports (WMV or MP4 with baseline codecs).
You're trying to play a video in Windows Media Player and it gives you NS_E_WMP_FILE_NO_DURATION (0XC00D10D9). What's actually happening here is that WMP opens the file, looks for the metadata that tells it how long the file is — the duration header — and can't find it. That means WMP has no idea how to render the timeline, so it bails. This almost always means one of two things: either the file is corrupt or incomplete (the duration header got stripped or never written), or your system lacks the codec that can decode the file's container format. The error message is vague, but the root cause is almost always a codec mismatch.
Step-by-step fix
- Install a proper codec pack. Don't rely on WMP's built-in codecs — they're intentionally limited for licensing reasons. Download and install K-Lite Codec Pack Standard (from codecguide.com). During install, choose 'Lots of stuff' profile. This adds decoders for MKV, FLV, MOV, and modern H.264/H.265 containers that WMP can't handle on its own.
- Test the file again. After installing the pack, restart WMP and try playing the file. If it works, you're done. The codec pack installs a DirectShow filter that lets WMP parse the container correctly.
- If that fails, re-encode the file. The file itself might be malformed — maybe it was downloaded partially, or a conversion tool wrote a bad header. Use HandBrake (free, open source) to re-encode it to a WMP-friendly format:
- Open HandBrake, load the file.
- Under 'Presets', pick 'Fast 1080p30' or 'Fast 720p30'.
- Change the container to MP4 and the video codec to H.264 (x264).
- Hit 'Start Encode'. This will strip any corrupt headers and write fresh ones.
- If it's still broken, check file integrity. Some video files download with missing chunks. Use ffprobe (part of FFmpeg) to verify:
If it returnsffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 "yourfile.mp4"N/Aor an error, the file is corrupt beyond repair. Re-download it from the source. - Last resort: disable Windows Media Player's shell extension. In rare cases, a third-party shell extension (like from Dropbox or a video editor) hooks into WMP and breaks duration detection. Run
regsvr32 /u wmpshell.dllin an admin Command Prompt. This unhooks WMP from the file explorer preview. Test the file — if it works now, you've got a conflict. Re-enable later withregsvr32 wmpshell.dllafter uninstalling the offending software.
Alternative fixes if the main steps fail
- Try a different player. VLC Media Player ignores duration headers entirely — it just plays the file stream. If VLC works, the file is fine; WMP's parser is too strict. Stick with VLC for that file.
- Use the classic Windows Media Player. On Windows 10 and 11, there are two WMP versions: the UWP 'Media Player' app and the classic 'Windows Media Player Legacy'. The legacy one handles codecs differently. Open 'Control Panel' → 'Programs' → 'Turn Windows features on or off' → enable 'Media Features' → 'Windows Media Player Legacy'. Try the file there.
- Reset WMP library. A corrupted library database can cause this. Close WMP, delete the
%LOCALAPPDATA%\Microsoft\Media Playerfolder (yes, all of it), then restart WMP. It will rebuild the library from scratch.
Prevention tips
- Avoid streaming unfinished downloads. If you open a partially downloaded file, WMP sees no duration and flags it. Always wait for the download to finish.
- Use proper containers. WMP hates MKV, FLV, and WebM. Convert your personal video library to MP4 (H.264 + AAC) — it's the most compatible format across devices and players.
- Keep your codec pack updated. K-Lite updates about once a month. Run its update checker every few months to avoid bit-rot in codec support.
- If you edit videos, always finalize your timeline before export. Some editors (looking at you, older versions of Shotcut) write incomplete duration headers on certain render presets. Always check the exported file in ffprobe.
Was this solution helpful?