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

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

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

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

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

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