Microsoft提供了几种可以访问图像数据的API。

>吐温:用于从扫描仪等拍摄单张图像

WIA:这似乎已经退化为一个单一的图像编解码库。

> VfW:一个非常老的(Win16)API,它真正只能用于视频文件编码/解码,但是支持一些视频采集。

> DirectShow:以前部分在DirectX SDK中,目前在Platform SDK中。这是现在(一般)流媒体解决方案的地方。

> Windows Media / Media Foundation:这似乎更适合视频播放/重新编码。

>制造商特定库:Pylon / Halcon / Imaging Control / …

DirectShow具体:

要在Windows下创建图像采集设备,您必须提供实现流类接口(或更新的Avstream)的设备(驱动程序),或者必须编写必须添加到VideoInputCategory枚举器的usermode COM对象。

Avstream示例为实际的图像采集设备提供了一切。只有实际设备的下层才是真正的缺失。

如果您可以设计设备,您应该创建DCAM或UVC兼容。两者都有Windows提供的内置驱动程序。

如何编写软件源设备:

您必须创建一个DirectShow过滤器,它提供至少一个输出引脚,并在VideoInputCategory下注册。捕获应用程序可能需要某些应用程序需要的几个接口,但这些接口取决于应用程序本身。测试过滤器的简单应用程序是Plattform SDK中提供的GraphEdit和AMCap。

一些代码:

#include

#include

const AMOVIESETUP_MEDIATYPE s_VideoPinType =

{

&MEDIATYPE_Video, // Major type

&MEDIATYPE_NULL // Minor type

};

const AMOVIESETUP_PIN s_VideoOutputPin =

{

L"Output", // Pin string name

FALSE, // Is it rendered

TRUE, // Is it an output

FALSE, // Can we have none

FALSE, // Can we have many

&CLSID_NULL, // Connects to filter

NULL, // Connects to pin

1, // Number of types

&s_VideoPinType // Pin details

};

const AMOVIESETUP_FILTER s_Filter =

{

&CLSID_MyFilter, // Filter CLSID

L"bla", // String name

MERIT_DO_NOT_USE, // Filter merit

1, // Number pins

&s_VideoOutputPin // Pin details

};

REGFILTER2 rf2;

rf2.dwVersion = 1;

rf2.dwMerit = MERIT_DO_NOT_USE;

rf2.cPins = 1;

rf2.rgPins = s_Filter.lpPin;

HRESULT hr = pFilterMapper->RegisterFilter( CLSID_MyFilter, _FriendlyName.c_str(), 0,

&CLSID_VideoInputDeviceCategory, _InstanceID.c_str(), &rf2 );

if( FAILED( hr ) )

{

return false;

}

std::wstring inputCat = GUIDToWString( CLSID_VideoInputDeviceCategory );

std::wstring regPath = L"CLSID\\" + inputCat + L"\\Instance";

win32_utils::CRegKey hKeyInstancesDir;

LONG rval = openKey( HKEY_CLASSES_ROOT, regPath, KEY_WRITE, hKeyInstancesDir );

if( rval == ERROR_SUCCESS )

{

win32_utils::CRegKey hKeyInstance;

rval = createKey( hKeyInstancesDir, _InstanceID, KEY_WRITE, hKeyInstance );

....

_InstanceID是为此“虚拟设备”条目创建的GUID。

c语言 虚拟摄像头设备_c++ 虚拟摄像头驱动程序相关推荐

  1. 使用 Cuttlefish 虚拟 Android 设备

    什么是 Cuttlefish? cuttlefish 是一种可配置的虚拟 Android 设备,既可以远程运行(使用第三方云产品,如 Google Cloud Engine),又可以在本地运行(在 L ...

  2. VirtualBox :不能分配USB设备到虚拟电脑

    VirtualBox :不能分配USB设备到虚拟电脑 问题描述 在虚拟机设置的USB设备中添加了笔记本自带的摄像头 在启动虚拟机挂载的时候,显示不能分配USB设备到虚拟电 USB Device 'Ac ...

  3. 【原创】IP摄像头技术纵览(一)---linux 内核编译,USB摄像头设备识别

    IP摄像头技术纵览(一)- linux 内核编译,USB摄像头设备识别 开始正文之前先来认识一下我的开发环境: 系统:ubuntu 10.04 开发板:AT91SAM9260 + Linux-2.6. ...

  4. ffmpeg php 抠像_实时虚拟抠像设备八路切换台

    功能介绍: 视频输入 多支持12个视频输入通道,必要时可以定制扩展到更多的通道. 设备输入:支持通过1394 / AV/HDMI/SDI/VGA采集卡,接驳各种 WDM 驱动的硬件设备:摄像头.摄像机 ...

  5. Linux网络摄像头设备端调试过程

    转载请标明出处:https://blog.csdn.net/u013752202/article/details/96502576 简介 网络摄像头,即常说的免驱摄像头,其采用UVC协议通过USB跟主 ...

  6. 与众不同 windows phone (22) - Device(设备)之摄像头(硬件快门, 自动对焦, 实时修改捕获视频)...

    原文:与众不同 windows phone (22) - Device(设备)之摄像头(硬件快门, 自动对焦, 实时修改捕获视频) [索引页] [源码下载] 与众不同 windows phone (2 ...

  7. [linux-nopage]内存映射虚拟字符设备驱动【P119】

    文章目录 目的:内核空间映射到用户空间 环境:Ubuntu 20.04 linux内核源码5.11.0-37-generic(版本自选) 实验结果 实验知识点 实验难点 实验代码 nopage.c M ...

  8. 隐藏在计算机网卡怎样删除,如何卸载电脑中隐藏的虚拟网卡设备

    虚拟网卡主要是建立远程计算机间的局域网,在此虚拟的局域网上能进行所有物理存在的局域网的操作,可以互相访问,可以联网玩游戏.当需要卸载电脑系统中的虚拟网卡时,在设备管理器中无法查看到虚拟网卡设备,那么怎 ...

  9. 虚拟字符设备驱动开发步骤

    目录 前言 字符设备驱动简介 内核驱动操作函数集合(file_operations结构体) 字符设备驱动开发步骤 .ko驱动模块的加载和卸载(module_init驱动入口.insmod驱动加载) 字 ...

  10. 海康内置4G卡的摄像头设备无法注册EasyCVR平台是什么原因?

    EasyCVR平台是一款融合多种协议接入方式的视频综合管理平台,可应用在安防.视频监控等场景中.平台不仅部署简单,且功能丰富.性能稳定.在视频能力上,EasyCVR支持海量视频汇聚管理.视频分发.智能 ...

最新文章

  1. 【驱动】uboot环境变量分析
  2. 几个值得收藏的国外有关Vue.js网站
  3. android 进lanucher的广播,(转)Android中Launcher对于AppWidget处理的分析:AppWidgetHost角色...
  4. 【学习总结】数学-欧拉函数
  5. linux 7 vsftpd 配置,centos7下vsftpd配置
  6. Zookeeper的数据模型
  7. 交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度
  8. WPF CanExecuteChanged
  9. python摄像头识别快递单号查询_免费对接快递鸟api单号识别查询接口(python)
  10. 动态调试 ida linux,IDA动态调试-ELF
  11. 以前是传xml的吗_李菲儿参加《浪姐2》,与黄晓明同台互动!不怕baby吃醋吗?...
  12. 拓端tecdat|用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
  13. 【QT安装】【QT+opencv安装】
  14. 运动会加油稿计算机学院150字,学校运动会加油稿150字10篇
  15. Grow up way
  16. HTML Rendering Error
  17. PPT提取文字C代码实现
  18. OpenGL画三角形
  19. 安全服务/渗透测试工程师_面试题之OWASP TOP 10
  20. 红豆薏米的祛湿效果到底好不好?

热门文章

  1. 豪迪QQ群发通杀破解补丁使用教程
  2. 开机自检(POST)
  3. SD卡分区Linux,使用MiniTool Partition Wizard对SD卡进行EXT4格式分区
  4. 条形码扫描模块的作用是什么?有什么应用意义?
  5. python绘制女孩_[宜配屋]听图阁
  6. 解决每次打开office都提示windows正在配置visio的问题以及office2013闪退问题
  7. validation参数检验 - 注解介绍
  8. bayaim_今晚打老虎
  9. Linux重要命令-locat
  10. word2013、word2016、word2019标题序号变黑色竖线解决方法