I know that error is annoying—you're just trying to speed up a live broadcast and Windows throws that cryptic code at you. Let's get it sorted.
The Quick Fix
Time compression only works on recorded content, not live sessions. So the real fix is to record the broadcast first, then apply time compression to the file.
- Stop the live broadcast or session in whatever app you're using (Windows Media Encoder, Expression Encoder, or a custom app that uses the Windows Media SDK).
- Save the broadcast stream as a local file. In Windows Media Encoder, that means setting up a publishing point with a file archive enabled—go to Properties > Archive and check Archive to file.
- After the broadcast ends, open that recorded file in Windows Media Player or your editing tool.
- Now you can apply time compression (like the "Play Speed" setting) without hitting the error.
After you stop the broadcast and open the file, you should see the error disappear because you're no longer dealing with a real-time session.
Why That Works
The error comes from the Windows Media SDK's rule: you can't change the playback rate on a live source. When you have a broadcast session, the data comes in at a fixed rate—changing that rate would break the real-time delivery. The SDK returns NS_E_NO_REALTIME_TIMECOMPRESSION (0xC00D1B86) to stop you from doing something that just isn't supported.
Recording the broadcast turns it into a file, which the SDK treats as a non-real-time source. Once it's a file, time compression is allowed because the playback rate is under your control.
Less Common Variations
Sometimes the same error pops up in different contexts. Here are a few I've seen in the field:
1. Windows Media Player with a Network Stream
If you're opening a live stream URL (like mms:// or rtsp://) in Windows Media Player and then try to change the play speed, you'll get this error. The fix is the same—save the stream locally first. In Player, go to File > Save As (if that option is available for live streams), or use a media recorder tool.
2. Custom Applications Using the Windows Media Format SDK
If you're a developer and you hit this in your app, you might be calling IMFSourceResolver or IWMReader with the wrong flags. Check your code: when you create the reader, don't set the MFSESSION_INITPKT or any real-time flag if you intend to change the rate. Instead, set MFSESSION_SEEK and MFSESSION_RATE after the session is established, but only after you've verified the source isn't live.
3. Windows Media Encoder with a Capture Device
If you're encoding from a webcam or capture card and you try to apply time compression during the capture, you'll get this error. The workaround is to capture to a file first, then re-encode with the compression.
How to Prevent It
Prevention is mostly about knowing what you're working with. Before you try time compression, ask yourself: is this a live source? If yes, don't bother—just record it first.
For developers, build a check into your app: use the WM_STREAMING_PROTOCOL property or check the source type via IWMProfile to see if it's live. If it is, disable the time compression UI control. That way your users never see the error in the first place.
Also, keep Windows Media components updated. Microsoft patched some related bugs in the SDK, so running the latest runtime helps avoid weird edge cases.
That's the whole story. Record it, then compress it—you'll never see this error again.