關 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設計應用 > 解析數字門禁可視對講中的音視頻同步原理

        解析數字門禁可視對講中的音視頻同步原理

        作者: 時間:2010-07-16 來源:網絡 收藏

          Linux操作系統下音頻接口有/dev/dsp,/dev/audio,/dev/Mixer三種。前兩種的屬性基本相同,DSP是數字信號處理器(DigitalSignalProcessor)的簡稱,是用于數字采樣(sampling)和數字錄音(recording)的設備文件,它對于Linux下的音頻編程來講非常重要。向該設備寫數據即意味著激活聲卡上的D/A轉換器進行放音,而向該設備讀數據則意味著激活聲卡上的A/D轉換器進行錄音。目前許多聲卡都提供有多個數字采樣設備。/dev/audio屬性與dsp類似,但更多的用于sun的工作站中,為兼容性考慮,應用中一般使用/dev/dsp作為音頻接口。mixer為混音器,也是聲卡設備中相當重要的一部分,它的作用是將多個信號組合或者疊加到一起,但對應用程序來說,這些都無需考慮,但可以通過這個接口調節聲卡播放時聲音的大小等參數。

          無論是Linux下還是Windows下,聲卡的編程接口都是由聲卡驅動提供的,而驅動都是會考慮到時間機制的,其表現形式就是當聲卡驅動沒有裝好時,使用播放器播放多媒體文件時聲音以極快的速度過去了,但是聲卡驅動裝好之后就很正常了,本文的音視頻同步解決方案即以此為基礎。

        五、基于音頻時間機制的音視頻同步解決方案

          與文件形式的多媒體不同的是,可視對講中音視頻流的源端是永遠同步的。所以一種簡單的解決方案是發送端啟用獨立的音頻和視頻線程,進行音視頻采集,采集后只管往外發送數據,接收端接到數據就分別解碼播放,從表面看,這種采用無同步機制多線程解決方案是可行的,但是忽略了一個問題,即音頻數據包和視頻數據包的大小。包的大小會影響網絡傳輸的速度。這種差別在網絡條件好的情況下顯示不出來,一旦遇到網絡擁塞或者其他情況就會變得很明顯。

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

          接收端接收到音頻數據,直接交給聲卡播放,當前播放的音頻包的時間戳時間傳送給視頻線程;接收到視頻幀,則將其時間戳時間與當前播放的音頻時間戳進行比較,若未達到參考時間,則解碼播放;若達到參考時間,則說明該視頻幀滯后,丟棄該視頻幀,接收下一個視頻幀,循環往復,直到線程接收到結束命令停止;以上述音頻采樣率和采樣位數為例,視頻參考時間的計算方法為(以C語言格式的?號表達式表示):

          音頻時間戳時間+1/30>視頻時間戳時間?丟棄:播放;

          在編程實現時,采集端和播放端的音頻和視頻可采用獨立的線程,并利用Qt的信號槽機制實現音視頻線程時間戳的傳遞,此處不再贅述。

        六、方案測試

          本同步方案在科技部中小型企業產業化創新基金項目“智能家居系統與控制器”中得到應用,應用結果表明,這種音視頻同步解決方案可以實現數字的音視頻同步。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武城县| 登封市| 出国| 白山市| 闵行区| 孝义市| 昌邑市| 南郑县| 西宁市| 永吉县| 安泽县| 凤山县| 三河市| 伊宁市| 朔州市| 巨鹿县| 永城市| 龙泉市| 仙游县| 巢湖市| 阿拉善盟| 周口市| 法库县| 大厂| 博湖县| 神农架林区| 宝丰县| 敦煌市| 崇义县| 五台县| 靖江市| 原平市| 宁海县| 蓬安县| 彰化县| 甘德县| 五寨县| 古交市| 体育| 太仓市| 宿州市|