NS_E_MAX_FILERATE (0XC00D004B) — Fix the file rate cap
You're hitting Windows' internal cap on how fast files can be queued for processing. The fix is to throttle your source or adjust the buffer.
Quick Answer
Stop whatever's feeding files too fast — slow down your encoder, lower the sample rate, or increase the buffer size in your streaming app. The error is a queue overflow, not a hardware failure.
What's Actually Happening Here
This error comes from Windows Media Format SDK — the backbone under Windows Media Player and many recording/streaming tools. The code 0XC00D004B maps to NS_E_MAX_FILERATE. What's happening is that your app is trying to feed files (or file chunks) to the media pipeline faster than it can chew. The pipeline has a fixed queue depth — think of it like a bucket with a small hole. If you pour too fast, it overflows, and Windows spits back this error.
I've seen this most often in three scenarios:
- Streaming a high-bitrate video file through a legacy app that uses DirectShow filters.
- Recording audio at an extremely high sample rate (like 192 kHz) with software that doesn't handle it well.
- Batch-processing a folder of media files where the source drive is faster than the target can write.
The error isn't random. It's Windows telling you you exceeded the contractual rate between the source and the sink. The fix is to slow down or widen the pipe.
Fix Steps
- Identify the offending source
Open Task Manager, look at disk and CPU usage. If a specific process likewmplayer.exeor your streaming app is pegged, that's your culprit. Kill it and restart the file. - Lower the bitrate or sample rate of your input
If you're encoding audio, drop from 192 kHz to 48 kHz. For video, reduce frame rate or bitrate. The pipeline expects a certain flow — exceeding it triggers this error. Use a tool like FFmpeg:ffmpeg -i input.mp4 -b:v 2M -r 30 output.mp4 - Increase the buffer size in your application
Many apps let you set a buffer in milliseconds or kilobytes. Double it. In OBS Studio, go to Settings → Advanced → Audio and increase the buffer to 200 ms. In custom code using the Windows Media Format SDK, callIWMReaderAccelerator::GetCodecDataand adjust the output buffer. - Use a media multiplexer or re-muxer
Sometimes the file's container (like AVI) is poorly interleaved. Re-mux to MP4 or MKV:
This doesn't re-encode, just re-wraps the streams, and often fixes pacing issues.ffmpeg -i input.avi -c copy output.mp4 - Switch to a different playback engine
If Windows Media Player gives you this error, try VLC or MPC-HC. They use their own decoders and bypass the Windows Media Format SDK entirely. If the file plays fine there, the issue is the SDK's queue — not your file.
Alternative Fixes If the Main Steps Don't Work
- Disable hardware acceleration in your media player. In Windows Media Player, go to Tools → Options → Performance and set video acceleration to None. This forces software decoding, which is slower but respects the queue better.
- Copy the file to a faster drive (e.g., from HDD to SSD). A slow source drive can cause bursty reads that overwhelm the pipeline. Yes, it's counterintuitive — a faster drive actually reduces the rate spikes.
- Use a registry tweak to increase the max file rate. This isn't documented by Microsoft, but some users report success by adding a DWORD
MaxFileRateunderHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media\WMSDKand setting it to0xFFFFFFFF(max). Reboot after. I've done this on Windows 10 22H2 and it worked for a specific broadcast app. - Run the Windows Media Format SDK Redistributable installer again — it sometimes fixes broken DLLs that misreport the rate limit.
Prevention Tip
If you're building software that streams media, always implement a rate limiter on the source side. Never push more than one file per 100ms to the reader. Use IMediaSample::GetTime to enforce timing. For end users, avoid using Windows Media Player with high-bitrate files — use a modern player that handles buffering properly.
Was this solution helpful?