亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式視頻監(jiān)控系統(tǒng)終端軟件設(shè)計(jì)與實(shí)現(xiàn)

        2015-10-19 00:33:38王慧州浙江工業(yè)大學(xué)信息工程學(xué)院浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室浙江杭州310023
        關(guān)鍵詞:信令音視頻線程

        王慧州,彭 宏(浙江工業(yè)大學(xué) 信息工程學(xué)院 浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310023)

        嵌入式視頻監(jiān)控系統(tǒng)終端軟件設(shè)計(jì)與實(shí)現(xiàn)

        王慧州,彭宏
        (浙江工業(yè)大學(xué) 信息工程學(xué)院 浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310023)

        設(shè)計(jì)并實(shí)現(xiàn)了基于嵌入式Linux和TSM320DM365處理器平臺(tái)的實(shí)時(shí)視頻監(jiān)控系統(tǒng)終端。首先介紹了視頻監(jiān)控系統(tǒng)的總體框架,從可擴(kuò)展性以及實(shí)用性上設(shè)計(jì)了嵌入式終端軟件的總體框架;接著闡述了終端軟件上音視頻采集發(fā)送模塊的設(shè)計(jì)與實(shí)現(xiàn)方案;最后對(duì)該嵌入式終端進(jìn)行測(cè)試,驗(yàn)證其實(shí)際效果。

        嵌入式;H.264;G711;DM365;RTP

        0 引言

        隨著嵌入式技術(shù)、圖像處理技術(shù)、網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展以及人們的安防意識(shí)日益提高,通過(guò)實(shí)時(shí)視頻傳輸系統(tǒng)對(duì)現(xiàn)場(chǎng)監(jiān)控的應(yīng)用越來(lái)越廣泛。基于ARM的視頻監(jiān)控系統(tǒng)因其體積小、功能強(qiáng)、功耗低、性?xún)r(jià)比高等特點(diǎn),被廣泛地應(yīng)用在交通道路、學(xué)校、小區(qū)、機(jī)場(chǎng)等場(chǎng)所。因此,對(duì)基于嵌入式的網(wǎng)絡(luò)監(jiān)控系統(tǒng)終端的研究具有很重要的社會(huì)和實(shí)際應(yīng)用價(jià)值[1]。本文根據(jù)實(shí)際需求,設(shè)計(jì)并實(shí)現(xiàn)了基于DM365的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)終端,它是網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中的音視頻獲取源,集成了音視頻采集編碼、語(yǔ)音解碼播放、實(shí)時(shí)傳輸和信令控制等功能。本文主要闡述了終端系統(tǒng)軟件框架的設(shè)計(jì)與主要功能模塊的實(shí)現(xiàn)。

        1 系統(tǒng)結(jié)構(gòu)介紹

        整個(gè)視頻監(jiān)控系統(tǒng)[2]由三部分組成:嵌入式終端、服務(wù)器平臺(tái)和客戶(hù)端。系統(tǒng)結(jié)構(gòu)框架如圖1所示。

        圖1 系統(tǒng)結(jié)構(gòu)框圖

        嵌入式終端負(fù)責(zé)采集音視頻數(shù)據(jù),對(duì)音視頻數(shù)據(jù)進(jìn)行壓縮編碼,并將編碼壓縮數(shù)據(jù)通過(guò)3G/WLAN網(wǎng)發(fā)送至流媒體服務(wù)器。服務(wù)器平臺(tái)由流媒體服務(wù)器、SIP信令服務(wù)器和FTP服務(wù)器三部分組成。流媒體服務(wù)器負(fù)責(zé)轉(zhuǎn)發(fā)音視頻流,SIP信令服務(wù)器負(fù)責(zé)終端與平臺(tái)、終端與客戶(hù)端之間的信息交互,F(xiàn)TP服務(wù)器負(fù)責(zé)圖像文件信息的存儲(chǔ)備份??蛻?hù)端主要實(shí)現(xiàn)實(shí)時(shí)監(jiān)控和終端控制功能,通過(guò)客戶(hù)端可對(duì)終端設(shè)備進(jìn)行實(shí)時(shí)的視頻碼率幀率控制。整個(gè)系統(tǒng)為嵌入式視頻監(jiān)控提供了良好的解決方案,能夠廣泛地應(yīng)用在視頻監(jiān)控領(lǐng)域中。

        2 嵌入式終端軟件框架設(shè)計(jì)

        嵌入式終端軟件開(kāi)發(fā)基于 MontaVista Linux嵌入式操作系統(tǒng),它基于Linux內(nèi)核,具有高效、實(shí)時(shí)、穩(wěn)定、內(nèi)核可裁剪等特點(diǎn)[3]。同時(shí)利用 Linux系統(tǒng)提供的進(jìn)程間通信機(jī)制可方便地實(shí)現(xiàn)各功能模塊之間的數(shù)據(jù)通信。嵌入式終端軟件平臺(tái)包括視頻采集編碼模塊、音頻采集編碼解碼模塊、RTP模塊、信令控制模塊以及其他的功能模塊等。終端軟件總體框架如圖2所示。

        圖2 終端軟件總體框架圖

        SIP信令模塊負(fù)責(zé)與服務(wù)器平臺(tái)的信令交互。信令模塊將應(yīng)用管理模塊的信息進(jìn)行SIP信令封裝并發(fā)送至SIP服務(wù)器;同時(shí)解析接收的SIP信令,將控制信息通過(guò)本地socket發(fā)送至應(yīng)用管理模塊進(jìn)行調(diào)度。

        應(yīng)用管理模塊負(fù)責(zé)調(diào)度各個(gè)功能模塊。管理模塊收集各個(gè)功能模塊的交互信息,將交互信息進(jìn)行封裝,發(fā)送至SIP信令控制模塊,從而實(shí)現(xiàn)與服務(wù)器平臺(tái)的信令交互;與此同時(shí),管理模塊還將接收到的控制信息進(jìn)行解析,根據(jù)控制信息調(diào)度相應(yīng)的功能模塊。在各功能模塊中,RTP模塊為主要模塊,負(fù)責(zé)音視頻數(shù)據(jù)的RTP封包、發(fā)送。

        音視頻采集模塊負(fù)責(zé)實(shí)時(shí)的音視頻數(shù)據(jù)采集。該模塊采集音視頻數(shù)據(jù),并對(duì)其進(jìn)行編碼,通過(guò) Linux共享內(nèi)存機(jī)制實(shí)現(xiàn)與RTP模塊的數(shù)據(jù)交互。

        該軟件框架中各功能模塊單獨(dú)實(shí)現(xiàn),互不影響,可根據(jù)具體需求方便地添加和刪除功能模塊,同時(shí)各個(gè)模塊均由應(yīng)用管理模塊進(jìn)行調(diào)度統(tǒng)籌,便于管理。

        3 音視頻功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

        嵌入式設(shè)備作為視頻監(jiān)控系統(tǒng)的終端,需要完成語(yǔ)音與視頻的數(shù)據(jù)采集和發(fā)送,一次成功的視頻監(jiān)控請(qǐng)求應(yīng)當(dāng)包含控制信息接收解析、數(shù)據(jù)流的發(fā)送和接收等。嵌入式終端音視頻功能模塊主要包括音視頻采集編碼模塊、RTP模塊,模塊間通過(guò)Linux進(jìn)程間通信機(jī)制實(shí)現(xiàn)數(shù)據(jù)與控制信息的交互。

        圖3所示為一次音視頻請(qǐng)求后音視頻相關(guān)模塊的處理流程。客戶(hù)端發(fā)起視頻請(qǐng)求后,SIP信令模塊將接收到服務(wù)器轉(zhuǎn)發(fā)的視頻請(qǐng)求信令,SIP信令在經(jīng)過(guò)信令模塊的解析之后,其攜帶的控制消息將到達(dá)應(yīng)用管理模塊;管理模塊解析音視頻請(qǐng)求控制消息,通知RTP模塊;RTP模塊開(kāi)啟兩個(gè)線程用于處理音視頻數(shù)據(jù),發(fā)送線程負(fù)責(zé)從共享內(nèi)存讀取音視頻數(shù)據(jù)并進(jìn)行RTP打包發(fā)送,接收線程接收流媒體服務(wù)器轉(zhuǎn)發(fā)的語(yǔ)音數(shù)據(jù)包并進(jìn)行解碼播放。

        圖3 音視頻監(jiān)控流程

        本文選用TI公司采用達(dá)芬奇技術(shù)的數(shù)字媒體處理器TMS320DM365作為主芯片。為了方便音視頻采集編碼的應(yīng)用程序開(kāi)發(fā),TI針對(duì)達(dá)芬奇平臺(tái)提供了達(dá)芬奇多媒體應(yīng)用程序接口 (Davinci Multimedia Application Interface,DMAI),DMAI封裝了底層的驅(qū)動(dòng),并且提供了易于程序開(kāi)發(fā)的編程接口[4]。這使得應(yīng)用程序不再關(guān)心底層硬件對(duì)于某個(gè)操作的具體實(shí)現(xiàn),大大簡(jiǎn)化了應(yīng)用程序的開(kāi)發(fā)。本文音視頻采集編碼模塊的大部分就是調(diào)用DMAI接口實(shí)現(xiàn)的。

        3.1視頻采集編碼模塊實(shí)現(xiàn)

        嵌入式終端接收到視頻請(qǐng)求信令之后,視頻采集編碼模塊進(jìn)行視頻數(shù)據(jù)的采集,將采集的視頻數(shù)據(jù)進(jìn)行H.264編碼,寫(xiě)入共享內(nèi)存,供RTP模塊讀取。視頻采集模塊采用多線程工作機(jī)制[5],主線程負(fù)責(zé)整個(gè)流程控制,視頻采集編碼的具體實(shí)現(xiàn)在 Capture線程、Video線程和Write線程中完成,三個(gè)線程通過(guò)管道進(jìn)行線程間通信。

        Capture線程負(fù)責(zé)采集原始視頻數(shù)據(jù),關(guān)鍵代碼如下:

        hCapture=Capture_create(hBufTab,&cAttrs)//創(chuàng)建一個(gè)視頻采集設(shè)備實(shí)例

        Capture_get(hCapture,&hCapBuf)//從視頻采集設(shè)備獲取采集到的一幀原始數(shù)據(jù)

        Fifo_put(envp->hOutFifo,hBuf)//將存有原始數(shù)據(jù)的//緩沖指針寫(xiě)入hOutFifo管道中,供 video線程讀取

        Fifo_get(envp->hInFifo,&hDstBuf)//從hInFifo管道讀取由Video線程寫(xiě)回的緩存指針

        Capture(hCapture,hCapBuf)//告知 hCapture,Capture

        //線程已經(jīng)完成一次操作,等待 hCapture句柄再次捕獲//一幀原始數(shù)據(jù)

        Video線程負(fù)責(zé)對(duì)采集的原始視頻數(shù)據(jù)進(jìn)行 H.264編碼,關(guān)鍵代碼如下:

        hVe1=Venc1_create(hEngine,envp->videoEncoder,params,dynParams)//創(chuàng)建H.264視頻編碼器

        Fifo_get(envp->hCaptureOutFifo,&hCapBuf)//從管道讀取存有原始數(shù)據(jù)的緩沖指針

        Fifo_get(envp->hWriterOutFifo,&hDstBuf)//從管道讀取 Write線程寫(xiě)入的緩沖指針

        Venc1_process(hVe1,hCapture,hDstBuf)//將一幀原始視頻數(shù)據(jù)進(jìn)行 H.264編碼

        Fifo_put(envp->hWriterInFifo,hDstBuf)//將編碼數(shù)據(jù)緩沖指針寫(xiě)入管道,供write線程讀取

        Fifo_put(envp->hCaptureInFifo,hCapBuf)//將緩沖指針寫(xiě)回管道,供 capture線程使用

        Write線程負(fù)責(zé)將編碼的視頻數(shù)據(jù)寫(xiě)入共享內(nèi)存,由RTP模塊讀取打包發(fā)送。關(guān)鍵代碼如下:

        shm_pn=createShm(SHM_DIR,SHARE_SIZE)//創(chuàng)建共享內(nèi)存

        Fifo_get(envp->hInFifo,&hOutBuf)//從管道讀取一幀編碼的視頻數(shù)據(jù)

        wirteShm(shm_pn,Buffer_getUserPtr(hOutBuf),Buffer_get-NumBytesUsed(hOutBuf))//將編碼數(shù)據(jù)寫(xiě)入共享內(nèi)存

        Fifo_put(envp->hOutBuf,hOutBuf)//將緩沖指針寫(xiě)回管道

        3.2音頻采集解碼編碼模塊實(shí)現(xiàn)

        音頻處理模塊由采集編碼和解碼播放兩部分組成,通過(guò)與上層RTP模塊的交互實(shí)現(xiàn)雙向語(yǔ)音功能。在接收到視頻請(qǐng)求信令之后,音頻處理模塊創(chuàng)建兩個(gè)線程用于處理語(yǔ)音數(shù)據(jù),Speech線程負(fù)責(zé)語(yǔ)音數(shù)據(jù)的采集、G711編碼,SpeechDec線程負(fù)責(zé)對(duì) G711數(shù)據(jù)進(jìn)行解碼、播放。兩功能模塊獨(dú)立工作,互不影響。

        Speech線程主要代碼如下:

        Shm_audio=createShm(AUDIO_SHM_DIR,AUDIO_SHARE _SIZE)//創(chuàng)建共享內(nèi)存

        hSe1=Senc1_create(hEngine,envp->speechEncoder,params,dynParams)//創(chuàng)建g711編碼器

        hSound=Sound_create(&sAttrs)//創(chuàng)建一個(gè)音頻捕捉設(shè)備實(shí)例

        Sound_read(hSound,hInbuf)//讀取音頻數(shù)據(jù)到緩沖區(qū)

        Senc1_process(hInbuf,hOutBuf)//將PCM音頻數(shù)據(jù)進(jìn)行G711編碼

        writeShm(shm_audio,Buffer_getUserPtr(hOutBuf),Buffer_ getNumBytesUsed(hOutBuf)//將音頻數(shù)據(jù)寫(xiě)入共享內(nèi)存

        SpeechDec線程實(shí)現(xiàn)過(guò)程與Speech線程類(lèi)似,這里不再贅述。

        3.3RTP模塊設(shè)計(jì)與實(shí)現(xiàn)

        RTP模塊實(shí)現(xiàn)RTP數(shù)據(jù)包的發(fā)送和接收功能,通過(guò)與信令控制模塊的信息交互來(lái)完成發(fā)送、接收線程的創(chuàng)建與結(jié)束。發(fā)送線程從共享內(nèi)存讀取H.264數(shù)據(jù)和G711數(shù)據(jù),并將編碼音視頻數(shù)據(jù)進(jìn)行RTP打包發(fā)送。

        音頻接收線程在接收到RTP數(shù)據(jù)后,由于網(wǎng)絡(luò)傳輸導(dǎo)致數(shù)據(jù)包到達(dá)的順序具有不確定性,因此需要對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行緩存排序。首先將G711語(yǔ)音數(shù)據(jù)包放入緩沖隊(duì)列中,通過(guò)RTP包的序號(hào)進(jìn)行優(yōu)先級(jí)排序。然后取緩沖隊(duì)列音頻數(shù)據(jù),寫(xiě)入共享內(nèi)存,供音頻解碼播放模塊讀取播放。合適的緩沖區(qū)大小設(shè)置尤為重要,緩沖隊(duì)列設(shè)置過(guò)小會(huì)導(dǎo)致語(yǔ)音包亂序,語(yǔ)音質(zhì)量較差;緩沖隊(duì)列設(shè)置過(guò)大,語(yǔ)音延時(shí)較大,用戶(hù)體驗(yàn)差。需要根據(jù)實(shí)際網(wǎng)絡(luò)狀況和用戶(hù)需求設(shè)置緩沖隊(duì)列大小。

        4 視頻監(jiān)控測(cè)試

        嵌入式設(shè)備、PC客戶(hù)端通過(guò)3G/WLAN網(wǎng)向服務(wù)器平臺(tái)注冊(cè)登錄,進(jìn)行視頻監(jiān)控功能測(cè)試??蛻?hù)端發(fā)起視頻請(qǐng)求并成功之后,可以觀看終端設(shè)備采集的視頻,并在開(kāi)啟音頻請(qǐng)求之后實(shí)現(xiàn)與采集設(shè)備終端的雙向語(yǔ)音通信。測(cè)試結(jié)果表明,視頻畫(huà)面清晰流暢,可進(jìn)行雙向語(yǔ)音通信,語(yǔ)音質(zhì)量較好。視頻監(jiān)控效果如圖4所示。

        Design and im plementation of a video monintoring term inal softw are based on embedded system

        Wang Huizhou,Peng Hong
        (Zhejiang Provincial Key Laboratory of Communication Networks and Application,College of Information Engineering,Zhejiang Univerisity of Technology,Hangzhou 310023,China)

        Thispaper designsandimplementsareal-timevideomonintoringsystemterminal basedonLinuxand TSM320DM365.Firstly,it introduces the system framework.According to the scalability and usability,it designs a general framework for embedded terminal software.Then it describes the design and implementation of programs on the terminal software to send audio and video.Finally,the embedded terminal is test to verify its practical effect.

        embedded;H.264;G711;DM365;RTP

        TP37

        A

        1674-7720(2015)06-0072-03

        猜你喜歡
        信令音視頻線程
        SLS字段在七號(hào)信令中的運(yùn)用
        3KB深圳市一禾音視頻科技有限公司
        移動(dòng)信令在交通大數(shù)據(jù)分析中的應(yīng)用探索
        WIFI音視頻信號(hào)傳輸?shù)年P(guān)鍵問(wèn)題探究
        電子制作(2018年12期)2018-08-01 00:48:06
        基于信令分析的TD-LTE無(wú)線網(wǎng)絡(luò)應(yīng)用研究
        高速公路整合移動(dòng)音視頻系統(tǒng)應(yīng)用
        淺談linux多線程協(xié)作
        LTE網(wǎng)絡(luò)信令采集數(shù)據(jù)的分析及探討
        Roland專(zhuān)業(yè)音視頻新技術(shù)研討會(huì)在上海召開(kāi)
        Linux線程實(shí)現(xiàn)技術(shù)研究
        俺也去色官网| 无遮挡1000部拍拍拍免费| 久久婷婷综合色一区二区| 国产一区二区三区日韩精品 | 99re热视频这里只精品 | 精品熟妇av一区二区三区四区| 亚洲精品岛国av一区二区| 亚洲国产一区二区三区在线观看| 亚洲综合久久成人a片| 91视频免费国产成人| 亚洲精品亚洲人成在线播放| 亚洲av综合色区久久精品| 中文有码亚洲制服av片| 国产丝袜视频一区二区三区| 国产伦精品一区二区三区四区| 久久久噜噜噜噜久久熟女m| 久久精品成人一区二区三区| 日本乱人伦在线观看| 久久久久久久久国内精品影视| 乳乱中文字幕熟女熟妇| 在线一区二区三区国产精品| 中文字幕在线播放| 宅男噜噜噜| 99国产综合精品-久久久久| 亚洲一区二区蜜桃视频| 国产乱码卡二卡三卡老狼| 极品粉嫩嫩模大尺度无码| 黄色av三级在线免费观看| 国产麻豆久久av入口| 99久久免费只有精品国产| 日本一区二区三区高清千人斩| 国产在线精品亚洲视频在线| 国产在线一区二区三区四区| 亚洲а∨天堂久久精品2021| 中文字幕亚洲人妻系列| 久久精品免费视频亚洲| 久久国产精品一国产精品金尊| 18禁无遮挡无码网站免费| 国内久久婷婷精品人双人| 九九久久精品一区二区三区av| 国产精品爽爽ⅴa在线观看|