DirectShow视频卡开发 VFW、WDM驱动模型
九视电子视频采集卡系列产品中有多款针对专业流媒体高清领域打造的音视频采集卡,其能直接兼容各种Direct Show标准开发的视频应用软件,无需开发便能直接进行应用
目前九视推出的流媒体采集卡,都可以支持DirectShow标准开发,甚至有的还提供完整的二次开发包SDK.对于多媒体视频应用程序二次开发,给视频捕获编程带来了很大的方便,特别是许多关于流媒体视频的软件(如视频会议、可视电话等)开发都应用于视频捕获技术。视频捕获与实时处理是目前视频处理系统中最关键的技术之一。
说起视频捕捉/视频采集问题,我们先要来看一下视频采集卡。
根据使用的驱动程序的不同来分类,目前市场上大致有两种视频采集卡:VFW (Video for Windows)视频卡和WDM (Windows Driver Model)视频卡。
采用VFW的一般都是些以前生产的卡;市面上的视频采集卡,一般都是采用了WDM驱动程序。另外,视频采集卡的接口,可以是以PCI或AGP的方式插入PC机箱,也可以直接以USB接口(USB视频采集卡)的方式外挂;还有就是通过1394接口(DV1394卡)与PC机相连的数码摄像机等等。
VFW是一种趋于废弃的驱动模型,而后者是前者的替代模型;Microsoft 的Visual C++自从4.0版就开始支持Video for Windows(简称VFW),这给视频捕获编程带来了很大的方便。由于VFW SDK只有VC和VB版,没有Delphi版,DirectShow使用了一个标识为CLSID_VfwCapture的Filter来支持VFW卡。跟WDM卡相比,VFW卡实现的功能要简单得多。一般要将驱动程序内的设置对话框显示给用户。
WDM支持USB、IEEE 1394、ACPI等全新的硬件标准。而且以往在两个平台上同时运行时需要编写两个截然不同的驱动程序,现在只需要编写一个WDM驱动程序就可以了。对于流媒体应用程序,WDM在核心态提供了快速反应的接口来处理I/O流。WDM的流接口是通过标准的WDM类接口提供出的。
WDM还支持更多新的特性,比如直接支持电视接收、视频会议、1394接口的设备、桌面摄像机、多条视频流(Line-21或Closed-Caption等)同时输出等等。
WDM采集卡,设置Capture输出的图像格式、图像的对比度、亮度、色度、饱和度等,都是通过IAMStreamConfig、IAMVideoProcAmp等接口来实现,当然,在GraphEdit中可以通过Filter的Property Page来设置,
使用DirectShow(DirectShow是美国微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,与DirectX开发包一起发布)来处理一般的视频捕捉问题,是相对比较简单的。这当然得益于DirectShow这一整套先进的应用架构。DirectShow提供了大量的接口,但在编程中发现还是不够方便,如果能构建一个视频捕捉类把常用的一些动作封装起来,那么就更方便了。如视频会议软件等都需要加入视频捕捉功能,那么必须首先获取并初始化IcaptureGraphBuilder2接口,然后选择一个适当的视频捕捉设备。选择好设备后,为该设备创建Capture filter,然后调用AddFilter把Capture filter添加到Filter Graph。目前很多视频会议软件、直播软件等都是在DirectShow标准上开发的,DirectShow提供了一个叫做Capture Graph Builder的对象,Capture Graph Builder提供IcaptureGraphBuilder2接口,建立视频捕捉应用程序更加容易。DirectShow是一种开发包,广泛应用于视频编辑、录播、直播等行业。支持大量视频格式,如Asf、Mpeg、Avi、Dv、Mp3、Wave等等,并能直接播放DVD。
视频采集卡开发工具
SDK:Direct Show 、VC、VB、Delphi。
驱动:WDM、VFW、DirectX、OpenCV、Matlab、LabView、Halcon、MIL。
视频捕捉卡通常也是以一个(Capture) Filter的形式出现的。处理视频捕捉,我们同样是使用Filter Graph,同样是操作Filter;控制起来,就似于操作媒体文件的播放。当然,这主要是从应用程序控制层面上来说的;视频捕捉的应用场合比较多,视频捕捉本身的一些处理还是有它的特殊性的,而且牵涉面比较广。
九视视频采集卡系列产品中有多款针对专业流媒体高清领域打造的音视频采集卡,其能直接兼容各种Direct Show标准开发的视频应用软件,无需开发便能直接进行应用,如目前市面上常见的视频会议、网络直播点播、大屏融合等软件,都能直接进行应用,针对视频开发的需求可提供SDK开发包。
对于多路音视频流媒体采集卡:九视T306E流媒体采集卡是一款可以同时采集六路音频和六路视频信号的采集卡,支持各种DirectShow开发的视频软件,并可以在微软Amcap、Media Encoder,Real公司Real Producer等各种常用使用软件下使用,在Direct Show 的Video Capture Filter中新增了“设备属性”、“高级视频属性”设置面板,详情可参考:T306E 6路音视频流媒体采集卡新增功能。
对于1080P高清音视频流媒体采集卡:采用微软AVStream标准驱动,输入视频信号可达1080p/60 Hz的九视T620E高清万能视频采集卡,兼容使用DirectShow接口的各种音视频采集软件和使用DirectSound接口的音频采集软件,九视T620E采集卡在Direct Show 的Video Capture Filter中增加了“设备属性”、“高级视频属性”等相关的设置面板,详情可参考:万能高清视频采集卡相关属性面板说明。
相关新闻