0

我正在编写一个程序,它将实时对来自网络摄像头的图像进行一些转换。与几乎所有其他网络摄像头一样,我的 noname 以 YUY2 格式提供数据(如 bmiHeader.biCompression 中所写)。我根据http://www.fourcc.org/yuv.php#YUY2在 CPU 端尝试了直接转换,但它非常缓慢且错误:)。

当我将源输出引脚连接到渲染器时,图片和帧率都很好。

所以我正在寻找一个 DirectShow 过滤器,或者,也许,一些编解码器,它将在视频卡上进行从 YUY2 到 RGB24 的快速转换,并且会给我结果而不在屏幕上呈现它。

我正在使用:

  • 32 位 Windows XP SP3。
  • VC++ 2005
  • 最近下载的 Windows SDK。
  • DirectX 09 年 8 月。
4

2 回答 2

2

我目前没有可用的代码。但看看使用 GDI 非常快地进行转换。

基本上捕获源帧,以正确的格式(rgb24)创建一个内存dib并blit到位图。转换发生在 blitting 期间,根据我的经验,转换速度非常快。

我使用它从网络摄像头抓取帧,然后我可以将帧以所需的帧速率作为 jpeg 或位图拖放到硬盘驱动器。

直流

于 2010-01-08T02:44:46.400 回答
0

您可以使用 VirtualDub Kasumi 库http://virtualdub.sourceforge.net/

于 2011-09-19T11:27:22.263 回答