摘 要: 為了應(yīng)付流媒體系統(tǒng)應(yīng)用網(wǎng)絡(luò)帶寬不足問(wèn)題,設(shè)計(jì)了基于多碼率文件傳輸技術(shù)和可變編解碼參數(shù)Filters播放鏈路動(dòng)態(tài)重連機(jī)制的自適應(yīng)流媒體傳輸系統(tǒng)。該系統(tǒng)在網(wǎng)絡(luò)帶寬發(fā)生波動(dòng)的條件下,能夠自適應(yīng)地選擇與可用帶寬相匹配碼率的視頻數(shù)據(jù)進(jìn)行動(dòng)態(tài)傳輸,進(jìn)而減少視頻數(shù)據(jù)緩沖等待次數(shù)和等待時(shí)間,有效提高網(wǎng)絡(luò)帶寬利用率和媒體內(nèi)容服務(wù)質(zhì)量,同時(shí)采用“最短”的鏈路進(jìn)行媒體內(nèi)容的動(dòng)態(tài)重連,避免Filters動(dòng)態(tài)重連中出現(xiàn)“卡塞感”,有效提高流媒體系統(tǒng)的服務(wù)質(zhì)量。
關(guān)鍵詞: 流媒體; 多碼率文件; 碼率自適應(yīng); Filters動(dòng)態(tài)重連
中圖分類(lèi)號(hào): TN919.8?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)02?0042?03
0 引 言
視頻業(yè)務(wù)的快速發(fā)展占用了大量的網(wǎng)絡(luò)帶寬,網(wǎng)絡(luò)帶寬成為制約流媒體系統(tǒng)應(yīng)用的最大瓶頸,如何在有限帶寬下向用戶提供更加優(yōu)質(zhì)的服務(wù)成為研究的熱點(diǎn)[1]。為了解決流媒體傳輸過(guò)程中網(wǎng)絡(luò)帶寬不足問(wèn)題,研究人員主要在流媒體系統(tǒng)架構(gòu)上進(jìn)行優(yōu)化改進(jìn),以提高流媒體傳輸服務(wù)水平。但在媒體內(nèi)容傳輸過(guò)程中,常規(guī)流媒體系統(tǒng)絕大部分采用單一碼率視頻文件為終端提供視頻服務(wù),這種統(tǒng)一的處理模式在很大程度上忽略了網(wǎng)絡(luò)性能較為優(yōu)越的部分客戶或時(shí)段,不適用于實(shí)時(shí)多媒體高效傳輸。基于這種研究背景,拋開(kāi)常規(guī)P2P,CDN等復(fù)雜的流媒體系統(tǒng)結(jié)構(gòu),研究“發(fā)送端→接收端”兩點(diǎn)直接互聯(lián)的流媒體傳輸架構(gòu),并實(shí)時(shí)跟蹤檢測(cè)兩點(diǎn)間網(wǎng)絡(luò)性能,以優(yōu)選最優(yōu)碼率文件內(nèi)容進(jìn)行傳輸,提高網(wǎng)絡(luò)帶寬的利用率及實(shí)現(xiàn)傳輸媒體內(nèi)容質(zhì)量服務(wù)最優(yōu)化,以提高流媒體的綜合服務(wù)質(zhì)量。
1 系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
流媒體文件碼率自適應(yīng)處理系統(tǒng),拋開(kāi)常規(guī)的P2P,CDN等復(fù)雜的流媒體網(wǎng)絡(luò)結(jié)構(gòu),重點(diǎn)研究“發(fā)送端→接收端”兩點(diǎn)互聯(lián)的視頻流傳輸模式,同時(shí)拋開(kāi)NAT網(wǎng)絡(luò)地址轉(zhuǎn)換等經(jīng)路由器進(jìn)行數(shù)據(jù)傳輸?shù)膹?fù)雜交互流程,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。圖1中,發(fā)送端主要實(shí)現(xiàn)視頻內(nèi)容從本地磁盤(pán)經(jīng)網(wǎng)絡(luò)交互向系統(tǒng)接收端傳輸數(shù)據(jù);接收端主要實(shí)現(xiàn)接收從發(fā)送端傳輸來(lái)的視頻數(shù)據(jù)并根據(jù)需求實(shí)時(shí)緩沖、解碼、播放和存儲(chǔ)。
2 系統(tǒng)功能模塊組成
為實(shí)現(xiàn)視頻數(shù)據(jù)的高效傳輸和優(yōu)質(zhì)接收服務(wù),系統(tǒng)應(yīng)具備視頻內(nèi)容質(zhì)量等級(jí)劃分(發(fā)送端管理)、視頻內(nèi)容等級(jí)切換和擁塞調(diào)控(視頻數(shù)據(jù)傳輸模式自適應(yīng)選擇)、視頻數(shù)據(jù)發(fā)送→接收(視頻數(shù)據(jù)傳輸控制)、視頻播放控制(視頻數(shù)據(jù)服務(wù)管理)等控制服務(wù)功能,如圖2所示。
(1) 視頻內(nèi)容質(zhì)量等級(jí)劃分
磁盤(pán)文件管理:發(fā)送端的主要功能模塊,管理發(fā)送端本地磁盤(pán)上的各種流媒體數(shù)據(jù)文件,為流媒體文件多碼率自適應(yīng)處理系統(tǒng)讀取視頻文件內(nèi)容、查詢視頻基本信息等提供接口。
媒體內(nèi)容質(zhì)量等級(jí)劃分:根據(jù)流媒體的重要性動(dòng)態(tài)劃分視頻文件的質(zhì)量等級(jí)。
媒體文件重編碼:為流媒體文件碼率自適應(yīng)處理系統(tǒng)提供重編碼的分辨率、像素、位數(shù)等特性參數(shù),以實(shí)現(xiàn)對(duì)視頻文件的重編碼;
媒體文件分段:對(duì)視頻數(shù)據(jù)內(nèi)容進(jìn)行合理分段,以實(shí)現(xiàn)系統(tǒng)在進(jìn)行視頻內(nèi)容等級(jí)切換過(guò)程中的快速準(zhǔn)確重定位[2];RTP包組裝對(duì)RTP數(shù)據(jù)包進(jìn)行封裝。
(2) 視頻內(nèi)容等級(jí)切換和擁塞調(diào)控
根據(jù)網(wǎng)絡(luò)帶寬合理選擇傳輸內(nèi)容,并結(jié)合帶寬檢測(cè)結(jié)果對(duì)下一個(gè)需要傳輸?shù)囊粢曨l內(nèi)容進(jìn)行快速準(zhǔn)確定位。采用改進(jìn)型TFRC擁塞控制算法,利用延遲抖動(dòng)潛在的擁塞信號(hào)來(lái)改進(jìn)TFRC的速率進(jìn)行視頻內(nèi)容傳輸?shù)膿砣刂?,以適應(yīng)實(shí)時(shí)傳輸網(wǎng)絡(luò)帶寬抖動(dòng)自適應(yīng)調(diào)控需求。
(3) 視頻數(shù)據(jù)發(fā)送→接收
結(jié)合網(wǎng)絡(luò)可用帶寬檢測(cè)數(shù)據(jù)優(yōu)選視頻傳輸內(nèi)容,并將內(nèi)容經(jīng)網(wǎng)絡(luò)RTP/RTCP反饋包交互流程實(shí)現(xiàn)高效精確發(fā)送和接收。
3 發(fā)送端的設(shè)計(jì)與實(shí)現(xiàn)
在“發(fā)送端→接收端”兩點(diǎn)互聯(lián)的碼率自適應(yīng)處理系統(tǒng)中,發(fā)送端應(yīng)具備磁盤(pán)文件管理、視頻內(nèi)容質(zhì)量等級(jí)劃分、視頻數(shù)據(jù)段切換、可用帶寬測(cè)量、擁塞控制等諸多功能。
3.1 磁盤(pán)文件管理
磁盤(pán)文件管理除了基本的文件屬性查詢、文件內(nèi)容等操作外,還能根據(jù)視頻文件內(nèi)容進(jìn)行統(tǒng)計(jì)的分類(lèi)歸納整理,以實(shí)現(xiàn)對(duì)視頻文件的自動(dòng)分類(lèi),形成包含根、葉、主干等在內(nèi)的分類(lèi)樹(shù),如“新少林寺”這個(gè)視頻文件在傳輸過(guò)程中的名稱就是“熱門(mén)/新上映/電影/大陸電影/劉德華合集/新少林寺”,這樣自適應(yīng)處理系統(tǒng)就能實(shí)現(xiàn)對(duì)視頻文件進(jìn)行自動(dòng)歸納分類(lèi),客戶端播放器在收到此種規(guī)范格式的文件名后,通過(guò)編碼解析就能對(duì)該視頻文件自動(dòng)進(jìn)行分類(lèi)顯示。
3.2 視頻文件多碼率化處理
進(jìn)行視頻內(nèi)容質(zhì)量等級(jí)劃分實(shí)質(zhì)就是媒體文件的重編碼過(guò)程,此處采用應(yīng)用較為成熟且重編碼質(zhì)量效果較優(yōu)越的FFMPEG媒體編解碼開(kāi)源庫(kù),來(lái)進(jìn)行視頻文件內(nèi)容的質(zhì)量等級(jí)劃分[3]。FFMPEG是在Linux平臺(tái)下研發(fā)出來(lái),免費(fèi)跨平臺(tái)的視頻和音頻流編碼技術(shù)方案,完全支持Windows系統(tǒng)中的媒體流的中文編譯,可以實(shí)現(xiàn)多種視頻流格式間的任意轉(zhuǎn)換并合并成一個(gè)文件。
3.3 視頻內(nèi)容劃分及擁塞控制
為了充分利用網(wǎng)絡(luò)帶寬和隨網(wǎng)絡(luò)性能的變換而自適應(yīng)調(diào)節(jié),需要對(duì)視頻內(nèi)容進(jìn)行分段處理,其切換點(diǎn)主要以段為單位進(jìn)行視頻文件等級(jí)劃分和切換。為了確保傳輸數(shù)據(jù)的準(zhǔn)確可靠性,只有等到當(dāng)前傳輸數(shù)據(jù)段傳輸完后,方能進(jìn)入到下一段數(shù)據(jù)的傳輸,即視頻文件在分段過(guò)程中其時(shí)段劃分不宜太長(zhǎng),此處采用視頻文件客戶較為滿意的5 s時(shí)長(zhǎng)分段策略,且在RTCP控制協(xié)議反饋包交互中,其時(shí)間間隔也按照5 s來(lái)設(shè)定。結(jié)合網(wǎng)絡(luò)性能和網(wǎng)絡(luò)帶寬檢測(cè)結(jié)果,采用控制端到端傳輸延遲抖動(dòng)的改進(jìn)TFRC擁塞控制算法,來(lái)自適應(yīng)選擇當(dāng)前的發(fā)送速率相匹配的視頻等級(jí),有效提高網(wǎng)絡(luò)帶寬利用率和客戶服務(wù)水平。
3.4 視頻數(shù)據(jù)發(fā)送及反饋包交互
媒體數(shù)據(jù)從發(fā)送端傳輸?shù)浇邮斩耍凑誖TP/RTCP實(shí)時(shí)傳輸協(xié)議和C/S(客戶機(jī)/服務(wù)器)結(jié)構(gòu),完成視頻數(shù)據(jù)內(nèi)容的高效傳輸。對(duì)于視頻文件按照H264技術(shù)進(jìn)行編碼,按照RFC3984協(xié)議完成H264視頻RTP打包封裝;而對(duì)于音頻文件則按照AAC技術(shù)編碼,按照RFC3640協(xié)議完成音頻RTP打包封裝。視頻數(shù)據(jù)傳輸過(guò)程中,在一個(gè)數(shù)據(jù)段沒(méi)傳輸完成前,系統(tǒng)就能根據(jù)網(wǎng)絡(luò)帶寬的檢測(cè)數(shù)據(jù),實(shí)時(shí)判斷當(dāng)前可用帶寬是否需要切換與之相匹配的視頻文件質(zhì)量等級(jí),如需要?jiǎng)t自動(dòng)定位切換到與之相匹配的下一段數(shù)據(jù),以適應(yīng)當(dāng)前網(wǎng)絡(luò)性能和網(wǎng)絡(luò)帶寬變化高效傳輸需求。
4 接收端的設(shè)計(jì)與實(shí)現(xiàn)
接收端除實(shí)現(xiàn)視頻數(shù)據(jù)的實(shí)時(shí)接收解碼播放外,還需具備播放鏈路的自動(dòng)重連機(jī)制及主機(jī)性能自適應(yīng)優(yōu)化功能,以提高視頻數(shù)據(jù)客服端服務(wù)水平。
4.1 視頻數(shù)據(jù)的接收及交互控制
接收端接收到傳輸?shù)囊曨l網(wǎng)絡(luò)數(shù)據(jù)后,一方面通過(guò)全局文件段解析對(duì)RTP數(shù)據(jù)包進(jìn)行解封裝完成視頻的播放,同時(shí)經(jīng)內(nèi)存緩沖區(qū)實(shí)現(xiàn)音視頻幀的重組操作,為客戶端播放層提供音視頻幀的獲取接口。視頻數(shù)據(jù)的接收及交互控制邏輯框圖如圖3所示。
4.2 VCR控制接口
流媒體文件多碼率自適應(yīng)處理系統(tǒng)中,視頻數(shù)據(jù)的播放器控制接口為用戶提供友好的VCR播放控制界面,包括視頻文件搜索、播放質(zhì)量選擇、播放界面設(shè)置、字幕選擇、聲音選擇、暫停、拖動(dòng)、固定窗口、最大化等VCR模擬式磁帶錄放機(jī)操作。
4.3 Filter Graph Manager
Filter Graph Manager管理器按照“最短”的Filters鏈路實(shí)現(xiàn)播放器動(dòng)態(tài)重連、解碼播放和存儲(chǔ);音視頻幀重組將視頻數(shù)據(jù)從RTP包中解封獲得音視頻碼流幀數(shù)據(jù),并完成音視頻幀的重組。
4.4 緩沖區(qū)管理
自適應(yīng)的緩沖大小調(diào)整方案,依據(jù)實(shí)時(shí)網(wǎng)絡(luò)性能和視頻媒體內(nèi)容質(zhì)量等級(jí)自適應(yīng)地調(diào)整緩沖容量,確保視頻內(nèi)容數(shù)據(jù)的高效可靠接收,使視頻媒體能夠流暢播放,確保網(wǎng)絡(luò)視頻的優(yōu)質(zhì)服務(wù)。
5 結(jié) 語(yǔ)
在視頻文件多碼率處理和可用網(wǎng)絡(luò)帶寬在線檢測(cè)等技術(shù)成果的基礎(chǔ)上,研究了多碼率文件自適應(yīng)傳輸控制策略,即當(dāng)網(wǎng)絡(luò)性能和可用網(wǎng)絡(luò)帶寬發(fā)生變化的情況下,處理系統(tǒng)能夠?qū)磳⑼扑鸵曨l切片質(zhì)量進(jìn)行及時(shí)調(diào)整自動(dòng)定級(jí)。在該段數(shù)據(jù)還沒(méi)傳輸完前,自適應(yīng)選擇切換到與網(wǎng)絡(luò)可用帶寬相匹配碼率的視頻數(shù)據(jù)并自動(dòng)定位進(jìn)行傳輸,有效提高網(wǎng)絡(luò)帶寬利用率,確保傳輸視頻內(nèi)容質(zhì)量的最優(yōu)化。另外,采用Filters播放鏈路動(dòng)態(tài)重連機(jī)制,采用“最短”鏈路進(jìn)行動(dòng)態(tài)重連,防止因?yàn)镕ilters動(dòng)態(tài)重連產(chǎn)生的“卡塞感”,確保為客戶提供最優(yōu)視頻播放服務(wù)。
參考文獻(xiàn)
[1] 林銳,劉峰.一種基于 HTTP 長(zhǎng)連接的自適應(yīng)流媒體傳輸系統(tǒng)[J].電視技術(shù),2012,36(7):85?88.
[2] 李爭(zhēng)明,張佐,葉德建.自適應(yīng)流媒體傳輸方案研究及其應(yīng)用[J].計(jì)算機(jī)工程,2006(12):226?228.
[3] 楊濤,周志波,章磊,等.流媒體自適應(yīng)傳輸策略[J].微型電腦應(yīng)用,2005(5):40?43.
[4] 田鵬輝,隋立春.Flash技術(shù)在網(wǎng)絡(luò)電子地圖中的應(yīng)用[J].現(xiàn)代電子技術(shù),2011,34(4):70?72.
[5] 祝瑞,車(chē)敏.基于HTTP協(xié)議的服務(wù)器程序分析[J].現(xiàn)代電子技術(shù),2012,35(4):117?119.
[6] 蘇征遠(yuǎn),易燕,戴祖誠(chéng).嵌入式流媒體播放系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011(20):157?159.