windows - 充当虚拟网络摄像头的设备驱动程序

标签 windows visual-c++ kernel device drivers


我正在寻找编写虚拟相机驱动程序。有人知道吗?
任何有用的书或任何链接。

添加更多细节: 我开发了一个将图像保存到磁盘的设备驱动程序,显示器使用设备驱动程序显示图像。性能似乎不太好。 fns。我用过的是: //捕捉 获取桌面窗口() 创建兼容位图() 节省() //显示 WM_MOUSEMOVE 每次都打电话来捕获和显示 但显示不是连续的,只有在窗口失焦并再次聚焦后才会出现

我是否应该使用其他技术来记录或显示图像,什么会产生丰硕的成果,请帮助。

谢谢, -mitesh

最佳答案

虚拟相机驱动程序是什么意思?

可以使用 DirectShow 编写虚拟捕获设备。这样的虚拟捕获设备可以被 skype 等应用程序使用。如果这足以满足您的需要,您可以从 http://tmhare.mvps.org/downloads.htm 下载 vcam。在“捕获源过滤器”链接下。

编辑: 为了在我发布的链接中使用该捕获设备,您需要下载 Windows SDK。 Windows SDK 有一个名为“GraphEdit”的工具 如果您在线搜索,我相信您可以找到一个快速的 GraphEdit 教程。 GraphEdit 基本上允许您通过连接一堆过滤器来构建多媒体管道。 (这就是当您在计算机上播放电影时在后台发生的情况。)这可能类似于

网络摄像头 -> 渲染器

文件源 -> 一些解码器 -> 渲染器

并且会导致您看到网络摄像头捕获的视频或文件的内容。示例下载显示了如何构建虚拟捕获设备,即它看起来像媒体来自“真实”捕获设备,但实际上如果您根据您的特定方式调整代码,您可以生成任何您想要的视频,即截屏和输出那个。如果正确注册,Skype 等应用程序可以接收您的虚拟捕获设备。

确定这是否足以满足您的需求的最简单方法是下载捕获源过滤器,使用 regsvr32 命令注册它,然后使用 GraphEdit 将捕获源插入图形,将源连接到视频渲染器并点击播放按钮。上面提到的许多概念/关键字对您来说可能是新的,但您可以对每个主题进行一些阅读,也许这会给您一个入门点。

编辑 2: 捕获源过滤器方法是否不足以满足您的要求? 1) AFAIR 你在你的(现已删除的)答案中说你想截屏,并将其用作虚拟相机设备,用于 Skype 等应用程序。

如果这就是您所需要的,您不必编写设备驱动程序。 DirectShow 可以通过捕获源过滤器完美地做到这一点。然后你需要

  • 学习一些基本的 DirectShow
  • 修改捕获过滤器的源代码以获取屏幕抓取等。

至于书上关于编写设备驱动程序来完成相同的事情,我不知道。我想表达的意思是,您需要确定您是否真的需要编写设备驱动程序,或者仅仅修改开源捕获过滤器是否就足够了。

关于windows - 充当虚拟网络摄像头的设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5079165/

相关文章:

c++ - "Mixing a dll boost library with a static runtime is a really bad idea..."

c - Jiffies - 如何计算经过的秒数?

linux - 在 Linux 内核中存储信息的最佳方式是什么?

c# - Windows 手机 8 : Send data to a remoteserver

python - Esky更新导致事务处理文件操作错误

Windows Installer - 静默安装先决条件

visual-c++ - 为什么这个库不与 pragma 注释链接?

使用 visual studio 2008 构建 C++ 项目

regex - 递归地在 Linux 内核源代码树中查找函数定义

c - Windows 中的高级 C 编程(pthreads、信号和信号量,天哪!)