劉偉杰 李博
摘 ?要: 高清視頻監(jiān)控畫面范圍廣同時(shí)產(chǎn)生巨大數(shù)據(jù)使得在網(wǎng)絡(luò)傳輸中造成時(shí)延,也存在音頻數(shù)據(jù)有限的問題。針對上述問題,文中設(shè)計(jì)一種基于B/S架構(gòu)的實(shí)時(shí)高清音視頻監(jiān)控系統(tǒng)。USB攝像頭基于V4L2接口采集圖像,基于ALSA聲卡驅(qū)動(dòng)采集音頻,結(jié)合H.265視頻編解碼技術(shù)和FAAC音頻編碼技術(shù),以RTP協(xié)議打包封裝H.265視頻碼流和AAC音頻碼流經(jīng)網(wǎng)絡(luò)同步傳輸?shù)絎eb服務(wù)器,利用CGI,JavaScrict技術(shù)實(shí)現(xiàn)多種智能終端登錄瀏覽器顯示監(jiān)控畫面。經(jīng)測試該監(jiān)控系統(tǒng)畫面清晰無抖動(dòng),音視頻吻合效果明顯滿足實(shí)驗(yàn)要求。
關(guān)鍵詞: B/S架構(gòu); 高清視頻; 監(jiān)控系統(tǒng); 同步傳輸; 智能終端登錄; 監(jiān)控畫面顯示
中圖分類號: TN949.197?34 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2019)12?0045?03
Abstract: The high?definition video monitoring images have wide application range, but can simultaneously generate huge amount of data, which may cause the problems of network transmission delay and limited audio data. Therefore, a real?time high?definition audio and video monitoring system based on the B/S architecture is designed in this paper. The USB camera is used to collect images by means of the V4L2 interface and audios by means of the ALSA sound card driver. In combination with the H.265 video encoding and decoding technology and FAAC audio encoding technology, the H.265 video code stream and AAC audio code stream are packaged and encapsulated by using the RTP protocol, and then simultaneously transmitted to the Web server via network. The CGI and JavaScript technology are used to realize various intelligent terminals′ login into browser for monitoring image display. The test results show that the monitoring system can generate clear images without any jitter, and has an obvious audio and video synchronization effect, which can meet the experimental requirements.
Keywords: B/S architecture; high?definition video; monitoring system; synchronous transmission; intelligent terminal login; monitoring image display
0 ?引 ?言
隨著社會(huì)的發(fā)展,人們安全性意識(shí)逐漸提高,安防監(jiān)控在國家安全、社會(huì)公共安全、交通安全、及個(gè)人安全等領(lǐng)域需求越來越廣泛,并且要求的安全質(zhì)量標(biāo)準(zhǔn)也大大提高。早期的模擬監(jiān)控已經(jīng)無法滿足大面積覆蓋重要安全領(lǐng)域的需求,并且不具備遠(yuǎn)程監(jiān)控的功能;而網(wǎng)絡(luò)安防視頻監(jiān)控具備不受地域、時(shí)間限制,在允許授權(quán)的情況下可以隨時(shí)隨地按需監(jiān)控,實(shí)現(xiàn)快速反應(yīng),使用方式相當(dāng)簡單快捷,已經(jīng)成為監(jiān)控未來發(fā)展的主流趨勢。目前網(wǎng)絡(luò)監(jiān)控的高清以及超清畫質(zhì)已經(jīng)成為安防監(jiān)控重要的質(zhì)量標(biāo)準(zhǔn)之一。
隨著流媒體技術(shù)的快速發(fā)展,視頻編碼已經(jīng)由應(yīng)用廣泛的H.264標(biāo)準(zhǔn)發(fā)展到最新的H.265標(biāo)準(zhǔn)。H.265標(biāo)準(zhǔn)采用多種視頻編解碼的新技術(shù),能夠更好地支持高清視頻;同時(shí)H.265標(biāo)準(zhǔn)在網(wǎng)絡(luò)方面采用并行處理的應(yīng)用方法,解決高清以及超清視頻對網(wǎng)絡(luò)帶寬高需求而造成高清視頻卡頓的問題,為高清視頻實(shí)時(shí)傳輸和瀏覽提供便捷。
軟件設(shè)備的提高需要硬件的支持,并且要求安防設(shè)備具有快速處理視頻信號的能力和操作簡單方便,應(yīng)用領(lǐng)域普及范圍廣的特點(diǎn)。本文針對安防設(shè)備的功能需求采用嵌入式網(wǎng)絡(luò)監(jiān)控系統(tǒng),以提高視頻監(jiān)控的質(zhì)量,更好地滿足安防監(jiān)控的應(yīng)用領(lǐng)域。
1 ?系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
1.1 ?硬件系統(tǒng)設(shè)計(jì)
本文采用友善公司推出的Tiny?4412開發(fā)板。Tiny?4412開發(fā)板是三星公司生產(chǎn)的高性能微處理器,Cortex?A8內(nèi)核,主頻1.4 GHz/1.6 GHz,滿足處理復(fù)雜算法的能力[1]。由系統(tǒng)外設(shè)接口豐富,具有1 GB的運(yùn)行內(nèi)存DDR3,8 GB的存儲(chǔ)NANDFLASH芯片,以及具有USB攝像機(jī)接口、支持高清LCD顯示器,同時(shí)在網(wǎng)絡(luò)方面支持百兆網(wǎng)卡接口,硬件系統(tǒng)外設(shè)滿足系統(tǒng)應(yīng)用要求。硬件系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖如圖1所示。
1.2 ?軟件系統(tǒng)設(shè)計(jì)
基于Linux?2.6.30為操作系統(tǒng),移植ARM端X265和FAAC軟件,分別支持H.265視頻編解碼和AAC音頻編碼。應(yīng)用程序部分采用多線程編程技術(shù)。
1.2.1 ?圖像采集編碼線程
V4L2[2]是Linux系統(tǒng)支持視頻設(shè)備的驅(qū)動(dòng)框架,它為針對視頻設(shè)備的應(yīng)用程序提供接口。
在Linux中,視頻設(shè)備是設(shè)備文件,驅(qū)動(dòng)程序在/dev/video*目錄下,核心算法部分如下:
1) 打開攝像頭設(shè)備,調(diào)用函數(shù)fd=open(“/dev/video0”,O_RDWR)。
2) 設(shè)置視頻采集格式,調(diào)用函數(shù)ioctl(fd,VIDIOC_S_FMT,&fmt)設(shè)置視頻采集分辨率、顏色、采集模式等。
3) 申請幀緩沖空間,在用戶空間申請4個(gè)視頻幀緩沖采用隊(duì)列方式循環(huán)采集,并且采用mmap()方式將內(nèi)核空間映射到用戶空間,內(nèi)存映射方式方便快捷,省去了大量內(nèi)存復(fù)制,提高效率。
4) 設(shè)備采集圖像,調(diào)用函數(shù)ioctl(fd,VIDIOC_STREAMON,&mtd)緩存圖像,啟動(dòng)視頻編碼線程編碼視頻數(shù)據(jù)ret=x265_encoder_encode(pHandle,&pNals,&iNal,pPic_in,NULL),壓縮采集視頻。
5) 關(guān)閉視頻設(shè)備close(fd),釋放內(nèi)存。
1.2.2 ?音頻采集編碼線程
ALSA是在Linux系統(tǒng)進(jìn)行音頻編程可供選擇的聲卡驅(qū)動(dòng)體系結(jié)構(gòu),ALSA提供了支持多種聲卡設(shè)備,提供了開發(fā)函數(shù)庫(alsa?lib)以簡化應(yīng)用程序開發(fā)。基于ALSA聲卡驅(qū)動(dòng)音頻采集得到PCM數(shù)據(jù)量大,網(wǎng)絡(luò)傳輸需要將其轉(zhuǎn)化為AAC音頻格式,采用FAAC進(jìn)行音頻編碼轉(zhuǎn)換,ALSA聲卡驅(qū)動(dòng)在用戶空間使用(alsa?lib)。本模塊音頻采集編碼關(guān)鍵代碼如下:
1) 初始化PCM編碼參數(shù)設(shè)備句柄、硬件信息和PCM流配置。
2) 初始化采樣格式,設(shè)置采樣率。
3) 設(shè)置通道數(shù)量,完成硬件參數(shù)設(shè)置。
err=snd_pcm_hw_params(hangle, params)
4) PCM編碼轉(zhuǎn)換AAC格式音頻碼流緩存。
faacEncEncode(faacEncHandle hEncoder, ?int32_t * inputBuffer, unsigned int samplesInput, ?unsigned char *outputBuffer, unsigned int bufferSize)
//參數(shù)1是FAAC編碼器句柄,參數(shù)2是輸入PCM信息緩沖區(qū),參數(shù)3是編碼后數(shù)據(jù)長度,參數(shù)4編碼后輸出信息緩沖區(qū),參數(shù)5是實(shí)際緩沖區(qū)大小
5) 關(guān)閉PCM設(shè)備句柄和編碼器句柄。
1.2.3 ?音視頻同步網(wǎng)絡(luò)傳輸線程
基于音視頻監(jiān)控的實(shí)時(shí)性要求,網(wǎng)絡(luò)傳輸機(jī)制選實(shí)時(shí)傳輸協(xié)議RTP/RTCP。RTP協(xié)議負(fù)責(zé)傳輸具有實(shí)時(shí)特性的音視頻文件,是一個(gè)應(yīng)用層程序,既可以工作在TCP協(xié)議上又可以工作在UDP協(xié)議上。UDP協(xié)議相對TCP協(xié)議,傳輸時(shí)延更短并且具有更小的網(wǎng)絡(luò)開銷,因此選擇RTP/UDP協(xié)議格式進(jìn)行視頻碼流傳輸。RTCP協(xié)議是實(shí)時(shí)傳輸控制協(xié)議,用于實(shí)時(shí)監(jiān)控傳輸數(shù)據(jù),RTCP中NTP(絕對時(shí)間戳)為SR(發(fā)送端發(fā)送的時(shí)間報(bào)告),還有協(xié)議中RTP Timestamp與NTP中的時(shí)間戳相對應(yīng),與RTP包的RTP時(shí)間戳具有相同的單位和隨機(jī)初始值,并且是單調(diào)增加的。音視頻碼流根據(jù)NTP(絕對時(shí)間戳)和RTP Timestamp(相對時(shí)間戳)映射到統(tǒng)一的時(shí)間軸上,在播放端便可實(shí)現(xiàn)音視頻同步。
音視頻同步網(wǎng)絡(luò)傳輸至關(guān)重要,如果在發(fā)送端造成音視頻不同步,那在播放端怎樣控制音視頻同步都不能達(dá)到很好的效果。同時(shí)考慮到視頻編碼的時(shí)間相比音頻編碼時(shí)間長,為此系統(tǒng)對圖像采集編碼線程和音頻采集編碼線程分別設(shè)置緩沖區(qū),同時(shí)利用信號量機(jī)制在同一網(wǎng)絡(luò)傳輸線程音視頻碼流交替?zhèn)鬏敗榱吮WC在客戶端音視頻同步采用,在客戶端區(qū)設(shè)置接收緩沖區(qū),據(jù)國外機(jī)構(gòu)研究可知,高清視頻或者超高清視頻偏移必須控制在80 ms以內(nèi),在系統(tǒng)接收端對音視頻時(shí)間戳進(jìn)行比對,音視頻碼流在80 ms以內(nèi)則同步播放,以視頻軸為主,偏離80 ms則再次比對。音視頻同步控制框圖見圖2。
2 ?實(shí)驗(yàn)結(jié)果與測試
Boa服務(wù)器為網(wǎng)上信息瀏覽提供服務(wù),支持多端應(yīng)用訪問。嵌入式Boa服務(wù)器提供公關(guān)網(wǎng)管接口(CGI),客戶端運(yùn)行相應(yīng)CGI程序,將數(shù)據(jù)上傳客戶端,方便信息交互。在嵌入式平臺(tái)開啟設(shè)備,運(yùn)行系統(tǒng)應(yīng)用程序,在互聯(lián)網(wǎng)瀏覽器上登錄嵌入式Boa服務(wù)器網(wǎng)址,可實(shí)現(xiàn)實(shí)時(shí)畫面播放,視頻畫面高清,音視頻同步效果良好,滿足實(shí)際應(yīng)用需要。
3 ?結(jié) ?語
本文設(shè)計(jì)一種基于B/S架構(gòu)的實(shí)時(shí)高清音視監(jiān)控系統(tǒng),采用開源的Linux系統(tǒng)為軟件操作平臺(tái),重點(diǎn)闡述了視頻采集V4L2驅(qū)動(dòng)、視頻編碼技術(shù)、音頻編碼RTP/RTCP流媒體網(wǎng)絡(luò)傳輸協(xié)議等多種技術(shù),解決了高清網(wǎng)絡(luò)監(jiān)控傳輸帶寬的壓力和網(wǎng)絡(luò)延遲,對安防監(jiān)控起到借鑒作用,同時(shí)也可以應(yīng)用到視頻直播的流媒體應(yīng)用領(lǐng)域。
參考文獻(xiàn)
[1] 成敏,謝杉杉,徐強(qiáng),等.基于Android的音視頻同步交互系統(tǒng)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2016,34(4):507?514.
CHENG Min, XIE Shanshan, XU Qiang, et al. Audio and video synchronous system based on Android [J]. Journal of Jilin University, 2016, 34(4): 507?514.
[2] 陳曉偉,孟利民.基于B/S架構(gòu)的視頻監(jiān)控音視頻模塊的設(shè)計(jì)[J].電聲技術(shù),2014,38(6):77?80.
CHEN Xiaowei, MENG Limin. Design of client software of the video monitor based on B/S structure [J]. Audio engineering, 2014, 38(6): 77?80.
[3] 廖志川,俞子榮,陳黎娟.基于ARM的移動(dòng)視頻監(jiān)控終端設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(10):9?11.
LIAO Zhichuan, YU Zirong, CHEN Lijuan. Design of mobile video monitoring terminal based on ARM [J]. Modern electronics technique, 2012, 35(10): 9?11.
[4] 史凱,雒江濤,張治中.基于RTP的H.264無線視頻傳輸和QoS控制[J].微計(jì)算機(jī)信息,2009,25(6):162?164.
SHI Kai, LUO Jiangtao, ZHANG Zhizhong. Transmission of H.264 video over wireless networks based on RTP and QoS control [J]. Microcomputer information, 2009, 25(6): 162?164.
[5] 戎玲,游寒旭.數(shù)字視頻對講系統(tǒng)的全程唇音同步測試方法[J].電視技術(shù),2017,41(6):143?146.
RONG Ling, YOU Hanxu. Lip sync test method for IP video intercom system [J]. Video engineering, 2017, 41(6): 143?146.
[6] 王開宇.基于C#的數(shù)據(jù)與視頻監(jiān)控系統(tǒng)上位機(jī)軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(10):62?64.
WANG Kaiyu. Design of C#?based PC software for data and video monitoring [J]. Modern electronics technique, 2017, 40(10): 62?64.
[7] 陳嵐,鮑可進(jìn).基于S3C6410和3G的無線視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].無線通信技術(shù),2014,23(2):42?46.
CHEN Lan, BAO Kejin. Design and implementation of wireless video transmission system based on S3C6410 and 3G [J]. Wireless communication technology, 2014, 23(2): 42?46.
[8] 王莉,周偉.基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(14):90?93.
WANG Li, ZHOU Wei. Design of embedded Web server based on ARM [J]. Computer engineering and applications, 2012, 48(14): 90?93.
[9] 許剛.基于ARM11的嵌入式視頻采集監(jiān)控系統(tǒng)設(shè)計(jì)[J].測控技術(shù),2013,32(12):37?40.
XU Gang. Design of an embedded video capturing system based on ARM11 [J]. Measurement & control technology, 2013, 32(12): 37?40.
[10] 胡江濤.安防工程中音視頻監(jiān)控系統(tǒng)的優(yōu)勢與應(yīng)用[J].自動(dòng)化與儀器儀表,2017(8):131?132.
HU Jiangtao. Advantages and applications of audio video surveillance system in security engineering [J]. Automation & instrumentation, 2017(8): 131?132.