王新寧 李揚(yáng)
摘要:文章介紹了RTP、RTCP等網(wǎng)絡(luò)傳輸協(xié)議。對(duì)網(wǎng)絡(luò)視頻傳輸?shù)母鞣N控制方式進(jìn)行了闡述,分析了影響制約視頻傳輸?shù)闹饕蛩?,丟包率、延時(shí)和延時(shí)抖動(dòng)是對(duì)流媒體傳輸質(zhì)量的主要評(píng)價(jià)指標(biāo)。通過研究,引進(jìn)了一種自適應(yīng)視頻碼率調(diào)節(jié)方式,本方法對(duì)傳統(tǒng)的視頻傳輸控制方法AIMD(Additive Increase Multiplicative Decrease,和式增加,積式減少)方式進(jìn)行了改進(jìn),減少了由于AIMD調(diào)節(jié)過程中產(chǎn)生的視頻的劇烈抖動(dòng),保證了視頻傳輸過程的穩(wěn)定性和連續(xù)性。并且在客戶端采用了雙緩沖技術(shù),可以降低視頻傳輸?shù)亩秳?dòng)影響,減少了視頻傳輸中畫面的停頓和閃動(dòng),保證了視頻播放的流暢性,提高了用戶體驗(yàn)。最后運(yùn)用Java語言的JMF(Java Media Framework)技術(shù),對(duì)上述方法進(jìn)行了編程實(shí)現(xiàn),實(shí)現(xiàn)了在Java下的視頻自適應(yīng)傳輸,通過實(shí)際測(cè)試,此方案在畫質(zhì)和丟包率方面得到了明顯的改善。
關(guān)鍵詞:RTP;Java;視頻傳輸;QoS;自適應(yīng)
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)02-0365-04
TCP和UDP是當(dāng)今網(wǎng)絡(luò)傳輸中最流行的協(xié)議。TCP是一種面向連接的協(xié)議,提供了一套網(wǎng)絡(luò)擁塞控制算法,可根據(jù)網(wǎng)絡(luò)情況按照相應(yīng)的算法重傳數(shù)據(jù)包;UDP是一種面向無連接的用戶數(shù)據(jù)報(bào)協(xié)議,傳輸效率高,實(shí)時(shí)性好,但是不能保證數(shù)據(jù)包可靠和有序地被接受。為了保障視頻傳輸?shù)貙?shí)時(shí)性和可靠性,該文采用RTP、RTCP作為傳輸控制協(xié)議。此協(xié)議是專為流媒體傳輸而設(shè)定,能夠提供端到端的QoS保障[1],在此傳輸協(xié)議中,RTP只負(fù)責(zé)傳輸數(shù)據(jù),RTCP為順序傳送數(shù)據(jù)包提供可靠的傳輸機(jī)制,并對(duì)網(wǎng)絡(luò)流量和阻塞進(jìn)行控制。RTP協(xié)議只規(guī)定了通過RTCP報(bào)文監(jiān)測(cè)通信質(zhì)量,而沒有規(guī)定如何根據(jù)監(jiān)測(cè)結(jié)果提高傳輸質(zhì)量的措施,這也留給上層應(yīng)用來完成。RTP和RTCP配合使用,它們能以有效的反饋和最小的開銷使傳輸效率最佳化,因而特別適合傳送網(wǎng)上的實(shí)時(shí)數(shù)據(jù)。
本方案采用Java作為編程語言,Java是一種跨平臺(tái)的語言,具有安全性高、網(wǎng)絡(luò)編程方便等優(yōu)點(diǎn)[2],本方案采用JMF(Java Media Framework)作為開發(fā)環(huán)境,JMF技術(shù)提供了先進(jìn)的媒體處理能力,包括媒體捕獲、壓縮、流轉(zhuǎn)、回放,以及對(duì)各種主要媒體形式和編碼的支持,該文采用Java實(shí)現(xiàn),可以將代碼進(jìn)行移植,方便手機(jī)終端監(jiān)控軟件的開發(fā)。
1 自適應(yīng)流媒體傳輸?shù)难芯壳闆r
流媒體傳輸主要的要求在于傳輸?shù)膶?shí)時(shí)性、連續(xù)性以及平穩(wěn)性。相對(duì)于控制命令等其他對(duì)準(zhǔn)確性要求極高的業(yè)務(wù),流媒體傳輸可以容忍一定的丟包和誤碼。在流媒體的自適應(yīng)傳輸控制中,文獻(xiàn)[3]采用加增乘減(AIMD)的方法控制傳輸?shù)拇a流,在此算法中加增量和乘因數(shù)采用固定值,不能根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)調(diào)節(jié);文獻(xiàn)[4]提出使用低通濾波器來平滑丟包率,并且根據(jù)上次網(wǎng)絡(luò)的傳輸狀況來調(diào)整傳輸速率,視頻的穩(wěn)定性得到了提高;文獻(xiàn)[5]提出了一種自適應(yīng)的碼率控制方法,可根據(jù)當(dāng)前和預(yù)測(cè)網(wǎng)絡(luò)狀況計(jì)算加增量和乘因數(shù);文獻(xiàn)[6]和[7]對(duì)AIMD進(jìn)行了改進(jìn),有效的降低了碼率的延時(shí)抖動(dòng);文獻(xiàn)[8]采用PID對(duì)傳輸速率進(jìn)行控制,實(shí)現(xiàn)了較低的丟包率,但反饋系統(tǒng)復(fù)雜。
2 本文采用的方法
本文的實(shí)現(xiàn)方法框圖如圖1所示。
5 總結(jié)
該文實(shí)現(xiàn)了在視頻流的自適應(yīng)傳輸控制,在局域網(wǎng)測(cè)試下,實(shí)現(xiàn)了低丟包率,保證了畫質(zhì)的流暢,視頻的傳輸還涉及到視頻編解碼、p2p等技術(shù),由于篇幅所限,在此不在詳述??傊?,該文所提供的方法在移動(dòng)視頻傳輸中(特別是Android平臺(tái)下)具有較高的使用價(jià)值。
參考文獻(xiàn):
[1] Papadimitriou P,V. TSAOUSSIDIS.A rate control scheme for adaptive video streaming over the internet[Z].2007:616-621.
[2] 陸穎瑜,林海,張永林.基于Java與JMF的視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(11):2740-2761.
[3] Casetti C J. Martin M C D. Meo A. BARBERIS.A simulation study of adaptive voice communications on ip networks[J].Computer Communications,2001,24(9):757-767.
[4] Peng Ling,Li Shao-wen.An improved algorithm of RTP adaptive transmission control[C],2009 Third International Conference on Genetic and Evolutionary Computing,2009:595-599.
[5] D. SISALEM.End-to-end quality of service control using adaptive applications[C],In IFIP Fifth International Workshop on Quality of Service,1997:546-554.
[6] 程萬翔,張軼博,雷振明.一種改進(jìn)的RTP自適應(yīng)算法[J].高技術(shù)通訊,2002,12(8):9-12.
[7] 蔣建國,蘇兆品,李援,等.RTP_RTCP自適應(yīng)流量控制算法_蔣建國[J].電子學(xué)報(bào),2006,34(9):1659-1662.
[8] Tolga Ayav URAS TOS.Adaptive RTP Rate Control Method[C],2011 35th IEEE Annual Computer Software and Applications Conference Workshops,7-12.