如何解决虚拟相机 - 从 Opencv 捕获图像帧并传递给虚拟相机应用程序的 Directshow 过滤器
我正在开发一个虚拟相机应用程序。这个虚拟相机应该能够显示在 Zoom 等应用程序的可用相机设备列表下。现在在我的应用程序中有两个部分。一部分是 Directshow 捕获源过滤器,另一部分是 C# 应用程序。
现在我的想法是从 c# 应用程序中捕获视频,使用 opencv 处理这些视频帧,并将这些视频帧通过一些进程间通信传递给 directshow 过滤器。此视频将实时放大。
感谢此链接 https://github.com/roman380/tmhare.mvps.org-vcam,我已尝试并成功安装了流行的 vivek vcam。注册这个dll后,我可以在zoom下的avialble列表下看到这个虚拟摄像机。它目前只显示随机数据。
但我是 diretshow 的新手,因此有些困惑。问题来了
-
进程间通信是根据某些 stackoverflow 答案将帧从应用程序传递到 directshow 过滤器的方式。我正在 c# 应用程序中通过 opencv 从网络摄像头捕获视频帧。 vcam 项目具有用于填充数据的
fillbuffer()
方法。如果我将这些帧直接传递给 vcam 过滤器fillbuffer()
方法就足够了吗?还是我还需要添加 samplegrabber 和 null render 。这里会流什么? -
如果我传递了框架,如何从 Opencv Mat 类型转换为 directsow 等效类型?我应该考虑什么类型?
感谢您阅读这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。