基于3G的流媒體服務(wù)技術(shù)研究
摘要:基于研究當(dāng)前3G環(huán)境下的流媒體服務(wù)技術(shù)的目的,采用了基于3G網(wǎng)絡(luò)的移動(dòng)流媒體系統(tǒng)架構(gòu);通過研究DirectShow、MPEG-4編碼、多速率編碼、RTP/RTCP以及Windows共享內(nèi)存映射等技術(shù),深入分析移動(dòng)流媒體服務(wù)器的特點(diǎn)以及流媒體播放軟件的架構(gòu),最終設(shè)計(jì)了移動(dòng)流媒體播放系統(tǒng),共分為兩個(gè)部分:1)流媒體服務(wù)器;2)終端流媒體播放軟件,經(jīng)過試驗(yàn),所設(shè)計(jì)的系統(tǒng)穩(wěn)定性好、實(shí)時(shí)性強(qiáng),具有較高的實(shí)用價(jià)值。
關(guān)鍵詞:3G;移動(dòng)設(shè)備;流媒體;RTP/RTCP
隨著云計(jì)算、物聯(lián)網(wǎng)技術(shù)的興起,特別是3G技術(shù)開始在我國廣泛應(yīng)用,使人們隨時(shí)隨地接入互聯(lián)網(wǎng),享受24小時(shí)在線的服務(wù)成為可能。同時(shí)為了滿足人們對(duì)于更高質(zhì)量影音感受的要求,多媒體信息處理技術(shù)正在以前所未有的速度迅猛發(fā)展,各種數(shù)字視頻技術(shù)已經(jīng)被應(yīng)用于大眾的日常生活中。隨著社會(huì)經(jīng)濟(jì)建設(shè)的需要,各種定制化、功能各異的嵌入式設(shè)備大量出現(xiàn),不僅方便了人們的生活,也為各種技術(shù)應(yīng)用找到了新的領(lǐng)域?,F(xiàn)在,各種通信設(shè)備特別是智能手機(jī)等嵌入式終端設(shè)備的不斷出現(xiàn),使得基于多媒體的應(yīng)用能夠?qū)崿F(xiàn),如可視電話通信、網(wǎng)絡(luò)實(shí)時(shí)手機(jī)會(huì)議、終端視頻監(jiān)控等。
目前,基于TCP/IP的互聯(lián)網(wǎng)視頻點(diǎn)播已經(jīng)成為了流行趨勢(shì),無論是技術(shù)還是制度上都正趨于成熟,各項(xiàng)標(biāo)準(zhǔn)也正逐漸開始建立。但是網(wǎng)絡(luò)視頻還都是在PC上觀看,而對(duì)于屏幕狹小、網(wǎng)絡(luò)連接不穩(wěn)、資源有限的移動(dòng)設(shè)備來說,如何設(shè)計(jì)出符合嵌入式特點(diǎn)的流媒體播放系統(tǒng)成為了在線視頻播放是否能夠在移動(dòng)設(shè)備上成功的關(guān)鍵。移動(dòng)流媒體播放系統(tǒng)中,處理器和操作系統(tǒng)必須緊密配合,系統(tǒng)應(yīng)該具備視頻硬編解碼能力、網(wǎng)絡(luò)視頻傳輸和調(diào)度、能夠自動(dòng)控制流速率等強(qiáng)大功能。隨著3G網(wǎng)絡(luò)的進(jìn)一步覆蓋,網(wǎng)絡(luò)質(zhì)量的不斷提高,基于3G網(wǎng)絡(luò)的移動(dòng)流媒體播放系統(tǒng)應(yīng)用前景非常廣闊,正成為行業(yè)新的利潤增長點(diǎn)之一。
1 移動(dòng)流媒體工作原理
互聯(lián)網(wǎng)是IP分組交換為基礎(chǔ)進(jìn)行連續(xù)的異步傳輸,待各個(gè)分組到達(dá)目的主機(jī)后再根據(jù)分組序列進(jìn)行組包,但對(duì)于在線音頻、視頻文件,往往其所在存儲(chǔ)空間很大,在網(wǎng)絡(luò)中傳輸需要被分解為很多IP包,又網(wǎng)絡(luò)狀態(tài)甚至網(wǎng)絡(luò)拓?fù)涠际莿?dòng)態(tài)變化的,每個(gè)包經(jīng)過的路由可能不盡相同,所以到達(dá)客戶端的時(shí)間延遲也不盡相同,有時(shí)候先發(fā)的數(shù)據(jù)包還有可能后到。由于這個(gè)原因,必須使用緩存技術(shù)來彌補(bǔ)時(shí)間延遲和網(wǎng)絡(luò)抖動(dòng)的影響,最大程度保證數(shù)據(jù)包可以按正確的順序排列,從而使多媒體數(shù)據(jù)不間斷地連續(xù)輸出,減小因?yàn)榫W(wǎng)絡(luò)暫時(shí)擁塞而使播放出現(xiàn)停頓的影響。一般,每個(gè)多媒體流所需的高速緩存容量并不龐大,再者高速緩存一般使用環(huán)形鏈表數(shù)據(jù)結(jié)構(gòu)進(jìn)行實(shí)現(xiàn),不會(huì)出現(xiàn)溢出的情況;通過丟棄已經(jīng)無用的、播放過的片段,將后續(xù)尚未播放的內(nèi)容覆蓋之前的內(nèi)容就可以使高速緩存循環(huán)利用。
如圖1所示,現(xiàn)在比較流行的移動(dòng)流媒體播放過程一般如下:用戶打開嵌入式流媒體播放軟件選擇某一流媒體資源后,此時(shí)流媒體播放軟件會(huì)通過3G網(wǎng)絡(luò)連入互聯(lián)網(wǎng),與對(duì)應(yīng)的流媒體服務(wù)器之間使用HTTP協(xié)議交換數(shù)據(jù)以及控制信息,向用戶呈現(xiàn)實(shí)時(shí)的多媒體播放信息,用戶可以進(jìn)行檢索播放;當(dāng)用戶選中某一多媒體文件播放時(shí),流媒體播放軟件使用HTTP鏈接從流媒體服務(wù)器獲取多媒體文件的相關(guān)參數(shù),并對(duì)播放終端初始化。這些參數(shù)包括資源的位置信息、多媒體數(shù)據(jù)的編碼類型、以及流媒體服務(wù)器的相關(guān)參數(shù)。最后,流媒體播放開始,此后流媒體播放終端會(huì)和流媒體服務(wù)器周期性地交換狀態(tài)信息,以便更好地進(jìn)行播放。
2 移動(dòng)流媒體播放系統(tǒng)設(shè)計(jì)
完整的流媒體播放系統(tǒng)分為兩個(gè)部分:1)提供流媒體服務(wù)的流媒體服務(wù)器;2)終端流媒體播放軟件。對(duì)于流媒體服務(wù)器,只給出其實(shí)現(xiàn)流媒體服務(wù)所必須實(shí)現(xiàn)的關(guān)鍵技術(shù),而終端流媒體播放軟件筆者給出了軟件的整體架構(gòu)以及進(jìn)行編程實(shí)現(xiàn)的具體技術(shù)。
2.1 流媒體服務(wù)器關(guān)鍵技術(shù)
文中所設(shè)計(jì)的基于3G網(wǎng)絡(luò)的流媒體服務(wù)運(yùn)行于Windows Server2003操作系統(tǒng)上,提供的流媒體服務(wù)綜合使用多種流行的流媒體技術(shù),主要有如下6個(gè):
1)DirectShow技術(shù)
微軟DirectShow基于DirectX技術(shù),是微軟Windows平臺(tái)上的流媒體主要開發(fā)工具。DirectShow可以支持多種格式,其中,視頻有:高級(jí)流格式(ASF),活動(dòng)圖片專家組格式(MPEG),音頻一視頻交叉格式(AVI),音頻有:MP3格式和WAV文件格式等。DirectShow捆綁了各種DirectX技術(shù),會(huì)自動(dòng)偵測(cè)和利用視頻和音頻硬件進(jìn)行加速,同時(shí)也支持沒有硬件加速的系統(tǒng)。如圖2所示,DirectShow使用一種叫Filter Graph的模型來管理整個(gè)數(shù)據(jù)流的處理過程,按照功能Filter可以分為3類:Source Filters,主要負(fù)責(zé)獲取數(shù)據(jù),其中數(shù)據(jù)源可以是視頻文件,或者是視頻采集卡WDM和VFM驅(qū)動(dòng)的圖像采集設(shè)備等;Transform Fihers,主要負(fù)責(zé)數(shù)據(jù)的格式轉(zhuǎn)換,例如音視頻數(shù)據(jù)流的分離/合成,解碼/編碼等;Rendering Filters,主要負(fù)責(zé)將最終的數(shù)據(jù)傳遞給顯卡以及聲卡進(jìn)行多媒體的播放,或者輸出到多媒體文件進(jìn)行最后的存儲(chǔ)。
[!--empirenews.page--]
2)MPEG-4編碼技術(shù)
MPEG-4的全稱是Moving Pictures Experts Group(動(dòng)態(tài)圖象專家組的英文縮寫),是基于對(duì)象的運(yùn)動(dòng)圖像壓縮編碼標(biāo)準(zhǔn),其核心算法是運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)以及帶有DCT的幀內(nèi)變長編碼,并使用了可擴(kuò)展的時(shí)間和空間分級(jí)編碼技術(shù),使用者可以根據(jù)編碼端的網(wǎng)絡(luò)狀況動(dòng)態(tài)地選擇和調(diào)整編碼算法,以使編碼速率依據(jù)網(wǎng)絡(luò)帶寬狀態(tài)動(dòng)態(tài)變化,所以MPEG-4標(biāo)準(zhǔn)極適用于Internet上的多媒體傳輸,支持從5 kbit/s到10 Mbit/s
的寬范圍比特率?,F(xiàn)在,MPEG-4標(biāo)準(zhǔn)在移動(dòng)終端平臺(tái)上得到了廣泛應(yīng)用,并成為了3GPP組織制定的PSS規(guī)范中指定的多媒體編解碼標(biāo)準(zhǔn)之一。
3)多速率編碼技術(shù)
多速率編碼技術(shù)是指將指定的多媒體數(shù)據(jù)解編碼為多個(gè)獨(dú)立的、不同速率的數(shù)據(jù)流的技術(shù)。當(dāng)進(jìn)行多媒體流數(shù)據(jù)傳輸時(shí),從多個(gè)不同速率的數(shù)據(jù)流中選擇最接近但不大于網(wǎng)絡(luò)傳輸帶寬的數(shù)據(jù)流進(jìn)行傳輸。通過對(duì)多媒體數(shù)據(jù)流的多速率處理和選擇,可以在一定程度上適應(yīng)網(wǎng)絡(luò)環(huán)境的變化并消除3G網(wǎng)絡(luò)帶寬不穩(wěn)定帶來的不利因素。
4)RTP/RTCP網(wǎng)絡(luò)傳輸控制技術(shù)
RTP是為傳輸音頻、視頻等數(shù)字多媒體等實(shí)時(shí)要求較高的數(shù)據(jù)而設(shè)計(jì)網(wǎng)絡(luò)傳輸協(xié)議。與通常要求高可靠的數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)傳輸層協(xié)議相比,RTP則更加注重?cái)?shù)據(jù)傳輸?shù)膶?shí)時(shí)性。RTP協(xié)議提供了包括時(shí)間戳、數(shù)據(jù)向量、擁塞控制等服務(wù)。RTP協(xié)議與其傳輸控制協(xié)議RTCP協(xié)同工作,一起對(duì)數(shù)據(jù)的傳輸進(jìn)行控制,并及時(shí)探測(cè)并處理3G網(wǎng)絡(luò)環(huán)境的變化。
5)Windows共享內(nèi)存映射技術(shù)
不同線程模塊間數(shù)據(jù)的高效傳輸與同步是系統(tǒng)性能和可靠的保證,為此我們采用了基于Windows共享內(nèi)存來映射緩存數(shù)據(jù)文件,將多速率編碼生成的多媒體數(shù)據(jù)放入共享內(nèi)存映射文件中,提供給流媒體模塊使用,以保證多媒體數(shù)據(jù)交換的實(shí)時(shí)與準(zhǔn)確。
2.2 終端流媒體播放軟件設(shè)計(jì)
整個(gè)流媒體播放器的軟件架構(gòu)如圖3所示,共分為4個(gè)大的模塊:
1)用戶界面層 采用Qt庫實(shí)現(xiàn),完全的面向?qū)ο笤O(shè)計(jì),界面易擴(kuò)展,各種功能使用插件的形式完成;主要負(fù)責(zé)界面各種按鈕的消息捕獲、處理,完成播放器所有功能窗口的創(chuàng)建、銷毀以及管理,當(dāng)出現(xiàn)軟件有錯(cuò)誤發(fā)生時(shí),向用戶返回友好的錯(cuò)誤提示。同時(shí),播放在線流媒體的時(shí)候,可以顯示當(dāng)前播放媒體的狀態(tài)信息。
2)媒體適配層 主要負(fù)責(zé)向GUI模塊提供底層無關(guān)的流媒體播放API接口,與GUI交換媒體數(shù)據(jù),以及響應(yīng)用戶在GUI上的操作,控制下層模塊進(jìn)行實(shí)際的執(zhí)行。
3)狀態(tài)控制模塊 主要負(fù)責(zé)通過3G網(wǎng)絡(luò)協(xié)議與互聯(lián)網(wǎng)服務(wù)器進(jìn)行交互,接收相關(guān)媒體信息;通過RTSP協(xié)議與流媒體服務(wù)器交互,得到流媒體數(shù)據(jù)與控制信息;之后,根據(jù)3G移動(dòng)設(shè)備本身的特點(diǎn)進(jìn)行預(yù)處理。
4)核心模塊 主要負(fù)責(zé)音視頻的分離,以及調(diào)用移動(dòng)設(shè)備的編解碼芯片進(jìn)行音視頻的編解碼,并實(shí)現(xiàn)音頻、視頻的同步輸出。
3 結(jié)論
隨著通信技術(shù)的突飛猛進(jìn),3G通信網(wǎng)幾乎覆蓋了我國所有城市,人們對(duì)在線視頻播放的興趣也越來越大。“onlineanytime,surfing anywhere”,3G時(shí)代的來臨使這一切成為了可能,也標(biāo)志著未來互聯(lián)網(wǎng)的發(fā)展方向。作為3G應(yīng)用中的熱門,移動(dòng)流媒體技術(shù)將會(huì)被廣泛研究和推廣,成為用戶體驗(yàn)3G網(wǎng)絡(luò)的流行手段。