是否有 DirectShow 的替代品?

Is There a replacement of DirectShow?

我想制作一个虚拟网络摄像头应用程序。所以我找出了2010年之前写的所有页面。 但是没有结果。所有项目打开都还是旧的,codeproject源代码的部分方法现在没用了。

所以我正在寻找 DirectShow 的替代品。我尝试按照 directshow 指南进行操作,即使 docs.ms 中的入门指南也不起作用。

我该怎么办?...

所以这是一个 AB 问题:你需要一件事,而不是你要求另一件事。

是的,有 DirectShow 的替代品。 DirectShow 是 Windows 中的一个以前的多媒体 API,它的继任者 API 和当前 Windows 中的 API 是 Media Foundation。但是,这将使您离原始问题的解决方案更近一步。

虚拟摄像头的概念很抽象:Windows操作系统不提供可靠的扩展点来添加虚拟视频输入设备,使它们对应用程序可见,与真实摄像头一样。为此,您基本上应该开发功能齐全的驱动程序,但这不是您想要做的。

我在 Whosebug 上的多个问题中介绍了详细信息,我将仅提及一些以开始阅读:

  • Virtual webcam input as byte stream

如果您希望某些旨在与相机一起使用的应用程序 "see" 您的虚拟相机就好像它是真实的相机一样,您有兴趣了解 API 该应用程序正在使用什么以及是否您可以将您的虚拟实现作为另一个相机选项提交。

如果应用程序是基于 DirectShow 的,那么您很幸运,可以采用虚拟 DirectShow 摄像头的路径(请参阅上面的链接)。如果应用程序使用 Media Foundation,那么您几乎陷入了死胡同,挂钩或 API 迂回可能是您的最佳选择。

或者您可以选择开发摄像头驱动程序,但由于所需的努力,这很可能是不现实的(即使确实存在此类实现)。

长话短说,如果您的目标应用程序通过 DirectShow API 使用相机,那么您很幸运,不需要更换 DirectShow。过去 20 年积累的虚拟相机代码和知识仍然信誉良好。