陳偉 劉永紅 高菡
摘 要:本文從分析引起音視頻不同步現(xiàn)象的因素以及目前音視頻同步的優(yōu)缺點(diǎn)入手,運(yùn)用時(shí)間戳、緩存技術(shù)和丟包處理機(jī)制來(lái)提出改進(jìn)音視頻同步的方法。在發(fā)送端,同步發(fā)送出同時(shí)采集的音視頻數(shù)據(jù);在接收端,采用主從流同步控制的方法,在時(shí)間戳判斷音視頻數(shù)據(jù)的同步關(guān)系上最終實(shí)現(xiàn)音頻播放的流暢性以及音視頻媒體間的同步性。經(jīng)實(shí)際測(cè)試可發(fā)現(xiàn)效果良好。
【關(guān)鍵詞】音視頻同步 時(shí)間戳 緩存技術(shù) 丟包處理機(jī)制 主從流
1 現(xiàn)有的音視頻同步方法
在當(dāng)今的多媒體交互系統(tǒng)中,其傳輸具有信息傳送服務(wù)不可靠的特點(diǎn)。數(shù)據(jù)傳輸過(guò)程會(huì)遇到數(shù)據(jù)包丟失的問(wèn)題以及包的到達(dá)時(shí)延不同,最終會(huì)造成播放時(shí)發(fā)生聲像不同步的現(xiàn)象。國(guó)內(nèi)外以對(duì)媒體同步技術(shù)投以廣泛關(guān)注,目前為止,已經(jīng)有多種同步方案和模型。 時(shí)間戳同步信道法、音頻嵌入視頻同步技術(shù)和基于RTP/RTCP的同步機(jī)制是當(dāng)前最主流的三種同步方法。
1.1 時(shí)間戳同步信道法
時(shí)間戳同步信道法是將媒體數(shù)據(jù)與同步控制信息相分離的技術(shù)。流間同步和流內(nèi)同步分別采用同步信道技術(shù)和時(shí)間戳技術(shù)。通過(guò)該同步方法,會(huì)使流間和流內(nèi)均擁有較好的容錯(cuò)性和準(zhǔn)確性。然而在媒體流與同步信號(hào)被分開(kāi)傳輸時(shí),需要增加額外的信道花費(fèi)。
1.2 基于RTP/RTCP的同步機(jī)制
基于RTP/RTCP的同步機(jī)制的工作原理是通過(guò)RTCP來(lái)傳送控制分組,同時(shí)提供QoS監(jiān)視體制,動(dòng)態(tài)改變發(fā)送端數(shù)據(jù)傳輸速率。該方法優(yōu)點(diǎn)明顯,即實(shí)時(shí)性佳,控制靈活;但是缺點(diǎn)也很顯著,在數(shù)據(jù)通信過(guò)程中,會(huì)極易改變媒體流的發(fā)送過(guò)程,從而導(dǎo)致接收端的播放過(guò)程被改變。
1.3 音頻嵌入視頻同步技術(shù)
音頻嵌入視頻同步技術(shù)是音視頻同步方法中的一大突破,該方法使音視頻數(shù)據(jù)能夠在信道實(shí)現(xiàn)同步傳輸和同時(shí)到達(dá)接收端。然而音頻嵌入視頻對(duì)技術(shù)人員提出了極高的要求,該方法會(huì)大大提高編碼的計(jì)算復(fù)雜度,并且最終會(huì)對(duì)視頻質(zhì)量產(chǎn)生一定的影響。
2 音視頻同步方法的改進(jìn)
2.1 音視頻同步方法的簡(jiǎn)介
音視頻同步方法即是基于數(shù)據(jù)緩存技術(shù)、丟包處理機(jī)制和RTP包頭時(shí)間戳來(lái)進(jìn)行的音視頻同步,最終實(shí)現(xiàn)音視頻的同步與交互的實(shí)時(shí)性均衡。在發(fā)送端,音視頻數(shù)據(jù)在經(jīng)過(guò)采集、編碼與打包之后分別存進(jìn)各自的發(fā)送緩存,然后通過(guò)開(kāi)啟發(fā)送線程來(lái)順次交錯(cuò)地從音視頻緩存中提取出數(shù)據(jù)發(fā)送。在接收端,運(yùn)用緩存機(jī)制來(lái)消除抖動(dòng),達(dá)到媒體內(nèi)的同步;運(yùn)用主從流同步控制方式,其中音頻是主流,視頻是從流,從音視頻數(shù)據(jù)的時(shí)間戳來(lái)判斷其中的同步關(guān)系。當(dāng)檢測(cè)到丟包時(shí),如果為音頻丟包,就采用固定噪聲包來(lái)代替丟失的音頻包;如果為視頻丟包,就按照一定規(guī)則來(lái)進(jìn)行丟幀處理。
2.2 發(fā)送端的同步實(shí)現(xiàn)
發(fā)送端同時(shí)開(kāi)啟兩個(gè)線程來(lái)進(jìn)行音頻與視頻的采集。音頻的編解碼采用G.711標(biāo)準(zhǔn),視頻的編解碼采用H.264標(biāo)準(zhǔn),需保證音視頻幀率的一致性。在音視頻數(shù)據(jù)采集工作結(jié)束后,進(jìn)行編碼與打包,最后存入各自列屬的發(fā)送緩存隊(duì)列中等待發(fā)送線程來(lái)提取數(shù)據(jù)發(fā)送。音頻數(shù)據(jù)量比較小,一個(gè)RTP包就可以承載一幀,然而視頻幀比較大,需要對(duì)其進(jìn)行分包。在視頻幀分包時(shí),每一幀結(jié)束時(shí)采用RTP包頭中的Mark字段來(lái)標(biāo)志,該字段為1就表明當(dāng)前包為一幀的末包。先通過(guò)發(fā)送線程從音視頻的緩存隊(duì)列中提取RTP包發(fā)送,然后向同一個(gè)端口交替輸送音視頻數(shù)據(jù)。
2.3 接收端的同步實(shí)現(xiàn)
2.3.1 媒體內(nèi)同步
網(wǎng)絡(luò)抖動(dòng)會(huì)對(duì)媒體流的播放流暢性產(chǎn)生極大影響,為了消除該弊端,接收端利用緩存機(jī)制來(lái)實(shí)現(xiàn)媒體內(nèi)的同步,從而保證音頻流能連續(xù)輸送。在接收到音頻數(shù)據(jù)后先將其存入緩存,設(shè)定一個(gè)閾值R,在緩存的數(shù)據(jù)幀數(shù)大于R時(shí)才可以從緩存中取出數(shù)據(jù)播放。當(dāng)播放R個(gè)單元所用的時(shí)間大于網(wǎng)絡(luò)的最大抖動(dòng)時(shí)間時(shí),可以使音頻播放的流暢性得到顯著提高。
音頻數(shù)據(jù)的存儲(chǔ)是運(yùn)用一級(jí)緩存鏈表,經(jīng)過(guò)判斷接收的音頻RTP數(shù)據(jù)包的序列號(hào)來(lái)將音頻數(shù)據(jù)按照順序依次放入緩存中。因?yàn)閿?shù)據(jù)在網(wǎng)絡(luò)傳輸中也會(huì)遭遇丟包,所以如果對(duì)丟包不進(jìn)行處理,就會(huì)影響到音頻播放的流暢性,進(jìn)而對(duì)音視頻同步播放產(chǎn)生一定的影響。針對(duì)該種現(xiàn)象,本文設(shè)計(jì)出一種音頻丟包時(shí)的處理機(jī)制,在檢測(cè)出存在音頻丟包時(shí),采用固定噪聲包來(lái)填補(bǔ)丟失的音頻包,并且設(shè)置其相應(yīng)的時(shí)間戳。
2.3.2 媒體間同步
主流連續(xù)播放,并且主流決定從流的播放,這是音視頻同步所采用的主從流方式。本文選擇音頻流擔(dān)當(dāng)主流,視頻流為從流,讓音頻流連續(xù)地播放。經(jīng)研究表明,對(duì)音頻以及相關(guān)的視頻流而言,當(dāng)偏移-80ms(音頻滯后于視頻)至+80ms(音頻超前于視頻)之內(nèi),大多數(shù)的用戶都不會(huì)覺(jué)察到偏移的存在,此區(qū)域被稱為同步區(qū)域;當(dāng)偏移范圍在-160ms至+160ms以外時(shí),稱為不同步區(qū)域。所以,本文設(shè)置偏移閾值M為160ms,在同步播放的線程中,定時(shí)地播放從音頻緩存中提取出的音頻幀,并且記下當(dāng)時(shí)音頻幀的時(shí)間戳Ta。在播放音頻之前,先從視頻數(shù)據(jù)緩沖中提取出一幀圖像數(shù)據(jù),以得到其時(shí)間戳Tv。
(1)Ta-Tv>M,表明視頻幀滯后,則丟棄視頻幀;
(2)Tv-Ta>M,表明視頻幀超前,則將當(dāng)前的視頻幀緩存,在播放下一幀的音頻時(shí)來(lái)進(jìn)行重新判斷;
(3)-M≤Tv-Ta≤M,表明一切正常,則播放當(dāng)前的視頻幀
在進(jìn)行同步處理時(shí),需加入去馬賽克機(jī)制。若主幀滯后,則應(yīng)丟棄主幀以及主幀以后的所有輔幀;若輔幀滯后,則應(yīng)僅丟棄當(dāng)前的輔幀。
3 效果演練
把本方案運(yùn)用于多媒體信息交互系統(tǒng)中,從而實(shí)現(xiàn)一個(gè)簡(jiǎn)單的安卓客戶端,通過(guò)媒體服務(wù)器轉(zhuǎn)發(fā)音視頻數(shù)據(jù)。本客戶端經(jīng)測(cè)試顯示出音頻流暢性佳,視頻圖像的清晰度高,未出現(xiàn)明顯的馬賽克現(xiàn)象。
為了檢驗(yàn)同步機(jī)制是否存在效果,在接收端分別統(tǒng)計(jì)出采用同步機(jī)制的前后,音視頻同步關(guān)系分布概率。在測(cè)試時(shí)把發(fā)送端設(shè)置發(fā)送1000個(gè)視頻幀,經(jīng)過(guò)多次測(cè)試后采取均值,表1統(tǒng)計(jì)出音視頻同步關(guān)系概率,從該表可以看出運(yùn)用同步方法可很好地改正音視頻失步問(wèn)題。
4 結(jié)束語(yǔ)
在當(dāng)今的多媒體交互系統(tǒng)中,關(guān)鍵技術(shù)為音視頻同步。經(jīng)過(guò)分析造成音頻不同步的原因,并結(jié)合目前已存在的音視頻同步方案,本文提出了一種新型的音視頻同步方法。基于RTP包頭時(shí)間戳、緩存機(jī)制和丟包處理機(jī)制,采用主從流方式播放音視頻以保證其流暢性。該方法運(yùn)行簡(jiǎn)單,運(yùn)算方便,占用系統(tǒng)資源量少,且具有擴(kuò)展性。經(jīng)測(cè)試,同步效果優(yōu)良,有高度的實(shí)用價(jià)值。
作者單位
廣東威創(chuàng)視訊科技股份有限公司 廣東省廣州市 510670