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