我想制作一个虚拟的网络摄像头应用程序。因此,我找出了2010年之前写过的所有页面。但是没有结果。即使我打开了所有的项目,它们都是旧的,并且codeproject的源代码方法的某些部分现在不再有用。
因此,我正在寻找DirectShow的替代产品。我尝试按照DirectShow指南进行操作,即使docs.ms中的入门指南也不起作用。
我该怎么办?...
所以这是一个AB问题:您需要一件事,而您要求另一件事。
是的,有DirectShow的替代品。 DirectShow是Windows中以前的多媒体API,Windows中的后续API和当前API为Media Foundation。但是,这将使您离原始问题的解决方案仅一步之遥。
虚拟摄像机的概念是抽象的:Windows操作系统没有提供可靠的扩展点来添加虚拟视频输入设备,因此它们对于应用程序在实际摄像机中均可见。为此,您基本上应该开发并开发功能齐全的驱动程序,而这并不是您想要做的。
我在此处讨论了StackOverflow的多个问题中的详细信息,我将仅提及其中的一些内容,以开始阅读:]
[如果您希望某个设计用于照相机的应用程序像真正的照相机那样“查看”您的虚拟照相机,您有兴趣找出该应用程序正在使用的API,以及是否可以将虚拟实现作为另一个照相机提交选项。
如果应用程序基于DirectShow,那么您很幸运,您可以选择虚拟DirectShow摄像机的路径(请参见上面的链接)。如果应用程序使用Media Foundation,那么您几乎陷入死胡同,钩子或API绕行可能是您的最佳选择。
或者您可以选择开发相机驱动程序,由于需要付出一定的努力(即使确实存在此类实现,但很可能是不现实的。
长话短说,如果您的目标应用程序通过DirectShow API使用摄像机,那么您很幸运,不需要DirectShow替换。在过去20年中积累的虚拟相机代码和知识仍然保持良好信誉。