问题描述
我正在开发一个虚拟相机应用程序。这个虚拟相机应该能够显示在 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 (将#修改为@)