Media Foundation Transform 是否可以实现同时在多个应用程序中访问网络摄像头?

问题描述

我想知道第三方虚拟摄像头软件(如ManyCam和OBS)使用什么技术,如果我想同时在多个应用程序中访问网络摄像头,我应该研究什么?

解决方法

过去,Windows 中的视频采集 API 假定可以独占访问视频硬件。 Microsoft 决定不实施中间件来捕获视频并作为 API 在应用程序之间共享,因此这就是第三方解决方案的用武之地。

由于 API Media Foundation 不提供视频共享功能(其中的某些部分已实现并且将来可能会扩展,尤其是用于在 Store/UWP 应用程序之间共享,但 AFAIK 即使在这种减少的范围)。

共享应用程序从真实硬件捕获视频并将视频流呈现为“虚拟摄像机”。假设视频采集应用程序会将虚拟摄像机识别为真实的,没有任何区别。

您正在考虑开发一个大致相同的应用程序。

此 Q 及其参考资料是进一步阅读的良好起点:Registering a network video stream as a virtual camera