我正在使用回调机制来获取媒体应用程序中的网络摄像头帧。它可以工作,但由于在回调本身中执行了某些额外的缓冲区功能,所以速度很慢。
现在我正在尝试另一种获取帧的方法。也就是说,调用一个方法并抓取帧(而不是回调)。我在 CodeProject 中使用了一个使用 IVMRWindowlessControl9::GetCurrentImage 的示例。
我遇到了以下问题。
- 在 Microsoft 网络摄像头中,预览版在 Windows 7 上没有呈现(仅黑屏)。但同一个摄像头在 XP 上呈现了预览版。
我的疑问是,VMR 特定功能是否会依赖于不同平台上的相机驱动程序?否则,怎么会出现这种差异?
- 无论示例应用程序在哪里工作,我都观察到生成的 BITMAPINFOHEADER 结构的 biBitCount 成员是 32。
这是应用程序设置的值还是 VMR 操作的驱动程序设置?这是如何配置的?最后,获取网络摄像头帧的最佳方法是什么?回调方法?还是直接方法?
提前致谢,