You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中使用MediaCapture调用RTSP流失败,求解决办法

解决UWP MediaCapture初始化RTSP流时的0xC00D36D5异常

根据官方文档,UWP的MediaCapture支持通过RTSP URI初始化连接网络摄像头流。我用VLC和IpCameraEmulator搭建了RTSP流服务器,且VLC播放器能正常播放该流,但执行以下代码时抛出原生异常:

var mcis = new MediaCaptureInitializationSettings()
{
    DeviceUri = new Uri("rtsp://127.0.0.1:8554/live"),
    StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.Video
};

await mediaCapture.InitializeAsync(mcis);

异常信息:The specified object or value does not exist. (Exception from HRESULT: 0xC00D36D5)

环境配置:

  • 目标与开发机器均为Windows 11 build 22000
  • 应用最低版本要求为Windows 10 build 20348
  • 使用Visual Studio 2022
  • 已关闭防火墙

可能的排查与解决方向

  1. 检查RTSP流编码兼容性
    Windows MediaCapture仅支持H.264基线/主/高档次视频编码,以及AAC-LC音频编码(若包含音频)。需确保流服务器输出符合要求:

    • VLC推流时手动指定编码参数,选择H.264作为视频编码、AAC作为音频编码
    • IpCameraEmulator中确认编码配置为H.264/AAC
  2. 补充MediaCapture初始化配置
    尝试完善MediaCaptureInitializationSettings的属性,明确媒体类型与设备选择:

var mcis = new MediaCaptureInitializationSettings()
{
    DeviceUri = new Uri("rtsp://127.0.0.1:8554/live"),
    StreamingCaptureMode = StreamingCaptureMode.Video,
    MediaCategory = MediaCategory.VideoRecord,
    VideoDeviceId = string.Empty,
    AudioDeviceId = string.Empty
};
  1. 调整RTSP URI参数
  • 强制TCP传输:Windows MediaCapture默认优先TCP,部分服务器默认UDP,尝试修改URI为rtsp://127.0.0.1:8554/live?tcp
  • 若服务器需认证,在URI中携带账号密码:rtsp://user:pass@127.0.0.1:8554/live
  1. 启用调试日志定位问题
    添加失败监听获取详细错误信息,同时查看Visual Studio输出窗口的原生媒体栈日志:
mediaCapture.Failed += (sender, errorEventArgs) =>
{
    Debug.WriteLine($"MediaCapture失败: {errorEventArgs.Message}, 错误代码: {errorEventArgs.Code}");
};
  1. 修复系统媒体组件
    若Windows媒体组件损坏,执行以下命令修复:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

内容的提问来源于stack exchange,提问作者sahap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:43:12