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