欢迎来到天天文库
浏览记录
ID:34471381
大小:380.31 KB
页数:5页
时间:2019-03-06
《视频采集系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据视频采集系统的设计与实现梁晓莹广东女子职业技术学院摘熏当下比较流行的即时通信工具,比如MSN,QQ等都实现了.视频的功能。这样通过视频,使得人与人之问能够更好地通过网络进行沟通。本文通过介绍Direc'GShow的基本原理,提出r一种基于DirectShow的视频采集设计方案。关键溺.-一D{rectShow;视频采集;过滤器审黧分类号:TP39£砖l_’,j冀耩耩赞鹚:毒‘:_rAbstractInstantlythecomparativelypopularicq(Or‘ISeekYou’)tooIs,MSN.qqandSOOn,havevideofu
2、nction.Withthehelpofthis,peoplehavebettercommunicationwitheachotherbyInternet.Inthispaper.thetheoryofDirectShowisdiscussedsystematicallyandcomprehensiveIy.ThenadesignschemeofvideocapturesystembasedonDirectShowispresented.KeywordsDirectShow:VideoCapture:Filter1、引言随着数字视频处理技术的不断发展,基于数字编
3、解码的多媒体应用已经越来越深入到人们的日常生活中,j微软公司的DirectShow架构就是专门1针对多媒体应用而提出的。它简化了基于Windows平台的数字媒体的应用
4、开发,将应用与复杂的数据传输、硬件差异和同步隔离开来,为Windows平台上处理各种格式的媒体文件的回放、视频采集等高性能要求的多媒体应用,提供了完整的解决方案。2、DirectShow的工作原理DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理1的开发包,与DirectX开发包一起发布。DirectX是一个用于多媒体应用程序和硬件增强的编程环境,它是微软为了将其Wind
5、ows建设成适应各种多媒体的最好平台而开发设计的。DirectShow作为DirectX大家族的一员为多媒体流的采集和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,使得多媒体数据的回放变得轻而易举。同时,它为需要定制应用解决方案提供底层流控制结构,用户也可以创建自己的DirectShow组件以支持新的媒体格式。Filter是DirectShow中最基本的图1DirectShow系统(源自DirectXSDK9.0)112万方数据概念。Di
6、rectShow使用FilterGraph来管理Filter。Filter一般由一个或多个Pin(SourceFilter、TransformFilter、RenderingFilter)组成,Filter之间通过Pin相互连接,构成一条顺序的链路,如图l所示。DirectShow提供的过滤器按照功能大致分为3类:源过滤器,转换过滤器和渲染过滤器。源过滤器主要负责获取数据,数据源可以是文件、因特网、计算机里的采集以及数字摄像机等等,然后将数据往下传输;转换过滤器主要负责数据的格式转换,例如数据流的分离\合成、解码\编码等,然后将数据继续往下传输;渲染过滤器主要负
7、责数据的最终去向,将数据送给显卡、声卡进行多媒体的演示,或者输出到文件进行存储。3、DirectShow的设计与实现视频采集不仅指创建视频文件,还包括预览或使用所采集视频数据。DirectShow对于视频的采集提供了很好的接口,利用ICaptureGraphBuilder2接口可以很轻松的建立起视频采集的graPh图。一般开发DirectShow应用程序有3个阶段:第一个阶段,具体调用COCreateInstance()创建一个FilterGraphManger组件;第二阶段根据实际的应用,创建一条完整的Filter链路,具体构建方法大体有:AddFilter,
8、COnectDirect。AddSOurCeFilter,COnnect。Render,RenderFile;第三个阶段调用QueryInterface()查询获取FilterGraphManager上的各个接口,并调用相应的方法进行控制,完成FilterGraphManager与应用程序的事件交互。下面给出了具体的视频采集系统的软件实现方案,构建相应的过滤器图,并就其中一些技术作了分析。Colnifialize(NULL);//COM库初始化CoUninitialize(){//释放COM库使用的资源//调用封装在类CSuCapture中枚举视频采集卡设备的方
9、法IBaseFilter
此文档下载收益归作者所有