資源描述:
《視頻采集系統(tǒng)的設(shè)計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、萬方數(shù)據(jù)視頻采集系統(tǒng)的設(shè)計與實現(xiàn)梁曉瑩廣東女子職業(yè)技術(shù)學(xué)院摘熏當(dāng)下比較流行的即時通信工具,比如MSN,QQ等都實現(xiàn)了.視頻的功能。這樣通過視頻,使得人與人之問能夠更好地通過網(wǎng)絡(luò)進行溝通。本文通過介紹Direc'GShow的基本原理,提出r一種基于DirectShow的視頻采集設(shè)計方案。關(guān)鍵溺.-一D{rectShow;視頻采集;過濾器審黧分類號:TP39£磚l_’,j冀耩耩贊鶿:毒‘:_rAbstractInstantlythecomparativelypopularicq(Or‘ISeekYou’)tooIs,MSN.qqandSOOn,havevideofu
2、nction.Withthehelpofthis,peoplehavebettercommunicationwitheachotherbyInternet.Inthispaper.thetheoryofDirectShowisdiscussedsystematicallyandcomprehensiveIy.ThenadesignschemeofvideocapturesystembasedonDirectShowispresented.KeywordsDirectShow:VideoCapture:Filter1、引言隨著數(shù)字視頻處理技術(shù)的不斷發(fā)展,基于數(shù)字編
3、解碼的多媒體應(yīng)用已經(jīng)越來越深入到人們的日常生活中,j微軟公司的DirectShow架構(gòu)就是專門1針對多媒體應(yīng)用而提出的。它簡化了基于Windows平臺的數(shù)字媒體的應(yīng)用
4、開發(fā),將應(yīng)用與復(fù)雜的數(shù)據(jù)傳輸、硬件差異和同步隔離開來,為Windows平臺上處理各種格式的媒體文件的回放、視頻采集等高性能要求的多媒體應(yīng)用,提供了完整的解決方案。2、DirectShow的工作原理DirectShow是微軟公司提供的一套在Windows平臺上進行流媒體處理1的開發(fā)包,與DirectX開發(fā)包一起發(fā)布。DirectX是一個用于多媒體應(yīng)用程序和硬件增強的編程環(huán)境,它是微軟為了將其Wind
5、ows建設(shè)成適應(yīng)各種多媒體的最好平臺而開發(fā)設(shè)計的。DirectShow作為DirectX大家族的一員為多媒體流的采集和回放提供了強有力的支持。運用DirectShow,我們可以很方便地從支持WDM驅(qū)動模型的采集卡上捕獲數(shù)據(jù),并且進行相應(yīng)的后期處理乃至存儲到文件中。它廣泛地支持各種媒體格式,使得多媒體數(shù)據(jù)的回放變得輕而易舉。同時,它為需要定制應(yīng)用解決方案提供底層流控制結(jié)構(gòu),用戶也可以創(chuàng)建自己的DirectShow組件以支持新的媒體格式。Filter是DirectShow中最基本的圖1DirectShow系統(tǒng)(源自DirectXSDK9.0)112萬方數(shù)據(jù)概念。Di
6、rectShow使用FilterGraph來管理Filter。Filter一般由一個或多個Pin(SourceFilter、TransformFilter、RenderingFilter)組成,F(xiàn)ilter之間通過Pin相互連接,構(gòu)成一條順序的鏈路,如圖l所示。DirectShow提供的過濾器按照功能大致分為3類:源過濾器,轉(zhuǎn)換過濾器和渲染過濾器。源過濾器主要負責(zé)獲取數(shù)據(jù),數(shù)據(jù)源可以是文件、因特網(wǎng)、計算機里的采集以及數(shù)字攝像機等等,然后將數(shù)據(jù)往下傳輸;轉(zhuǎn)換過濾器主要負責(zé)數(shù)據(jù)的格式轉(zhuǎn)換,例如數(shù)據(jù)流的分離\合成、解碼\編碼等,然后將數(shù)據(jù)繼續(xù)往下傳輸;渲染過濾器主要負
7、責(zé)數(shù)據(jù)的最終去向,將數(shù)據(jù)送給顯卡、聲卡進行多媒體的演示,或者輸出到文件進行存儲。3、DirectShow的設(shè)計與實現(xiàn)視頻采集不僅指創(chuàng)建視頻文件,還包括預(yù)覽或使用所采集視頻數(shù)據(jù)。DirectShow對于視頻的采集提供了很好的接口,利用ICaptureGraphBuilder2接口可以很輕松的建立起視頻采集的graPh圖。一般開發(fā)DirectShow應(yīng)用程序有3個階段:第一個階段,具體調(diào)用COCreateInstance()創(chuàng)建一個FilterGraphManger組件;第二階段根據(jù)實際的應(yīng)用,創(chuàng)建一條完整的Filter鏈路,具體構(gòu)建方法大體有:AddFilter,
8、COnectDirect。AddSOurCeFilter,COnnect。Render,RenderFile;第三個階段調(diào)用QueryInterface()查詢獲取FilterGraphManager上的各個接口,并調(diào)用相應(yīng)的方法進行控制,完成FilterGraphManager與應(yīng)用程序的事件交互。下面給出了具體的視頻采集系統(tǒng)的軟件實現(xiàn)方案,構(gòu)建相應(yīng)的過濾器圖,并就其中一些技術(shù)作了分析。Colnifialize(NULL);//COM庫初始化CoUninitialize(){//釋放COM庫使用的資源//調(diào)用封裝在類CSuCapture中枚舉視頻采集卡設(shè)備的方
9、法IBaseFilter