我应该使用哪些 API 来公开网络摄像头功能?
我正在尝试为旧的 USB 网络摄像头设计 Windows KMDF 驱动程序。
我认为我在驱动程序开发/USB 协议方面有足够的信息,但我想知道应该如何从驱动程序公开网络摄像头功能,以便 Windows 程序可以利用它。
该网络摄像头具有 3 种功能:
- 视频流、
- 音频流、
- “拍照”硬件按钮。
对于其中每一个,将其公开给 Windows 的更自然的方式是什么,以便我的网络摄像头可以在相关程序(gTalk、Skype 等)中使用?或者,回到这个问题:这些程序的期望是什么,以及它们如何检测网络摄像头?
I am trying to design a Windows KMDF driver for an old USB Webcam.
I think I have enough informations on the driver development / USB protocol side, but I am wondering how I should expose the webcam functionalities from the driver so that Windows program can take advantage of it.
This webcam has 3 functionalities:
- a video stream,
- an audio stream,
- a "take picture" hardware button.
For each of those, what is the more natural way to expose it to Windows, so that my webcam can be used in relevant programs (gTalk, Skype, etc.)? Or, to revert the question: what is expected by those programs, and how do they detect webcams?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您编写“WebCam”驱动程序时,您应该使用内核流作为驱动程序模型。这为您提供了正确的接口,以便其他程序可以通过 DirectShow/VfW/等与您的设备进行通信。 。
目前内核流是在 AVStream mini 驱动程序库中实现的。 WDK 包含一个 AVStream 迷你驱动程序示例,您可以将其作为您自己的驱动程序的基础。然后可以使用 KMDF 实现设备的后端。
When you write a 'WebCam' driver, you should use kernel streaming as your driver model. this provides you with the correct interfaces, so that other programs can communicate with your device through DirectShow/VfW/etc. .
Currently kernel streaming is implemented in the AVStream mini driver base. The WDK contains a AVStream mini driver sample to base your own driver on. The backend to the device can then be implemented using KMDF.