avav588con,最近2019中文免费字幕在线观看,欧美一道本一区二区三区,九九热在线观看,经典好看免费AV

移動(dòng)端

音視頻同步解決方案

2010年03月19日 11:27$artinfo.Reprint點(diǎn)擊量:7617

         一、音視頻同步問(wèn)題概述: 音視頻同步問(wèn)題是可視對(duì)講中的重點(diǎn)需要解決的問(wèn)題之一,也是一直以來(lái)被模擬門(mén)禁產(chǎn)品廠商攻擊的一個(gè)弱點(diǎn),因?yàn)槟M可視對(duì)講產(chǎn)品都采用專線傳輸,不存在這個(gè)問(wèn)題。解決同步問(wèn)題的方法有很多種,其中時(shí)間戳是zui成熟zui也是zui復(fù)雜的解決辦法,可以解決任何多媒體領(lǐng)域的音視頻同步問(wèn)題;其原理是選擇一個(gè)參考時(shí)間,在生成數(shù)據(jù)流時(shí)依據(jù)參考時(shí)間上的時(shí)間給每個(gè)數(shù)據(jù)塊都打上時(shí)間戳;在播放時(shí),讀取數(shù)據(jù)塊上的時(shí)間戳,同時(shí)參考當(dāng)前時(shí)鐘上的時(shí)間來(lái)安排播放,讓快于這個(gè)參考時(shí)間的包等待,丟棄慢于這個(gè)參考時(shí)間的包。 在基于時(shí)間戳的同步機(jī)制中,僅僅對(duì)不同步的數(shù)據(jù)進(jìn)行處理是不完備的,還需要反饋機(jī)制,如基于Windows平臺(tái)的DirectShow就提供這樣一個(gè)反饋機(jī)制,它的質(zhì)量控制(Quality Control)可以將播放的狀態(tài)反饋給源,讓源端加快或者放慢數(shù)據(jù)流的速度。

        在多媒體文件采集,播放及對(duì)同步的要求都非常嚴(yán)格,如果從多媒體文件中分離出音視頻數(shù)據(jù)的數(shù)據(jù)不同步,音視頻的時(shí)間差則會(huì)越來(lái)越大,這是無(wú)法忍受的,所以在多媒體文件中,不但要求有同步機(jī)制,還要求有反饋機(jī)制。 

         二、數(shù)字可視對(duì)講中的音視頻同步方案 


         在數(shù)字可視對(duì)講中,可以考慮的音視頻同步方案有兩種:一是發(fā)送端解決;二是接收端解決。

        發(fā)送端解決方法比較簡(jiǎn)單,具體措施是在發(fā)送端先將一段時(shí)間內(nèi)采集到音視頻數(shù)據(jù)打包。比如采集到一幀視頻圖像,將這幀圖像與采集這幀視頻的時(shí)間內(nèi)采集到的視頻數(shù)據(jù)打成一個(gè)包,接收端接收到這個(gè)包之后解包分別播放就可以了。發(fā)送端解決的控制方法比較簡(jiǎn)單,但是在高清要求清晰度比較高的情況下就不是很理想,清晰度高,意味著每個(gè)音視頻包數(shù)據(jù)量就大,能保證同步,卻難以保證連續(xù)。我們?cè)谕粋€(gè)線程中按照先后順序發(fā)送PCM音頻和H.264視頻,測(cè)試結(jié)果表明這種方法確實(shí)存在連續(xù)問(wèn)題。

        接收端解決方案繞不開(kāi)的問(wèn)題是時(shí)間戳,接收端根據(jù)接收到的音視頻數(shù)據(jù)的時(shí)間戳安排播放。時(shí)間戳需要一個(gè)參考時(shí)間,而采集過(guò)程中視頻的時(shí)間是不定的,數(shù)字?jǐn)z像頭采集圖像的幀率是一個(gè)平均值,不宜用來(lái)做參考時(shí)間,所以只能用音頻時(shí)間作為參考時(shí)間。 

         三、聲卡編程和聲卡驅(qū)動(dòng)的時(shí)間機(jī)制


         門(mén)禁可視對(duì)講中音頻是雙向的。本文的門(mén)禁可視對(duì)講方案中,音頻的采用PCM(Pulse Code Modulation——脈碼調(diào)制錄音)采集,在網(wǎng)絡(luò)中傳送的也是原始數(shù)據(jù),之所以沒(méi)有對(duì)音頻數(shù)據(jù)進(jìn)行編碼處理是基于以下原因:一是S3C6410沒(méi)有提供對(duì)音頻的硬編解碼,如果使用軟件實(shí)現(xiàn)編解碼,在有限的系統(tǒng)資源條件下難以實(shí)現(xiàn);二是音頻數(shù)據(jù)量較小:采用8000采樣率和量化位數(shù)為8位的語(yǔ)音標(biāo)準(zhǔn),一秒的音頻數(shù)據(jù)是8K字節(jié),只相當(dāng)于視頻1幀數(shù)據(jù)的兩倍,這對(duì)普遍擁有百兆網(wǎng)卡的局域網(wǎng)來(lái)說(shuō),數(shù)據(jù)量很小。實(shí)驗(yàn)的結(jié)果表明,這種簡(jiǎn)單的處理方式被證明是有效的。

        Linux操作系統(tǒng)下音頻接口有/dev/dsp,/dev/audio,/dev/Mixer三種。前兩種的屬性基本相同,DSP是數(shù)字信號(hào)處理器(Digital Signal Processor)的簡(jiǎn)稱,是用于數(shù)字采樣(sampling)和數(shù)字錄音(recording)的設(shè)備文件,它對(duì)于Linux下的音頻編程來(lái)講非常重要。向該設(shè)備寫(xiě)數(shù)據(jù)即意味著激活聲卡上的D/A轉(zhuǎn)換器進(jìn)行放音,而向該設(shè)備讀數(shù)據(jù)則意味著激活聲卡上的A/D轉(zhuǎn)換器進(jìn)行錄音。目前許多聲卡都提供有多個(gè)數(shù)字采樣設(shè)備。/dev/audio屬性與dsp類似,但更多的用于sun的工作站中,為兼容性考慮,應(yīng)用中一般使用/dev/dsp作為音頻接口。mixer為混音器,也是聲卡設(shè)備中相當(dāng)重要的一部分,它的作用是將多個(gè)信號(hào)組合或者疊加到一起,但對(duì)應(yīng)用程序來(lái)說(shuō),這些都無(wú)需考慮,但可以通過(guò)這個(gè)接口調(diào)節(jié)聲卡播放時(shí)聲音的大小等參數(shù)。 

        無(wú)論是Linux下還是Windows下,聲卡的編程接口都是由聲卡驅(qū)動(dòng)提供的,而驅(qū)動(dòng)都是會(huì)考慮到時(shí)間機(jī)制的,其表現(xiàn)形式就是當(dāng)聲卡驅(qū)動(dòng)沒(méi)有裝好時(shí),使用播放器播放多媒體文件時(shí)聲音以極快的速度過(guò)去了,但是聲卡驅(qū)動(dòng)裝好之后就很正常了,本文的音視頻同步解決方案即以此為基礎(chǔ)。 

         四、基于音頻時(shí)間機(jī)制的音視頻同步解決方案

         與文件形式的多媒體不同的是,可視對(duì)講中音視頻流的源端是永遠(yuǎn)同步的。所以一種簡(jiǎn)單的解決方案是發(fā)送端啟用獨(dú)立的音頻和視頻線程,進(jìn)行音視頻采集,采集后只管往外發(fā)送數(shù)據(jù),接收端接到數(shù)據(jù)就分別解碼播放,從表面看,這種采用無(wú)同步機(jī)制多線程解決方案是可行的,但是忽略了一個(gè)問(wèn)題,即音頻數(shù)據(jù)包和視頻數(shù)據(jù)包的大小。包的大小會(huì)影響網(wǎng)絡(luò)傳輸?shù)乃俣?。這種差別在網(wǎng)絡(luò)條件好的情況下顯示不出來(lái),一旦遇到網(wǎng)絡(luò)擁塞或者其他情況就會(huì)變得很明顯。

        根據(jù)對(duì)音頻采集和處理的敘述,我們知道,音頻的采集是有時(shí)間機(jī)制的。比如采樣率是8000,采樣位數(shù)是8,我們就可以算出采8K字節(jié)的數(shù)據(jù)所用的時(shí)間是1s,這樣音頻就可以按照自己的速度播放;而攝像頭每秒采集的幀數(shù)是相對(duì)固定的,如OV9650采集速度為平均每秒30幀,這樣即可以算出1/30秒(約為0.03333,具體精度可以根據(jù)要求決定)刷新一幀圖片,這種方式中只要保證源端音頻視頻的采集是同步的就可以,而門(mén)禁對(duì)講過(guò)程中,這種同步是原生的。其實(shí)現(xiàn)流程如下圖所示:


        發(fā)送端分別用線程采集音視頻數(shù)據(jù),采集的同時(shí)根據(jù)RTP協(xié)議的規(guī)定分別將這些數(shù)據(jù)打上時(shí)間戳,然后通過(guò)RTP底層協(xié)議(如UDP)發(fā)送出去。

        接收端接收到音頻數(shù)據(jù),直接交給聲卡播放,當(dāng)前播放的音頻包的時(shí)間戳?xí)r間傳送給視頻線程;接收到視頻幀,則將其時(shí)間戳?xí)r間與當(dāng)前播放的音頻時(shí)間戳進(jìn)行比較,若未達(dá)到參考時(shí)間,則解碼播放;若達(dá)到參考時(shí)間,則說(shuō)明該視頻幀滯后,丟棄該視頻幀,接收下一個(gè)視頻幀,循環(huán)往復(fù),直到線程接收到結(jié)束命令停止;以上述音頻采樣率和采樣位數(shù)為例,視頻參考時(shí)間的計(jì)算方法為(以C語(yǔ)言格式的?號(hào)表達(dá)式表示): 

         音頻時(shí)間戳?xí)r間 +1/30> 視頻時(shí)間戳?xí)r間+丟棄:播放;

         在編程實(shí)現(xiàn)時(shí),采集端和播放端的音頻和視頻可采用獨(dú)立的線程,并利用Qt的信號(hào)槽機(jī)制實(shí)現(xiàn)音視頻線程時(shí)間戳的傳遞,此處不再贅述。 

         五、方案測(cè)試


         本同步方案在科技部中小型企業(yè)產(chǎn)業(yè)化創(chuàng)新基金項(xiàng)目“智能家居系統(tǒng)與控制器”中得到應(yīng)用,應(yīng)用結(jié)果表明,這種音視頻同步解決方案可以實(shí)現(xiàn)數(shù)字門(mén)禁可視對(duì)講的音視頻同步。
版權(quán)與免責(zé)聲明: 凡本網(wǎng)注明“來(lái)源:智慧城市網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-智慧城市網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:智慧城市網(wǎng)www.duty-free.cn”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源(非智慧城市網(wǎng)www.duty-free.cn)的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。

編輯精選

更多

本站精選

更多

專題推薦

更多

名企推薦

更多

浙公網(wǎng)安備 33010602000006號(hào)