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

标签 c++ webcam video-capture ms-media-foundation webcam-capture

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

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

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

最佳答案

视频输入设备历来是独占资源。一旦一个客户端启动了一个 session ,其他客户端就无法在正在运行的 session 释放相机之前使用它。

Windows 10 Anniversary Update 引入了所谓的 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。引用可能存在的某些相机/模式,该功能正在为其实现共享。

关于c++ - mediafoundation 能否允许多个客户端同时访问单个网络摄像头设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491718/

相关文章:

python - 如何从图像采集卡中抓取帧?

Android:在捕获期间拆分视频

c++ - 求和 XOR 的直接公式

c++ - 如何使用 Qt Quick 制作透明窗口?

c++ - 从多个线程更新对应于 unordred_map 中不同现有键的值

python - OpenCV 3.0 Beta-Python-通过网络摄像头进行人脸检测-代码给我错误

python - Flash视频录制网站教程

c++ - 如何解决这个图像处理问题——分类

javascript - 如何在平板电脑网站上保持 HTML5 网络摄像头垂直旋转

opencv - 使用 Cygwin 让网络摄像头在 OpenCV 2.3 中工作