殷燕南
【摘要】 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,高質(zhì)量視頻的實(shí)時(shí)傳輸是流媒體的重要分支之一,然而目前的IP網(wǎng)絡(luò)所能提供的傳輸服務(wù),很難保證視頻傳輸質(zhì)量的穩(wěn)定性,有時(shí)會(huì)造成網(wǎng)絡(luò)擁塞。同時(shí)由于受到目前Android智能手機(jī)處理能力以及內(nèi)存等硬件配置因素額影響,使得嵌入式媒體播放器中的視頻數(shù)據(jù)無法適應(yīng)目前的網(wǎng)絡(luò)狀況,對(duì)視頻流的解碼效率造成了較大的影響,最終導(dǎo)致了視頻數(shù)據(jù)傳輸過程中發(fā)生大量信息丟失的情況,使得接收到的視頻質(zhì)量嚴(yán)重降低。本文對(duì)Android平臺(tái)中視頻文件的傳輸與處理進(jìn)行了一定的探討。
【關(guān)鍵詞】 Android 視頻文件 傳輸 處理
一、視頻自適應(yīng)算法框架
基于Android視頻文件傳輸?shù)淖赃m應(yīng)算法是根據(jù)網(wǎng)絡(luò)環(huán)境下傳輸實(shí)時(shí)視頻數(shù)據(jù)而提出的一種算法[1]。在進(jìn)行視屏文件傳輸時(shí),通過對(duì)網(wǎng)絡(luò)進(jìn)行探測(cè)以及對(duì)反饋信息的分析二實(shí)現(xiàn)基于Android視頻傳輸?shù)淖赃m應(yīng)控制,該自適應(yīng)算法的實(shí)現(xiàn)主要從4個(gè)方面進(jìn)行:(1)Android系統(tǒng)接受包含視頻數(shù)據(jù)的時(shí)間戳、發(fā)送序號(hào)、狀態(tài)值等網(wǎng)絡(luò)信息的視頻數(shù)據(jù),參考實(shí)時(shí)傳輸協(xié)議RTP進(jìn)行打包傳輸。(2)Android系統(tǒng)在接受到視頻數(shù)據(jù)包之后,通過解包獲取數(shù)據(jù)信息以及當(dāng)前的網(wǎng)絡(luò)狀態(tài),并反饋控制策略,同時(shí)計(jì)算數(shù)據(jù)包的丟失率以及帶寬瓶頸等參數(shù),然后參考實(shí)時(shí)參數(shù)協(xié)議RTCP進(jìn)行打包然后反饋給視頻數(shù)據(jù)的發(fā)送端。(3)Android系統(tǒng)通過利用TCP友好速率控制算法來計(jì)算網(wǎng)絡(luò)的實(shí)時(shí)帶寬,然后利用視頻自適應(yīng)算法來實(shí)現(xiàn)平滑的視頻數(shù)據(jù)傳輸,降低TCP的AIMD算法所帶來的帶寬波動(dòng)。(4)Android系統(tǒng)根據(jù)調(diào)整以后的數(shù)據(jù)接收速率對(duì)視頻數(shù)據(jù)包進(jìn)行接收。
基于Android視頻傳輸?shù)淖赃m應(yīng)算法首先要根據(jù)接收的新型進(jìn)行RTCP分析,病對(duì)分組丟失的統(tǒng)計(jì)規(guī)律、分組延遲抖動(dòng)以及信息傳輸所消耗的時(shí)間進(jìn)行計(jì)算,然后對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行估計(jì)以判斷是否需要對(duì)帶寬進(jìn)行調(diào)整。另外還要根據(jù)當(dāng)前網(wǎng)絡(luò)的狀況對(duì)視頻傳輸?shù)膸掃M(jìn)行適當(dāng)?shù)恼{(diào)整。
二、TFRC算法
TCP友好速率控制算法能夠根據(jù)網(wǎng)絡(luò)狀態(tài)對(duì)數(shù)據(jù)流速率進(jìn)行調(diào)整,實(shí)現(xiàn)控制網(wǎng)絡(luò)擁塞狀況的目的,它是基于速率的擁塞控制算法。TFRC吞吐量變化較為穩(wěn)定,波動(dòng)較小,主要適用于電話、流媒體等對(duì)信號(hào)傳輸穩(wěn)定性要求較高的應(yīng)用。TFRC算法的基礎(chǔ)是TCP穩(wěn)態(tài)速率模型,該模型給出了TCP在網(wǎng)絡(luò)處于擁塞避免階段時(shí)的跑平均發(fā)送速率。
TFRC穩(wěn)態(tài)速率公式如下:
上面公式中的s代表TCP報(bào)文的大??;p是包的丟失率;t0是數(shù)據(jù)報(bào)文超時(shí)時(shí)間;tRTT是數(shù)據(jù)報(bào)文環(huán)路時(shí)間;b表示一個(gè)應(yīng)答所接收到的報(bào)文數(shù)量。通過該公式能夠計(jì)算出傳輸數(shù)據(jù)流的穩(wěn)態(tài)接收速率B(p)。
從上面的公式能夠看出對(duì)傳輸數(shù)據(jù)流的穩(wěn)態(tài)接收速率影響最大的是數(shù)據(jù)包的丟失率。數(shù)據(jù)包的丟失率主要分為3個(gè)步驟,分別為初始化參數(shù)列表,丟失率的判斷以及丟失率的計(jì)算。
三、基于Android平臺(tái)的視頻自適應(yīng)傳輸算法
考慮到目前Android智能手機(jī)的性能以及網(wǎng)絡(luò)狀況,視頻自適應(yīng)算法通過將TFRC算法以及視頻編碼算法結(jié)合,實(shí)現(xiàn)視屏編碼的動(dòng)態(tài)調(diào)整和發(fā)送。當(dāng)發(fā)現(xiàn)當(dāng)前網(wǎng)絡(luò)出現(xiàn)擁塞后,Android系統(tǒng)會(huì)對(duì)視頻數(shù)據(jù)的接受策略進(jìn)行自動(dòng)調(diào)整,保證視頻傳輸?shù)姆€(wěn)定性[2]。如果網(wǎng)絡(luò)出現(xiàn)長(zhǎng)時(shí)間的擁塞,視頻自適應(yīng)算法的表現(xiàn)就是在最初階段出現(xiàn)較大的丟包率,隨后通過算法的調(diào)整,逐漸適應(yīng)網(wǎng)絡(luò)擁塞的環(huán)境,丟包率也會(huì)逐漸降低,保證視頻傳輸?shù)牧鲿承浴?/p>
通過與TCP基于AIMD窗口控制算法相比較,視頻自適應(yīng)算法采用了更為緩和的速率變化控制策略,既降低與TCP流之間的影響,又使數(shù)據(jù)傳輸速率變得更加穩(wěn)定,有效的實(shí)現(xiàn)了視頻文件的穩(wěn)定傳輸,同時(shí)還保證了視頻的傳輸質(zhì)量。
四、總結(jié)
本文提出了一種基于Android智能手機(jī)視頻傳輸?shù)淖赃m應(yīng)算法,該算法能夠?qū)W(wǎng)絡(luò)帶寬進(jìn)行實(shí)時(shí)動(dòng)態(tài)探測(cè),自動(dòng)適應(yīng)當(dāng)前的網(wǎng)絡(luò)擁塞狀況,并通過利用TFRC算法制定出平滑的數(shù)據(jù)傳輸帶寬,根據(jù)實(shí)時(shí)的帶寬對(duì)視頻的編碼以及傳輸速率進(jìn)行控制,有效的提高了視頻文件的傳輸質(zhì)量,改善用戶的使用體驗(yàn),該自適應(yīng)算法具有較高的應(yīng)用價(jià)值。
參 考 文 獻(xiàn)
[1] 王輝. 基于Android的視頻流自適應(yīng)算法設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù),2012,(22):42-45
[2] 吳建國(guó). 基于RTP和Android的視頻傳輸?shù)难芯繉?shí)現(xiàn)方法[J]. 電腦知識(shí)與技術(shù),2012,(4):903-905