C# 如何模拟视频捕获设备并提供动态视频内容?

C# 如何模拟视频捕获设备并提供动态视频内容?,c#,windows,video,video-capture,device-emulation,C#,Windows,Video,Video Capture,Device Emulation,我想模拟视频输入从一个网络摄像头的测试目的 因此,我需要能够在Windows中模拟软件视频捕获设备,并能够动态生成其输出 我怎样才能做到这一点 我更喜欢C++或C++中的解决方案。 你可以使用(旧链接,但还有其他)它会取一个视频/图像文件,并将它显示在一个摄像头设备中。您的系统会认为这是一个正常的设备 然后你需要创建一些东西来生成视频/图像,如果你需要静态图像,那么生成bmp就很容易了。据我所知,有一组COM接口来控制Windows中音频和视频的录制和播放。它过去被称为DirectShow,但在

我想模拟视频输入从一个网络摄像头的测试目的

因此,我需要能够在Windows中模拟软件视频捕获设备,并能够动态生成其输出

我怎样才能做到这一点

我更喜欢C++或C++中的解决方案。

你可以使用(旧链接,但还有其他)它会取一个视频/图像文件,并将它显示在一个摄像头设备中。您的系统会认为这是一个正常的设备


然后你需要创建一些东西来生成视频/图像,如果你需要静态图像,那么生成bmp就很容易了。

据我所知,有一组COM接口来控制Windows中音频和视频的录制和播放。它过去被称为DirectShow,但在此期间,名称可能已经更改。这些接口用于构建音频和视频过滤器图,对数据流进行编码/解码

前进之路: -阅读有关Microsoft DirectShow API的信息, -实现一个实现视频源接口的COM对象,

旧(无选定答案)问题。。。。实际上可能是我见过的最老的一个。。。但我自己在寻找答案时遇到了这个问题,我记得“虚拟摄像头”仍然存在的那一天(现在只是一个中国广告网站)

不要害怕!有新的资源可以解决您长达十年的任务: 首先,签出OBS,开源在视频流方面做了很多工作:

第二,签出这个虚拟网络摄像头插件。完全符合您所说的,并且使用了@qbeuek对DirectDraw的建议:


它是用C++编写的,所以把你需要的比特和C重写留给读者是一个练习,但是能力是存在的。

他说动态不能生存,我想动态中你有一些模型,你想在运行时可视化,但不一定是实时的。非常酷!你知道有没有办法打开虚拟摄像机上的音频?视频正在工作,但音频可能不在范围内?抱歉@Miguel,我从未实际使用过其中的代码,只是最终产品。OBS确实有很多音频捕获功能,所以看看除了这个插件,它还能做些什么。