gpt4 book ai didi

directshow - DirectShow 中的自动 YUV -> RGB 用于自定义解码器

转载 作者:行者123 更新时间:2023-12-03 16:58:26 25 4
gpt4 key购买 nike

在网上搜索了几个小时后,我非常想找到解决方案。我已经在 DirectShow 中启动并运行 OGG Theora 解码器,它输出 YV12 和 YUY2 颜色模型。

现在,我想为这个输出制作一个 RGB 像素操作过滤器,并将其处理到视频渲染器中。根据thisthis ,它应该非常简单和透明,但事实并非如此。

例如,我在 CheckInputType() 中实现了这个检查:

if( IsEqualGUID(*mtIn->Type(), MEDIATYPE_Video )
&& IsEqualGUID(*mtIn->Subtype(), MEDIASUBTYPE_RGB565 ) )
{
return S_OK;
}

我希望它在 Theora 和我的解码器之间插入 MSYUV 并为我完成这项工作(即将其转换为 RGB)。问题是我每次都出错(在 GraphEdit 应用程序中)。而且我 100% 确定它是 YV12 作为输入(在调试器中检查过)。我能想到的唯一解释是提到了 AVI 解压缩器,但没有关于它的更多信息。

  • 这是否意味着我必须使用 AVI 容器才能获得此自动功能?
  • 奇怪的是,它适用于 WMV 视频(输出为 YUV),只有这个 OGG 解码器有问题。所以这个 OGG 解码器遗漏了什么可能是个问题?

太糟糕了,MSYUV 过滤器不能用作颜色空间转换器,即在 GraphEdit 中可见和直接可用...

我很感激任何关于此的提示,编程自己的 YV12 -> RGB 转换器我作为最后的手段。

最佳答案

Directshow 中没有内置 YUV 到 RGG 色彩空间转换器。 WMV 文件为您工作的原因是 WMV 解码器过滤器也会根据您连接的过滤器类型吐出 RGB 或 YUV 数据。

你在这里能做的最好的事情就是自己写一个颜色空间转换器过滤器,或者在你得到它之后转换 YUV 数据。

Fourcc.orgconverting from YUV to RGB 上有不错的文章.还书Video Demystified by Keith Jack包含有关色彩空间转换的所有详细信息。

关于directshow - DirectShow 中的自动 YUV -> RGB 用于自定义解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com