我正在做一个项目,需要读取USB摄像机的输入,对其进行一些处理,然后将数据发送到虚拟摄像机,以便Skype等可以访问它。

我已经编译并使用了vcam filter。我还能够对FillBuffer方法进行一些更改。现在,我需要知道是否可以将数据从另一个应用程序发送到vcam过滤器,或者我是否需要编写另一个过滤器。

最佳答案

当前作为模板的vcam项目是其他视频消耗应用程序(如Skype)的接口(interface),这些应用程序使用DirectShow API访问视频捕获设备并在平台/位数上与过滤器匹配。

您负责开发其余的假定过滤器:您可以直接在过滤器中访问真实设备(大大简化了任务,这是您用自己的FillBuffer填充的代码,该代码可从其他来源生成视频),或者您是实现进程间通信,以便FillBuffer实现可以从另一个应用程序传输数据。

Nethier vcam或任何标准DriectShow示例均提供了覆盖进程间通信的功能,并且您可能还需要处理其他复杂问题:一个应用程序和多个实例用于消耗视频的过滤器,平台不匹配等。

也可以看看:

  • How to implement a "source filter" for splitting camera video based on Vivek's vcam?
  • 07-24 09:24