<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于新型的音視頻同步方案的設計和實現方法

電子設計 ? 來源:數字社區&智能家居 ? 作者:朱邦兵;呂楊;王友 ? 2021-03-29 11:55 ? 次閱讀

本文介紹了一種基于新型的音視頻同步解決方案。闡述了方案的構思,設計和實現方法。該方案已在一種新型的數字化智能家居門禁系統中得到了應用,并取得良好的效果。

一、引言

目前,成熟的智能家居系統的室外機、門禁可視對講和門禁控制幾乎全部采用模擬信號,安裝時需要架設專用網絡,布線復雜,不可擴展,靈活性差,傳輸距離短,投資大,維護成本高。隨著市場需求的增長、消費者消費觀念的提高以及模擬系統沉重的工程維護代價,結合以太網技術的全數字室外機和門禁產品成為研發的熱點。但是在諸多因素影響下,當前的數字門禁產品不成熟、不穩定、價格高昂,特別是門禁對講中的音視頻同步問題,一直以來都是數字可視對講的短板。

二、音視頻同步問題概述

音視頻同步問題是可視對講中的重點需要解決的問題之一,也是一直以來被模擬門禁產品廠商攻擊的一個弱點,因為模擬可視對講產品都采用專線傳輸,不存在這個問題。解決同步問題的方法有很多種,其中時間戳是最成熟最完美也是最復雜的解決辦法,可以解決任何多媒體領域的音視頻同步問題;其原理是選擇一個參考時間,在生成數據流時依據參考時間上的時間給每個數據塊都打上時間戳;在播放時,讀取數據塊上的時間戳,同時參考當前時鐘上的時間來安排播放,讓快于這個參考時間的包等待,丟棄慢于這個參考時間的包。在基于時間戳的同步機制中,僅僅對不同步的數據進行處理是不完備的,還需要反饋機制,如基于Windows平臺的DirectShow就提供這樣一個反饋機制,它的質量控制(QualityControl)可以將播放的狀態反饋給源,讓源端加快或者放慢數據流的速度。

在多媒體文件采集,播放及對同步的要求都非常嚴格,如果從多媒體文件中分離出音視頻數據的數據不同步,音視頻的時間差則會越來越大,這是無法忍受的,所以在多媒體文件中,不但要求有同步機制,還要求有反饋機制。

三、數字可視對講中的音視頻同步方案

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

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

接收端解決方案繞不開的問題是時間戳,接收端根據接收到的音視頻數據的時間戳安排播放。時間戳需要一個參考時間,而采集過程中視頻的時間是不定的,數字攝像頭采集圖像的幀率是一個平均值,不宜用來做參考時間,所以只能用音頻時間作為參考時間。

四、聲卡編程和聲卡驅動的時間機制

門禁可視對講中音頻是雙向的。本文的門禁可視對講方案中,音頻的采用PCM(PulseCodeModulation——脈碼調制錄音)采集,在網絡中傳送的也是原始數據,之所以沒有對音頻數據進行編碼處理是基于以下原因:一是S3C6410沒有提供對音頻的硬編解碼,如果使用軟件實現編解碼,在有限的系統資源條件下難以實現;二是音頻數據量較?。翰捎?000采樣率和量化位數為8位的電話語音標準,一秒的音頻數據是8K字節,只相當于視頻1幀數據的兩倍,這對普遍擁有百兆網卡的局域網來說,數據量很小。實驗的結果表明,這種簡單的處理方式被證明是有效的。

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的信號槽機制實現音視頻線程時間戳的傳遞,此處不再贅述。

六、方案測試

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

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 門禁系統
    +關注

    關注

    17

    文章

    386

    瀏覽量

    44839
  • 多媒體
    +關注

    關注

    0

    文章

    482

    瀏覽量

    36688
  • 智能家居
    +關注

    關注

    1914

    文章

    9181

    瀏覽量

    179715
收藏 人收藏

    評論

    相關推薦

    音視頻同步的原理及實現方案

    音視頻同步是我們觀看視頻的一個基本體驗,尤其對于視頻畫面中能看到聲源動作(如:嘴型)的場景,音視頻同步
    發表于 04-20 14:32 ?8924次閱讀

    音視頻測量方案

     求音視頻測量方案
    發表于 03-20 01:13

    dm8168 dvrrdk 16路音視頻是怎么同步的呢?

    dm8168 dvrrdk 16路音視頻是怎么同步的呢? dvrrdk2.80 支持音頻的采集壓縮吧? 有沒有介紹dvrrdk 音視頻同步方面的資料呢?
    發表于 06-21 06:20

    dm8168 音視頻同步問題

    我在8168上用dvrrdk 4.0.03做音視頻,我的視頻和音頻都來自網絡,經過解碼處理后,再編碼,但是編碼后的視頻音頻數據有同步的問題,rdk里面有沒有什么接口或者API能讓
    發表于 06-23 04:51

    基于ARM Linux的無線音視頻對講系統

    開源的Speex算法消除了回音。具體做法:將該算法編譯成庫文件,加入到Linux內核,即可以使用Speex 的API函數,實現音頻的回音消除?! ?.3嵌入式音視頻同步  本文的基本思想是以
    發表于 07-24 13:48

    什么是音視頻同步?音視頻同步的影響因素有哪些?

    什么是音視頻同步?有什么要求?音視頻同步的影響因素有哪些?音視頻同步的常見技術有哪些?
    發表于 06-15 08:48

    音視頻邊緣計算

    今天讀到一篇關于音視頻邊緣計算的帖子音視頻合成的云邊緣計算實現文章里有兩個要點1)邊緣計算 具體功能有:流合成 錄像 水印 送審等功能 這些多數設計到需要對媒體數據做處理2)作者再部署的部署
    發表于 10-29 08:34

    FFMPEG如何進行音視頻同步

    自己百度吧!  1、幀率控制  幀率控制的方法有千萬種,最2的方法無非是每解碼/顯示一幀就進行延時,為了方便我們在進行幀率控制的同時能夠理解音視頻同步,我在此采用PCR
    發表于 08-23 16:27

    音視頻

    音視頻技術都喜歡深究內部最核心的原理和機制,尤其是ffmpeg這個編解碼庫,可以說是音視頻領域事實上的標準。語音智能算法,語言語義分析和理解,流媒體服務器等高端技術也都基于它而構建。希望有幸獲得本書,深度學習ffmpeg核心技術,和作者一起在技術海洋中探索和進步。
    發表于 11-23 08:51

    常用音視頻芯片集

    常用音視頻芯片集:視頻同步信號分離器應用:NTSC,PAL,SECAM 制式,幅度0.5V~2Vp-p 之間的視頻同步信號分離。型號封裝形式
    發表于 09-26 16:52 ?52次下載

    MPEG4音視頻編碼卡的設計與實現

    摘 要:本文介紹了一塊基于PCI總線的單路MPEG4音視頻編碼卡的設計與實現。該卡實現音視頻流的實時MPEG4編碼壓縮,并通過通用PC平臺可以
    發表于 03-11 13:18 ?1689次閱讀
    MPEG4<b class='flag-5'>音視頻</b>編碼卡的設計與<b class='flag-5'>實現</b>

    根據互聯網音視頻的手機視頻監控幼兒園應用方案

    根據互聯網音視頻的手機視頻監控幼兒園應用方案 宙斯眼手機視頻監控系統是一種基于互聯網音視頻應用的新型
    發表于 03-29 08:53 ?1178次閱讀
    根據互聯網<b class='flag-5'>音視頻</b>的手機<b class='flag-5'>視頻</b>監控幼兒園應用<b class='flag-5'>方案</b>

    基于RTP 的H.323視頻會議系統音視頻同步

    本文針對H.323 視頻會議系統設計了一種基于RTP 的音視頻同步方法,該方法在嚴格遵守RTP 協議的前提下,將
    發表于 09-21 15:27 ?4231次閱讀
    基于RTP 的H.323<b class='flag-5'>視頻</b>會議系統<b class='flag-5'>音視頻</b><b class='flag-5'>同步</b>

    基于i.MX6車載音視頻系統的設計和實現

    車載音視頻系統的硬件模塊和軟件流程圖,驅動初始化狀態機實現方法。系統測試結果表明本文提出的音視頻系統實現
    發表于 12-31 09:20 ?35次下載

    音視頻集成是什么 音視頻視頻有什么區別

    音視頻集成是將音頻和視頻設備、系統和技術進行整合,以實現全面的音視頻功能和體驗的過程。
    發表于 06-19 17:14 ?1858次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>