《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于無線網(wǎng)絡環(huán)境移動流媒體碼率自適應研究
基于無線網(wǎng)絡環(huán)境移動流媒體碼率自適應研究
來源:微型機與應用2013年第6期
李英壯,吳志偉,李先毅
(大連理工大學 網(wǎng)絡與信息化中心,遼寧 大連116024)
摘要: 基于校園無線網(wǎng)絡環(huán)境,研究了流媒體視頻碼率自適應技術。利用分布式實時轉(zhuǎn)碼系統(tǒng)保證直播流視頻轉(zhuǎn)碼的實時性,并根據(jù)校園無線網(wǎng)用戶的特殊性,研究了首次接入視頻碼率選擇策略,以減少碼率切換次數(shù)。實驗證明,這種方案在無線網(wǎng)絡環(huán)境發(fā)生變化時,保證了視頻播放的流暢性,為用戶提供了友好的體驗。
Abstract:
Key words :

摘  要: 基于校園無線網(wǎng)絡環(huán)境,研究了流媒體視頻碼率自適應技術。利用分布式實時轉(zhuǎn)碼系統(tǒng)保證直播流視頻轉(zhuǎn)碼的實時性,并根據(jù)校園無線網(wǎng)用戶的特殊性,研究了首次接入視頻碼率選擇策略,以減少碼率切換次數(shù)。實驗證明,這種方案在無線網(wǎng)絡環(huán)境發(fā)生變化時,保證了視頻播放的流暢性,為用戶提供了友好的體驗。
關鍵詞: 流媒體;碼率自適應;無線網(wǎng)絡;RTP;轉(zhuǎn)碼

    隨著GPRS和WiFi無線網(wǎng)絡的迅速發(fā)展,智能終端在線點播直播視頻業(yè)務越來越多。面對復雜的用戶和移動環(huán)境,對于視頻點播而言,需要一定的服務質(zhì)量保證策略,以保證不穩(wěn)定無線網(wǎng)絡環(huán)境下用戶的友好體驗。
    本文通過終端網(wǎng)絡狀況反饋、分布式實時轉(zhuǎn)碼技術和動態(tài)碼率自適應技術,解決終端所處無線網(wǎng)絡環(huán)境發(fā)生變化時,終端視頻收看體驗下降的問題。當無線網(wǎng)絡狀況發(fā)生變化時,終端將網(wǎng)絡狀況參數(shù)反饋給流媒體服務器,服務器根據(jù)反饋進行處理,動態(tài)調(diào)整流視頻碼率。
1 終端網(wǎng)絡狀況反饋方案
    實時傳輸協(xié)議RTP(Real-time Transport Protocol)[1]用于傳輸數(shù)字音頻和數(shù)字視頻等多媒體數(shù)據(jù),本身并不提供任何保證數(shù)據(jù)傳輸?shù)目煽俊⒂行蚝蛯崟r,也不提供其他途徑保證服務質(zhì)量,這些工作都依賴于RTCP(Real-time Transport Control Protocol)協(xié)議來完成。
    RTCP[2]協(xié)議為RTP提供關于媒體傳輸以及媒體源的信息,如數(shù)據(jù)傳輸延遲、丟包率、抖動等相關信息,以用于RTP協(xié)議的交互控制。RTCP控制包分為SR、RR、SDFS、BYE等。
    RR包中包含了接收的包數(shù)、上個報文間隔期間接收的包數(shù)、丟失包的總數(shù)、包丟失率、平均延遲、延遲抖動等消息;SR包中包含了包發(fā)出時的時間標簽、發(fā)送的總包數(shù)、發(fā)送的總字節(jié)數(shù)等信息。這些信息構(gòu)成了制定控制策略的依據(jù)。
    所以,終端使用RTCP協(xié)議反饋RTP數(shù)據(jù)包的丟失率、傳輸抖動等消息,服務器根據(jù)收到的RTCP RR包,進行分析處理后動態(tài)地切換視頻碼率。
2 終端流視頻碼率自適應方案
    流媒體視頻碼率自適應[3]調(diào)整是一種反饋控制技術。它在服務器端和接收端之間建立一條反饋通道,通過實時監(jiān)測終端網(wǎng)絡帶寬和丟包率來實時監(jiān)測終端網(wǎng)絡狀況,根據(jù)當前可用網(wǎng)絡帶寬和丟包率大小來估計終端網(wǎng)絡的實際狀況,并據(jù)此動態(tài)調(diào)整服務器端發(fā)送視頻碼率的大小。
2.1 首次接入碼率選擇方案
    流視頻文件切換的代價是巨大的,不僅消耗網(wǎng)絡資源,而且占用移動終端的處理能力,所以選擇一個合適的首次接入碼率傳輸非常重要。根據(jù)首次接入終端的網(wǎng)絡類型、當前無線網(wǎng)絡帶寬、當前接入用戶數(shù)量、終端的處理能力等,選擇合適的碼率視頻文件,減少傳輸過程中碼率切換的次數(shù)。
    考慮到高校學生接入無線網(wǎng)具有階段集中的特性,根據(jù)校園無線網(wǎng)絡接入終端的數(shù)量或無線網(wǎng)流量的大小,設置合適的首次接入碼率,然后結(jié)合剛接入無線網(wǎng)絡狀況預測進行上下微調(diào)整,從而減少碼率切換次數(shù),保證終端視頻播放的流暢度。
2.2 流媒體服務器碼率切換方案
    流媒體服務器可以根據(jù)自適應碼率控制算法[4]選擇不同的流視頻傳輸碼率[5]。例如,在實現(xiàn)中對包丟失率定義若干閾值,a:4%,b:8%,c:10%,d:12%;當包丟失率處于(a,b](某個數(shù)值范圍)時,切換選擇文件庫中相應碼率的流視頻。這樣需要同一視頻文件,有不同碼率等級的版本,對于電視直播流,也有不同碼率等級的文件。
    本方案通過分布式實時轉(zhuǎn)碼系統(tǒng),保證了點播和直播流視頻文件的實時提供,實現(xiàn)了從50 kb/s~300 kb/s的6個遞增的碼率等級。
2.2.1 分布式實時轉(zhuǎn)碼系統(tǒng)
    針對滿足各終端環(huán)境對視頻轉(zhuǎn)碼工作的高要求,提出了基于Hadoop的使用實時調(diào)度策略的分布式轉(zhuǎn)碼方案,使用mapreduce編程框架和mencoder進行分布式轉(zhuǎn)碼,達到嚴格控制轉(zhuǎn)碼完成時間的目的。
    (1)文件切割接口:cut fileName fileTime playTime
    Cut是流視頻文件切割腳本,fileName表示要處理的流視頻文件,fileTime表示要處理的流視頻文件的總播放時間,playTime表示要切割成的每段流視頻的播放時間。
    (2)文件轉(zhuǎn)碼接口:transcode fileName 參數(shù)1,參數(shù)2,…,參數(shù)n
    Transcode表示本地轉(zhuǎn)碼腳本,fileName表示要轉(zhuǎn)碼的文件名,參數(shù)表示對流視頻文件碼率等轉(zhuǎn)碼參數(shù)的設置。
    當流視頻文件切割處理結(jié)束后,系統(tǒng)主節(jié)點就會將各流視頻段分發(fā)到各子節(jié)點,各子節(jié)點根據(jù)設定的參數(shù)調(diào)用轉(zhuǎn)碼腳本進行轉(zhuǎn)碼,最后存儲到流媒體服務器。
2.2.2 轉(zhuǎn)碼方案
    源視頻分為點播流視頻和電視直播流視頻。
    (1)點播流視頻轉(zhuǎn)碼:在離線狀態(tài)下,通過轉(zhuǎn)碼系統(tǒng)預先壓縮一系列碼率(50 kb/s~300 kb/s)不等的流視頻文件存儲在服務器端。
    (2)電視直播流視頻轉(zhuǎn)碼:因為電視直播流視頻需要實時傳輸,這就需要轉(zhuǎn)碼系統(tǒng)進行實時轉(zhuǎn)碼。系統(tǒng)實時地從視頻源獲得一定播放長度的直播流視頻段,調(diào)用轉(zhuǎn)碼服務器系統(tǒng)轉(zhuǎn)成一系列碼率不等的流視頻文件,暫時存放在流媒體服務器。服務器根據(jù)碼率切換方案進行調(diào)整。
2.2.3 碼率調(diào)節(jié)策略
    當估計到終端網(wǎng)絡丟包率突然上升、網(wǎng)絡出現(xiàn)擁塞時,降低服務器端發(fā)送視頻文件的碼率,保證用戶收看視頻的流暢度。在實現(xiàn)中,當丟包率突然上升時,將發(fā)送的視頻文件降低2個碼率級別,因為丟包率突然上升表明網(wǎng)絡環(huán)境惡化,很大程度上影響終端的正常播放。
    當丟包率下降時,延遲調(diào)整碼率,待丟包率趨于平穩(wěn)后,再調(diào)高碼率級別,以消去短時間內(nèi)丟包波動的情況。
3 終端視頻碼率自適應系統(tǒng)實現(xiàn)
    根據(jù)實現(xiàn)的功能不同,整個系統(tǒng)可以劃分為分布式實時轉(zhuǎn)碼服務器、流媒體服務器和移動終端三個部分,如圖1所示。

3.1 分布式實時調(diào)度轉(zhuǎn)碼服務器
    分布式實時調(diào)度轉(zhuǎn)碼系統(tǒng)主要將點播文件和電視直播源信號轉(zhuǎn)換成列碼一系列碼率不等的流視頻文件存儲在流媒體服務器。
3.2 流媒體服務器
    流媒體服務器主要由以下4個模塊組成:
    (1)首次接入碼率選擇模塊:根據(jù)首次接入終端的網(wǎng)絡類型、當前無線網(wǎng)絡帶寬、當前接入用戶數(shù)量、終端的處理能力等,選擇合適的碼率流視頻文件,生成相應的RTSP點播或者直播URL路徑,提供給終端。
    (2)終端網(wǎng)絡狀況反饋處理模塊:主要是根據(jù)終端反饋回來的RTCP RR數(shù)據(jù)包,獲取丟包率、網(wǎng)絡帶寬等信息來估計當前的網(wǎng)絡狀況,作為碼率切換模塊調(diào)整的依據(jù)。
    (3)碼率切換模塊:通過預測得到的下一時刻丟包率、網(wǎng)絡帶寬等超過了切換門限值,就結(jié)束當前碼率的視頻傳輸,切換到文件庫中合適碼率的視頻文件。
    (4)RTSP傳輸模塊:該模塊主要將封裝好的RTP數(shù)據(jù)包發(fā)送給客戶端。
3.3 移動終端
    移動終端主要由RTSP接收模塊、RTCP網(wǎng)絡狀況反饋模塊和視頻顯示模塊三部分組成。
    (1)RTSP接收模塊:該模塊通過RTSP協(xié)議接收服務器端發(fā)送的RTP數(shù)據(jù)包,送給終端解碼器進行解碼。
    (2)RTCP網(wǎng)絡狀況反饋模塊:移動終端通過RTCP RR包將丟失包的總數(shù)、包丟失率、平均延遲、延遲抖動等消息發(fā)送給流媒體服務器,用來描述當前終端的網(wǎng)絡狀況。
    (3)視頻顯示[6]模塊:移動終端通過解碼器解碼,播放視頻。
4 實驗測試分析
4.1 實驗環(huán)境

    分布式實時轉(zhuǎn)碼系統(tǒng)環(huán)境:分割服務器、Hadoop集群;流媒體服務器環(huán)境:ubuntu系統(tǒng),dss達爾文開源流媒體服務器軟件;測試終端:1臺小米1s手機、1臺聯(lián)想筆記本電腦;電視直播源:機頂盒設備。

    整個測試過程,系統(tǒng)運轉(zhuǎn)良好,分布式實時轉(zhuǎn)碼系統(tǒng)很好地保證了直播流視頻數(shù)據(jù)的實時提供,流媒體服務器監(jiān)聽用戶終端請求,及時響應和提供視頻傳輸,并實時監(jiān)測用戶終端網(wǎng)絡狀況反饋,動態(tài)調(diào)整視頻碼率,保證了用戶友好的收看體驗。
    在無線網(wǎng)絡不穩(wěn)定、易受到干擾的情況下,研究了碼率自適應技術以提高用戶的收看體驗。通過首次接入碼率選擇方案,減少了觀看過程中碼率切換的次數(shù),有效地節(jié)省了資源。分布式實時轉(zhuǎn)碼系統(tǒng)解決了轉(zhuǎn)碼的需求,并保證了電視直播視頻轉(zhuǎn)碼的實時性。在視頻碼率切換模塊中,服務器使用閾值比較方案選擇下一時刻傳輸?shù)囊曨l碼率。這種方案考慮因素比較單一,精度不準確,下一步工作會改進選擇方案,增加計算網(wǎng)絡狀況的因子,以使碼率切換方案更加準確,使終端觀看體驗更加友好。
參考文獻
[1] 孫松源,吳建國.基于RTP和Android的視頻傳輸?shù)难芯繉崿F(xiàn)方法[J].電腦知識與技術,2012,8(4):903-905,914.
[2] 李校林,劉海波.RTP/RTCP、RTSP在無線視頻監(jiān)控系統(tǒng)中設計與實現(xiàn)[C].2011年第十三屆全國消費電子技術年會,2011.
[3] 楊琛,白波.實時視頻流自適應碼流控制研究[J].計算機技術與應用進展,2008(7):445-447.
[4] 左東紅.面向TCP的流媒體傳輸編碼碼率自適應算法[J].中國圖象圖形學報,2011,16(4):510-515.
[5] 王瑞,劉寶成.一種適用于H.264/AVC的自適應碼率控制算法[J].電子技術研發(fā),2011,38(6):15-18.
[6] VUN N,OOI Y H.Implementation of an Android phone based video streamer[C].2010 IEEE/ACM International Conference on Green Computing and Communications,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。