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

UWP使用特定宽高创建视频编码时MediaStreamSource.SampleRequested事件未触发

问题根因

你遇到的0xC00D5212错误是Media Foundation管线初始化失败导致的,系统无法为非标准宽高的IYUV/I420格式找到可用的颜色转换或渲染组件,核心触发点如下:

  1. I420(IYUV)属于YUV4:2:0采样格式,UV分量宽高均为Y分量的1/2,要求视频帧宽高必须为偶数,你报错场景的1037为奇数高度,不符合格式规范
  2. 缺失必填的编码参数校验也可能导致管线初始化中断

解决思路

  • 强制对齐视频帧宽高:在送入MediaStreamSource前,先对原始帧做裁剪或补边操作,将宽高都调整为2的倍数,高分辨率场景可调整为4/16对齐适配硬件解码要求
  • 补全编码属性配置:取消代码中Bitrate属性的注释,按I420 12bpp的规则正确赋值,避免参数校验失败
  • 兼容格式声明:如果对齐后仍有异常,可给VideoStreamDescriptor额外添加NV12、RGB32等系统支持度更高的格式声明,管线会自动匹配可用转换路径
  • 排查第三方组件冲突:如果安装过第三方解码滤镜,可通过MFTRACE工具排查管线初始化阶段的模块加载日志,确认是否是自定义组件覆盖了内置YUV转换模块

修正后代码示例

private MediaStreamSource CreateI420VideoStreamSource(uint originalWidth, uint originalHeight,int framerate)
{
    // 先将宽高对齐为2的倍数
    uint width = originalWidth % 2 == 0 ? originalWidth : originalWidth + 1;
    uint height = originalHeight % 2 == 0 ? originalHeight : originalHeight + 1;
    
    if (width == 0)
    {
        throw new ArgumentException("Invalid zero width for video.", "width");
    }
    if (height == 0)
    {
        throw new ArgumentException("Invalid zero height for video.", "height");
    }
    var videoProperties = VideoEncodingProperties.CreateUncompressed(MediaEncodingSubtypes.Iyuv, width, height);            
    var videoStreamDesc = new Windows.Media.Core.VideoStreamDescriptor(videoProperties);
    videoStreamDesc.EncodingProperties.FrameRate.Numerator = (uint)framerate;
    videoStreamDesc.EncodingProperties.FrameRate.Denominator = 1;
    videoStreamDesc.EncodingProperties.Height = height;
    videoStreamDesc.EncodingProperties.Width = width;
    // 补全Bitrate参数
    videoStreamDesc.EncodingProperties.Bitrate = ((uint)framerate * width * height * 12);
    var videoStreamSource = new Windows.Media.Core.MediaStreamSource(videoStreamDesc);
    videoStreamSource.BufferTime = TimeSpan.Zero;
    videoStreamSource.SampleRequested += OnMediaStreamSourceRequested;
    videoStreamSource.IsLive = true;
    videoStreamSource.CanSeek = false;
    return videoStreamSource;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:21:03