同时从多个应用程序访问网络摄像头

use*_*964 5 windows webcam driver wrapper

问题背景 - 有两个不同的 Windows 应用程序正在尝试同时访问计算机上的网络摄像头。目前,只有一个应用程序能够访问它。我希望能够允许两个应用程序同时访问网络摄像头。我的问题的一个常见示例是 Skype 和 yahoo Messenger 尝试同时访问计算机上的网络摄像头。

我发现一些软件(manycam.com、http://www.splitcamera.com/)允许在 Windows 上执行此操作。但我不确定他们是如何实施的。我想自己编写代码来实现这一点,因为我的代码需要与其他 API 集成。

如果有人能够阐明如何编写设备包装器来实现这一目标,我将不胜感激。

Som*_*ame 4

内核相机驱动程序注册了几个操作系统定义的回调。其中一个回调用于输出流。专用的 Windows 应用程序具有此流的接口 - 您需要阅读有关此主题的内容,这不是 SO 范围内可以涵盖的内容。您需要一个位于客户端应用程序和相机驱动程序之间的组件。该组件应该拦截您的相机驱动程序输出并为注册的客户端复制它。这可以在内核(过滤器驱动程序)或用户模式(首选)中实现。http://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspx是一个很好的起点。

注意:您的相机软件可能已经支持此功能(尽管我认为机会很小),在这种情况下,您应该深入研究相应的文档。