0XC00D1BB0

NS_E_NO_AUDIENCES (0xC00D1BB0): Fix the Missing Bitrate Profile

Windows Media encoder throws NS_E_NO_AUDIENCES when your encoding profile has no audio or video bitrate. Here's how to fix it fast.
Quick answer: Your Windows Media encoding profile has zero audiences or a null bitrate. Open the .prx profile, add at least one audio and one video stream with real bitrate values (e.g., 128 kbps audio, 700 kbps video), save it, and re-encode.

NS_E_NO_AUDIENCES is a Windows Media Format SDK error. It's HRESULT 0xC00D1BB0 and the friendly name is exactly what it sounds like — the profile you handed the encoder has no audiences defined. An "audience" in Windows Media terms is a stream config: codec, bitrate, channels, sample rate. No audience = no bitrate = nothing to encode against. The encoder bails before it even opens your source file.

I've seen this mostly on Windows Server 2008 R2 and 2012 R2 boxes running Windows Media Services publishing points, and on Windows 10/11 workstations still using the old wmenc.exe or WMCmd.vbs scripting host. The usual trigger: someone edited a .prx profile in the GUI, deleted the default audience to "simplify" it, saved, and walked away. Or a script generated a profile programmatically and the bitrate property came back as 0 or null because of a bad cast. Either way, you get 0xC00D1BB0 the moment the encoder starts.

How to fix NS_E_NO_AUDIENCES

  1. Find the profile in use. If you're running wmenc.exe, open the session and check the Properties tab. If it's a script, grep for .prx or WMEncProfile2. Note the full path — it's usually under C:\Program Files\Windows Media Components\Encoder\Profiles\ or your app's own folder.
  2. Open the .prx in Windows Media Profile Editor. Run wmprofed.exe. If it's not installed, grab it from the Windows Media Encoder 9 Series redistributable. Load your profile.
  3. Check the Audiences list. You'll see it empty. That's your bug. Click Add to create a new audience. Give it a real name like Default_Audience.
  4. Add an audio stream. Set the codec to Windows Media Audio 9.2 (or 10 Pro if you need it), bitrate 128 kbps for stereo, 64 kbps for mono voice. Sample rate 44100 Hz. Don't leave bitrate at 0 — the profile validator will save it with 0 and you'll be right back here.
  5. Add a video stream. Windows Media Video 9 is the safe pick. For 720p content, CBR 2 Mbps. For screen capture or CCTV, 500-800 kbps is plenty. Frame rate 30, keyframe interval 3 seconds. Keep it CBR, not VBR, unless you know why you want VBR.
  6. Save the profile. File → Save As, overwrite the original. Check the file size — a valid profile with two streams is usually 3-6 KB. If it saves as 1 KB, you still have an empty audience and you missed a step.
  7. Re-run the encode. NS_E_NO_AUDIENCES should be gone. If the encoder still complains, verify the app is actually loading the profile you edited — some apps cache the profile in memory at startup and won't pick up your changes until the service restarts.

If the GUI fix doesn't stick

Sometimes Windows Media Profile Editor saves fine but the app still throws 0xC00D1BB0. That usually means the profile is being loaded from a different location, or the app is building the profile in code and ignoring your .prx entirely. Check the app's config for a hardcoded profile path. Also check for profile copies under %APPDATA% — some tools dump their own cached version there and load that instead.

If you're generating the profile in VBScript, the usual culprit is this pattern:

Set Profile = CreateObject("WMEncoder.Session").SourceGroupCollection...
' bitrate never set because of a bad variable
Profile.Audiences.Add 0  ' <-- wrong, this creates an empty audience

The fix is to explicitly set bitrate before adding the audience, not after:

Set Aud = Profile.Audiences.Add(0, 0)
Aud.Bitrate = 128000          ' 128 kbps
Aud.CodecName = "Windows Media Audio 9.2"
Aud.SampleRate = 44100
Aud.Channels = 2
Aud.VideoWidth = 1280         ' only for video audiences
Aud.VideoHeight = 720
Aud.FrameRate = 30

If you're on Windows Server and the profile lives on a share, verify the service account has read access. A failed read often surfaces as the same error code because the encoder gets a null profile handle back.

Prevention

Never edit a production .prx without keeping a known-good copy. Version-control them or just drop a profile.prx.bak beside it. And validate before deploy:

wmenc /profile "C:\path\to\profile.prx" /validate

If that command exits non-zero, don't push the profile. The validator catches empty audiences before your encoder does at 3 AM.

One more thing — if you're still running Windows Media Encoder 9 on modern Windows, stop. It's EOL, it's 32-bit, and it fights with newer codecs. Use FFmpeg for new work. But for the legacy WMS pipelines still in production (and there are plenty), the profile fix above is what you need.

Related Errors in Windows Errors
0X8029020B TBSIMP_E_COMMAND_CANCELED (0X8029020B) Fix for Windows 10/11 0X000019EA ERROR_LOG_EPHEMERAL 0x19EA: Fix Ephemeral Log Errors Fast 0X00000538 Fix ERROR_INVALID_ACL (0x538) in Windows: Step-by-Step 0XC0262319 Fixing ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH (0XC0262319)

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.