5

是否可以进行通用 API 调用来获取来自网络摄像头的图像或视频源的句柄,并将其替换为我自己的图像或视频,以便应用程序连接到摄像头(例如 MSN/Skype/Yahoo IM)会看到我的图像而不是相机正在捕捉的图像吗?

理想情况下,我试图以一种独立于设备供应商或接口的通用方式解决这个问题(通过所有这些应用程序使用的标准网络摄像头堆栈,如果存在这样的事情)。

它适用于需要能够禁用客户端上的网络摄像头而不是出于特定目的的安全应用程序。我可以通过代码停止和启动图像捕获设备,但理想情况下,我更愿意让设备保持启用状态,并用一个图形替换捕获的图像,告诉用户他们当前无法使用他们的摄像头的原因。

4

1 回答 1

3

大多数设计用于通用工作的现代网络摄像头通常会作为 WDM 设备实现,然后作为 DirectShow 内核过滤器公开。然后应用程序可以使用 DirectShow 处理实时视频流。可以编写一个具有高品质的自定义过滤器,它可以尝试将自己插入任何相关图表,然后动态修改视频流。但是,这种技术当然不是万无一失的,并且可以轻松解决。还有其他视频捕获技术不受此方法的影响。简而言之,没有可靠的方法可以为所有设备或安全地执行您想要的操作。如果您只想能够使用标准网络摄像头并以不安全的方式以编程方式更改视频源,那么上述技术将起作用。

在此处查看一般 DirectShow 信息,在此处查看有关视频捕获的信息。AmCap和EZRGB24样本也是一个很好的起点。

于 2008-10-24T09:23:27.823 回答