mediafoundation 能否允许多个客户端同时访问单个网络摄像头设备?

Can mediafoundation allow multiple clients to simultaneously access a single webcam device?

我打算使用 mediafoundation 构建一个适配器公开 "StartCapture" 和 "StopCapture" 等方法,并希望多个客户端能够从单个网络摄像头设备同时访问这些方法。

目前我在示例中看到的代码仅允许 1 个流捕获文件中的数据(另一个最终为空)。

mediafoundation 是否允许同时访问设备?如果有怎么办?

视频输入设备历来是独占资源。一个客户端启动会话后,其他客户端在 运行 会话释放之前无法使用摄像头。

Windows 10 周年更新引入了所谓的 Frame Server,这是一个中间件层,正如所宣传的那样,在某些情况下在客户端之间共享相机。

This puts an end to the "exclusive" use of devices, and it's arguably a change that Windows should have made long ago. Third-party software for sharing cameras between applications exists, but the operating system should support this scenario natively, as it already does for audio devices.

据我所知,这是行不通的。至少它不适用于我尝试过的一些相机,并且截至目前,共享不适用于 Windows 10 Creators Update。可能引用某些 cameras/modes 存在,该功能正在为其实施共享。