Graph 如何使用DirectShow default呈现NV12;视频渲染器“;

Graph 如何使用DirectShow default呈现NV12;视频渲染器“;,graph,directshow,h.264,color-space,Graph,Directshow,H.264,Color Space,我正在尝试开发一个视频源DirectShow过滤器 以下图表有效: [h264源]->[Elecard h264解码器]->[Video Renderer] [h264源]->[MS DTV-DVD解码器]->[DMO颜色转换器]->[视频渲染器] 我的过滤器输出h264,它将被解码成NV12,然后以某种方式使用默认的基本视频渲染器进行渲染,该渲染器只接受RGB32 视频渲染器是一个我无法解决的限制。当我尝试将过滤器自动连接到渲染器时,会自动加载“AVI解压缩器”,但不起作用 我现在的解决方案是

我正在尝试开发一个视频源DirectShow过滤器

以下图表有效:

[h264源]->[Elecard h264解码器]->[Video Renderer]
[h264源]->[MS DTV-DVD解码器]->[DMO颜色转换器]->[视频渲染器]

我的过滤器输出h264,它将被解码成NV12,然后以某种方式使用默认的基本视频渲染器进行渲染,该渲染器只接受RGB32

视频渲染器是一个我无法解决的限制。当我尝试将过滤器自动连接到渲染器时,会自动加载“AVI解压缩器”,但不起作用

我现在的解决方案是安装Elecard H264解码器,它可以输出RGB32。我需要安装一些高价值的颜色转换器。默认的DMO颜色转换器可以为我做到这一点,但它的优点似乎不够高。 我不想依赖昂贵的第三方解决方案

我可以用DMO颜色转换功能来强制加载它,但这似乎不是一个好的解决方案。我可能会影响系统上的其他应用程序。另一种可能是开发我的颜色转换器过滤器,这也可能与已经安装的应用程序发生冲突


我不确定如何继续。

默认渲染器通常支持
NV12
,这是Windows中推荐的YUV 4:2:0格式。对它的支持可能在XP和更早版本中受到限制。渲染器只支持32位RGB不是真的。是的,我觉得这很奇怪。但我无法将MS DTV-DVD解码器直接连接到渲染器。我正在运行Windows7