【摘要】隨著移動通信技術的不斷發展,流媒體視頻在無線環境下的應用得到普及。然而,移動網絡環境所存在的不穩定性可能導致誤碼率高以及阻塞丟失嚴重的情況,從而嚴重影響用戶的觀看體驗。因此,如何在現有移動網絡環境發生頻繁切換或網絡較不穩定的情況下,仍使用戶獲得較好的流媒體視頻播放體驗,成了迫切需要解決的課題。本文研究提出了一種基于丟包率統計的無線環境下流媒體碼率動態適配的方法,能夠根據網絡環境條件為用戶重新選擇適合用戶的播放體驗的視頻碼率,從而保證視頻的傳輸質量和流暢度,優化用戶的視頻體驗。
【關鍵詞】移動網絡流媒體視頻碼率動態適配
近年來,移動通信技術不斷發展,隨著移動無線寬帶接入技術的引入,無線網絡的接入速度得到飛速提升。同時,隨著手機終端的越來越智能化手機終端已經從簡單的通信、聯絡工具,發展成為一個智能的多媒體平臺。流媒體視頻在移動網絡環境下的應用逐漸被越來越多的用戶所認識和接受。然而,由于移動網絡環境會受到信道的多徑衰落、傳輸遮擋以及移動切換(handoff)、延遲等因素的影響,容易出現帶寬波動大、誤碼率高以及阻塞丟失嚴重[1],一旦因傳輸問題造成丟包后,解碼端還原出來的視頻質量往往會大打折扣。因此,如何在減少網絡環境變化對用戶產生的影響,保障用戶獲得良好的播放體驗,就成了急需解決的課題。
通過動態碼率適配技術可以有效地根據網絡環境條件的變化為用戶重新選擇適合用戶的播放體驗的視頻碼率。動態碼率技術要求流媒體平臺的編碼系統和傳輸系統都能夠根據移動網絡環境的變化自動地進行動態適配。編碼系統通過動態多碼率(MBR)的方式來適應移動網絡環境變化,而傳輸系統則需通過反饋消息來調整服務器端發送的碼率。通過碼率動態適配的技術,移動網絡環境的鏈路狀況、播放器緩沖區的剩余容量等信息能夠及時地反饋到流服務端。從而有效避免播放器緩沖區數據溢出,或是緩沖區的數據處于饑餓狀態。
一、流媒體業務概述
1.1移動流媒體視頻業務概述
移動流媒體視頻業務是通過移動網絡流媒體方式,為用戶提供以音視頻為主要形式的節目體驗,用戶可以通過手機終端采取邊下載邊收看的方式在線觀看音視頻節目,無需耗費下載時間,更不占用手機存儲,它是網絡音視頻技術和移動通信技術結合的產物,是融合了很多網絡技術后產生的新技術,涉及到流媒體數據的采集、壓縮、存儲、無線網絡通信以及移動終端等多個領域[2]。
1.2流媒體視頻業務的技術架構
流媒體視頻業務平臺是面向用戶提供流媒體視頻業務的技術支撐服務平臺,提供業務接入、業務展現、業務邏輯、業務能力以及數據管理等全部業務功能的實現,主要可以分為手機終端域和系統平臺兩大部分。
手機終端域主要負責承載客戶端軟件及WAP界面服務,為用戶提供業務展現及頁面內容,從而使手機終端與流媒體視頻業務平臺的業務交互等功能得以實現。
系統平臺主要負責業務應用的實現、業務展現的實現、流媒體能力、業務運營能力、核心管理和系統維護等功能。其中包含了業務展現域、流媒體能力域、業務運營、核心管理等。
二、流媒體視頻碼率動態適配方案研究
2.1基于丟包率方案
基于丟包率方案的動態適配方式,是利用手機終端發送標準的RTCP RR包,來測量當前網絡的吞吐量和丟包數目。流媒體服務器根據RTCP RR包的反饋,來判斷丟包率是否超出了預先設定的閥值,如丟包率未超出門限閥值,就維持原有碼率繼續進行傳輸,如果丟包率超出了門限閾值,則進行碼率切換,重新選擇合適的碼率發送給終端。
在移動流媒體業務中,流媒體服務器接收RTCP RR報告的間隔時間取決于RTCP包傳輸帶寬和RTCP包的平均包長等因素。一般應取盡可能最高的報告速率,即取盡可能最小的RTCP報告包間隔。流媒體服務器會根據這種反饋進行流媒體碼流速率的調整判斷,根據計算后的目標發送速率,實現動態帶寬的可伸縮性。
2.2基于客戶端緩沖反饋方案
基于客戶端緩沖方案的動態碼率適配方案,是利用3GPP R6客戶端和服務器中支持的客戶端緩沖反饋機制。該機制中,客戶端播放器向流媒體服務器發送的RTCP RR消息中的NADU(Next Application Data Unit)字段包含了客戶端緩沖區可用大小等信息,從而是服務器可根據客戶端緩沖信息估算出帶寬情況,并選擇與之相匹配的直播、點播文件的碼率,進行切換。
基于客戶端緩沖反饋方案對系統設備有一定的要求,客戶端播放器必須支持在RTCP Receive Report消息上報NADU字段;視頻編碼器須支持多路碼率輸出到一個直播SDP文件,轉碼器須支持多路碼率輸出到一個點播文件;此外,流服務器必須支持3GPP R6的RTCP NADU APP packet消息,可根據多碼率直播點播文件進行碼率切換。
2.3基于鏈路估算方案
基于鏈路估算方案的動態碼率適配方案,是通過估算無線網絡的帶寬情況,來實現對流媒體視頻業務的發送碼率以及節目速率進行動態調整。通信過程中,客戶端需要向服務器提供流傳輸質量的度量反饋,其目的是使流媒體服務器用來測定用戶體驗的(主觀)質量(QoE)和改進監控服務器。當采用基于無線鏈路帶寬估算的碼率動態適配方案時,該量度參數即為當前可測量的網絡吞吐量。
2.4現有方案優劣勢對比
基于鏈路估算的方案在市場上幾乎沒有播放器支持,因此,目前主流的流服務以及終端播放器支持的動態碼率動態適配技術主要是基于丟包率統計方案和基于客戶端緩沖反饋方案。
根據丟包率統計的動態碼率技術,其優點在于對客戶端播放器要求低,缺點在于通過丟包率控制播放速率,服務器碼率切換具有滯后性,切換過程中將會出現馬賽克現象,影響到用戶體驗。目前多數手機播放器都支持該方案,因此該方案的可實施性較好。
根據客戶端緩沖反饋機制的動態碼率技術,其優點在于可實時獲取客戶端buffer情況,服務器碼率切換相對及時,可有效避免切換過程中馬賽克產生。缺點在于,要求手機播放器必須支持3GPP R6,在RTCP Receive Report消息上報NADU。由于目前市場上支持該功能的手機播放器較少,該方案的可實施性相對較差。
三、流媒體視頻碼率動態適配方案
結合現有流媒體視頻平臺及終端播放器對動態碼率技術的支持現狀,本文選擇對基于丟包率統計的方案研究并實現一套適用于當前移動網環境的流媒體視頻碼率動態適配方案。
3.1碼率動態適配方案的系統架構設計
針對碼率動態適配的需求分析,本文提出了融合首次接入視頻碼率選擇策略、丟包率預測算法、以及視頻碼率動態適配調整策略的流媒體視頻碼率動態適配方案。流媒體視頻碼率動態適配方案的系統框架如圖1所示。
3.2碼率動態適配方案相關技術
1.首次接入視頻碼率選擇策略:在用戶接入一始就為用戶播放適合其手機終端及所處網絡環境的碼率的視頻,達到減少切換次數的目的。用戶在選擇播放直播或者點播視頻節目時,平臺會依據網絡狀況、終端處理能力,通過首次接入視頻碼率選擇策略,為用戶選擇選擇最合適的碼率等級進行傳輸[3]。要實現首次接入視頻碼率選擇策略,首先需建立視頻碼率適配庫,對終端首次接入時應選擇的視頻碼率參數及對應值在適配庫中進行詳細定義。其次,流媒體視頻平臺獲取終端首次接入時的網絡類型,接入終端的能力值,播放請求類型(點播或者直播),請求視頻的媒體格式類型,到適配庫中進行匹配,定位到具體的碼率,然后根據該碼率生成RTSP點播或者是直播URL;最后將URL返回給終端,終端播放器根據該URL進行視頻播放。
2.丟包率預測算法:在手機客戶端開始播放視頻后,流媒體視頻平臺會周期性的接收客戶端反饋的RTCP包,提取丟包率信息[3]。因為移動網絡流量通常是突變的,為盡量減少突發流量對動態適配切換的影響,須明確的區分出哪些是短暫的突發流量,而哪些是表示著網絡己經發生了變化。因此當前的丟包情況和歷史的丟包情況就應該成為綜合預估下一時刻網絡狀況即丟包率的重要依據,通過設計丟包率預測算法,可預測下一時刻流媒體視頻平臺端到客戶端的丟包率狀況。
3.視頻碼率動態適配調整策略:是在客戶端和服務端之間建立起了一個反饋通路,通過實時監測丟包率來達到實時監測網絡狀況的目的,根據現在和之前的丟包率情況,由服務端自動調整視頻碼率的大小,以適應網絡的變化,從而可以有效的解決傳輸質量和圖像質量之間的矛盾。當碼率的變化達到切換碼率閥值的時候,流媒體視頻平臺將動態進行不同碼率等級之間的切換。視頻碼率動態適配調整策略是基于點播文件或者直播流的動態適配切換,即在用戶進行播放前或者播放中,就在流媒體視頻平臺端按照不同的碼率壓縮同一視頻點播文件或者直播流[3]。
實現碼率調整的方法有動態適配實時編碼調整模式和視頻碼率動態適配調整模式,兩者的區別就在于實現視頻源碼率變化的方法不同。動態適配實時編碼就是依據期望碼率來實時的調整視頻源的編碼速率,也就是說,視頻發送時編碼和播放將同步進行。視頻碼率動態適配調整是由編碼器、轉碼器對同一節目編出多路不同的碼率,當發現期望碼率達到切換碼率區間時,就終止當前碼率的視頻播放,切換到合適碼率的視頻文件或視頻流進行播放[3]。采用視頻碼率動態適配調整模式,較動態適配實時編碼模式而言,減輕了服務端的負擔,提高了服務端支持的用戶并發訪問數量,適用于大規模商業化應用的場景。因此本次研究將采用視頻碼率動態適配調整模式。
3.3碼率動態適配的系統流程
3.3.1碼率動態適配直播流程
碼率動態適配直播流程如下:
1.直播信號輸入到編碼器;2.編碼器將直播信號轉成多路流媒體,輸入到流媒體服務器的不同端口;3.終端用標準的RTSP協議向流媒體服務器請求直播播放;4.流媒體服務器解析直播文件,接收該直播頻道所有發送到流媒體服務器的流;5.流媒體服務器端根據終端首次接入平臺的網絡類型參數,終端能力,請求的媒體格式,選擇合適的碼率推送到終端;6.終端接收流媒體,并定期發送RTCP RR報文給流媒體服務器,反饋其收包狀況;7.流媒體服務器解析RTCP RR報文,得到當前的網絡丟包率;8.流媒體服務器進行丟包率預測,根據期望丟包率對當前碼率進行碼率調整,得到下一時刻的期望碼率,選擇切換到適合新碼流或繼續沿用原碼率;9.重復6~8過程,直到終端請求停止播放;10.終端請求停止流媒體直播;11.流媒體服務器停止發流,并返回RTSP OK消息。
3.3.2碼率動態適配點播流程
1.準備好源文件;2.離線編碼器將源文件編碼,生成具有多個碼率的3GP文件,新生成的3GP文件里面每種碼流一個單獨的Track,各碼流之間互不影響;3.終端用標準的RTSP協議向流媒體服務器請求點播播放;4.流媒體服務器解析多碼率的3gp文件,分析出各碼流的Track及對應的碼率大小;5.流媒體服務器端根據終端首次接入平臺的網絡類型參數,終端能力,請求的媒體格式,選擇合適的碼率推送到終端;6.終端接收流媒體,并定期發送RTCP RR報文給流媒體服務器,反饋其收包狀況;7.流媒體服務器解析RTCP報文,得到當前的網絡丟包率;8.流媒體服務器進行丟包率預測,得到下一時刻的期望丟包率,根據期望丟包率對當前碼率進行碼率調整,得到下一時刻的期望碼率,選擇切換到適合新碼流或繼續沿用原碼率;9.重復6~8過程,直到終端請求停止播放;10.終端請求停止流媒體點播;11.流媒體服務器停止發流,并返回RTSP OK消息。
四、總結與展望
本文首先分析了現有流媒體視頻業務的碼率技術及其在移動網絡上傳輸實時視頻數據時存在的問題,隨后對詳細調研現有的視頻碼率動態適配方案,并對其進行對比分析,最后參考基于丟包率的視頻碼率動態適配方案的設計原理,提出一種適合流媒體視頻業務的視頻碼率動態適配方案,有助于在移動網絡環境變化時進行碼率動態適配調整,保證視頻的傳輸質量和流暢度。
隨著將來視頻編解碼設備的編碼容量擴展以及編碼效率的提升,可考慮進一步細化視頻碼率等級的劃分粒度,采用更多視頻碼率等級,這樣能更加精細的進行碼率調整,進一步改善用戶體驗,這就要求對本次設計的視頻碼率動態適配調整策略做出相應的修改,包括動態修改碼率調整步長及參數,增加上調及下調的調整策略以及引入更多的控制參數等方式,所以該策略未來還有較大的優化提升空間。
參考文獻
[1]黃薇莘.移動流媒體系統關鍵技術及其平臺實現.移動流媒體系統關鍵技術及其平臺實現碩士論文. 2007
[2]施文燦.移動流媒體動態碼率適配機制研究.中國通信學會無線及移動通信委員會、IP應用與增強電信技術委員會會議論文. 2007年度聯合學術年會. 2008.4
[3]翁睿.基于GPRS網絡的動態適配碼率視頻傳輸. 2008.4
[4]周志波.在復雜環境下流媒體的可靠性傳輸. 2005.5
[5]吳偉.移動流媒體業務的技術與標準. 2005.10
[6] Henning Schulzrinne, Stephen L.Casner,Ron Fredrick, Van Jacobson. RTP: A Transport Protocol for Real-Time Applications (RFC1889)[EB/OL]. http://www.faqs.Org/rfcs/rfc1889.html. 1996.1.
[7] Henning Schulzrinne, Anup Rao, Robert Lanphier. RTSP: Real Time Streaming Protocol (RFC2326) [EB/OL]. http://www.faqs.Org/rfcs/rfc2326. html. 1998.1.