《基于Microsoft Direct Show的多媒體應(yīng)用程序開(kāi)發(fā)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Microsoft Direct Show的多媒體應(yīng)用程序開(kāi)發(fā)(3頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于Microsoft Direct Show的多媒體應(yīng)用程序開(kāi)發(fā)
Microsoft Direct Show是微軟Windows平臺(tái)中的SDK的重要組成部分,是一款新推出的基于Direct X和COM技術(shù)的多媒體應(yīng)用程序軟件開(kāi)發(fā)包,可以很方便地開(kāi)發(fā)出具備高性能和高質(zhì)量要求的多媒體應(yīng)用程序,是未來(lái)多媒體應(yīng)用程序的開(kāi)發(fā)方向。本文將從Direct Show的基本結(jié)構(gòu)出發(fā),分析和探討Microsoft Direct Show的平臺(tái)程序使用方法。
隨著信息技術(shù)的高速發(fā)展,多媒體信息技術(shù)的問(wèn)題也不斷增多,數(shù)據(jù)處理的非即時(shí)性、視頻音頻的非同步性、流的來(lái)源和格式的多樣性、用戶終端硬件設(shè)備的非
2、預(yù)見(jiàn)性等等都阻礙了多媒體應(yīng)用技術(shù)的進(jìn)一步發(fā)展,微軟公司針對(duì)此情形基于Direct X、Direct Draw以及Direct Sound的技術(shù)而設(shè)計(jì)出的多媒體程序運(yùn)用工具,這樣開(kāi)發(fā)者就不必考慮終端設(shè)備的不同和相對(duì)復(fù)雜的流數(shù)據(jù)格式,提供實(shí)現(xiàn)標(biāo)準(zhǔn)統(tǒng)一的高效接口。
1 Microsoft Direct Show的基本結(jié)構(gòu)及原理
1.1 濾波器
Direct Show對(duì)于數(shù)據(jù)的處理的過(guò)程都是相對(duì)獨(dú)立的,處理的過(guò)程工作都是不一樣的。濾波器作為Direct Show最基本的構(gòu)成元件,是完成這些過(guò)程的最基本的單元。在客戶終端,應(yīng)用程序的構(gòu)成就是濾波器組合而成濾波器圖。濾波器又分
3、為源濾波器、變換濾波器和提交濾波器幾大種類。源濾波器是濾波器圖中處理輸入數(shù)據(jù)的濾波器,將獲得的原始數(shù)據(jù)進(jìn)行簡(jiǎn)單處理之后交由下一道程序的濾波器;變化濾波器是濾波器處理的核心,將原始數(shù)據(jù)轉(zhuǎn)碼成多媒體數(shù)據(jù),將所得的數(shù)據(jù)流分解成多個(gè)數(shù)據(jù)流;提交濾波器是濾波器圖的最后環(huán)節(jié),將處理后的數(shù)據(jù)輸出給外部設(shè)備。
1.2 Pin
Pin是濾波器之間的相連接口,作為從I pin衍生出來(lái)的對(duì)象,濾波器可以創(chuàng)建或者Pin,對(duì)濾波器進(jìn)行控制。Pin分為輸入和輸出兩大類,對(duì)于任何兩個(gè)相連的Pin,要求的種類必須是不相同的,輸入的Pin只能與輸出Pin相連接,而在相連的過(guò)程中,相連Pin的濾波器必須進(jìn)行協(xié)
4、商對(duì)傳輸?shù)臄?shù)據(jù)流進(jìn)行統(tǒng)一。
1.3 多媒體數(shù)據(jù)樣本和數(shù)據(jù)類型
當(dāng)濾波器與濾波器之間相連的時(shí)候,必須要使用相同的數(shù)據(jù)類型以保證濾波器的連接傳輸數(shù)據(jù)的正確性,濾波器接收到上一級(jí)傳輸?shù)臄?shù)據(jù)是經(jīng)過(guò)COM的封裝了的,這樣產(chǎn)生給的數(shù)據(jù)就成為了多媒體數(shù)據(jù)樣本,當(dāng)然,在具體的多媒體數(shù)據(jù)傳輸?shù)臅r(shí)候,可能還需要加以時(shí)間戳使得處理的時(shí)間具有同步性。
1.4 時(shí)鐘
在Direct Show的應(yīng)用程序中,為了使得濾波器圖具有同一性運(yùn)轉(zhuǎn),需要為濾波器管理圖提供統(tǒng)一的時(shí)鐘用作參考,這樣能使得對(duì)于數(shù)據(jù)流的輸入和輸出能夠具有規(guī)范程序,同時(shí)在多媒體數(shù)據(jù)類型中使用的時(shí)間戳也是時(shí)鐘作用的重要體
5、現(xiàn)。
2 Microsoft Direct Show的多媒體應(yīng)用程序的開(kāi)發(fā)
2.1 COM Library的使用
在Direct Show Filter的存在形式中,COM成為了主導(dǎo)力量。在客戶使用終端,使用Direct Show的應(yīng)用程序必須要再使用開(kāi)始的時(shí)候進(jìn)行COM Library的初始化,這樣可以將其數(shù)據(jù)植入到鏈接數(shù)據(jù)庫(kù)和信息處理資源中,并能夠保證在進(jìn)行Direct Show應(yīng)用程序調(diào)制完成之后能夠釋放數(shù)據(jù)庫(kù)和信息處理資源中的數(shù)據(jù)。
2.2 創(chuàng)建Filter Graph
對(duì)于所有的Direct Show得使用都必須在Windows的環(huán)境
6、下完成注冊(cè)和登記,Direct Show對(duì)應(yīng)的是濾波器的固有的屬性,比如說(shuō)像多媒體類型數(shù)據(jù)的支持和濾波器的種類屬性等。Filter Graph生產(chǎn)制造者就是通過(guò)對(duì)前面所說(shuō)的Windows注冊(cè)表進(jìn)行搜索從而獲得濾波器的信息,并選擇最合適的、最滿足需要的濾波器創(chuàng)建Filter Graph。當(dāng)然,由用戶會(huì)存在創(chuàng)建Filter Graph不符合操作系統(tǒng)的擔(dān)憂,其實(shí)完全沒(méi)有必要,使用Direct Show創(chuàng)建Filter Graph可以不管系統(tǒng)使用的是那一種類的濾波器以及濾波器之間的數(shù)據(jù)連接的情形,而通過(guò)使用I Graph Builder創(chuàng)建函數(shù),就可以產(chǎn)生給出完整的Filter Graph。I Gra
7、ph Builder能夠通過(guò)調(diào)用Add source Filter來(lái)檢測(cè)文件的類型,從而進(jìn)一步判定濾波器的種類,在確定濾波器類型之后,通過(guò)Enter Matching Filters搜索濾波器的輸出類型進(jìn)而確定和添加搜索的濾波器,接下來(lái)可以使用I Graph Builder將濾波器之間進(jìn)行連接,并且在此基礎(chǔ)上還可以進(jìn)一步添加其他的濾波器,這樣Filter Graph的建立就順理成章了。
2.3 完善Direct Show的事件相應(yīng)機(jī)制
在Direct Show的多媒體應(yīng)用程序當(dāng)中,Direct Show的事件響應(yīng)機(jī)制是作為Filter Graph的管理者和用戶終端進(jìn)行交流連
8、接的借口,Direct Show對(duì)于數(shù)據(jù)流的處理可以提前進(jìn)行數(shù)據(jù)的預(yù)期活動(dòng)進(jìn)行預(yù)測(cè),類似于像傳輸?shù)臄?shù)據(jù)流的傳輸是否有結(jié)束的問(wèn)題能及時(shí)掌握,當(dāng)然,對(duì)于可以預(yù)期出現(xiàn)的事故和錯(cuò)誤也可以進(jìn)行預(yù)測(cè)和控制。
2.4 濾波器的開(kāi)發(fā)
Direct Show Filter的制作流程相對(duì)來(lái)說(shuō)較為復(fù)雜,對(duì)于Direct Show而言,上文也提到過(guò)濾波器在其使用中的核心地位。Direct Show Filter實(shí)際上就相當(dāng)于COM的開(kāi)發(fā)形式和過(guò)程,在開(kāi)發(fā)過(guò)程中盡量使用COM的規(guī)范操作流程,會(huì)相對(duì)更為規(guī)范,更容易被用戶所接納使用。
3 結(jié)語(yǔ)
綜上而言, Direct Show的多媒體技術(shù)是可以進(jìn)行迅速、穩(wěn)定并具有高性能的多媒體應(yīng)用程序的開(kāi)發(fā)的重要方法和手段,因此,要注重Direct Show的多媒體應(yīng)用程序開(kāi)發(fā)技術(shù)的發(fā)展,充分發(fā)揮其在多媒體技術(shù)中作用。
作者簡(jiǎn)介
張俊(1984-),男,江蘇省揚(yáng)州市人,研究生學(xué)歷,研究方向?yàn)閿?shù)字媒體技術(shù),影視后期制作,廣播電視制作。
作者單位
江蘇省揚(yáng)州商務(wù)高等職業(yè)學(xué)校 江蘇省揚(yáng)州市 225009