国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

無線網(wǎng)絡視頻監(jiān)控系統(tǒng)的研究

2023-04-29 20:10:36梁伯虎夏穎張勁松
信息系統(tǒng)工程 2023年4期

梁伯虎?夏穎?張勁松

摘要:在打擊違法犯罪、維護社會公共安全、促進社會和諧穩(wěn)定方面,視頻監(jiān)控系統(tǒng)起到了至關(guān)重要的作用。因此,設(shè)計了一種基于Linux平臺的無線網(wǎng)絡視頻監(jiān)控系統(tǒng)。系統(tǒng)采用V4L2架構(gòu)對攝像頭進行圖像采集,移植x264編碼器對采集的圖像進行編碼壓縮,使用Live555框架對編碼數(shù)據(jù)進行流化處理,最后通過RTSP實時流傳輸協(xié)議將視頻流發(fā)送出去。監(jiān)控端需要安裝特定的軟件,用來接收和解碼視頻流,這樣就可以監(jiān)測攝像頭采集的圖像。整個系統(tǒng)實現(xiàn)了無線網(wǎng)絡視頻監(jiān)控的基本功能。

關(guān)鍵詞:無線網(wǎng)絡視頻監(jiān)控;V4L2;x264;Live555

一、前言

隨著人們生活質(zhì)量的不斷提高,人身和財產(chǎn)安全變成了大眾關(guān)注的焦點。視頻監(jiān)控系統(tǒng)也隨之出現(xiàn)在人們能接觸到的方方面面,比如出現(xiàn)在十字街口,為了確保交通安全;出現(xiàn)在學校,為了防止校園霸凌;出現(xiàn)在居民社區(qū),為了維護社會公共安全[1]。因此,視頻監(jiān)控系統(tǒng)在促進社會和諧穩(wěn)定和打擊違法犯罪等方面發(fā)揮著不可替代的保障作用,它的地位也越來越重要,人們對它的需求也越來越高。針對這個趨勢,本文設(shè)計了一種基于Linux平臺的無線網(wǎng)絡視頻監(jiān)控系統(tǒng)。系統(tǒng)采用V4L2架構(gòu)對攝像頭進行圖像采集,移植x264編碼器對采集的圖像進行編碼壓縮,使用Live555框架對編碼數(shù)據(jù)進行流化處理,最后通過RTSP實時流傳輸協(xié)議將視頻流發(fā)送出去。監(jiān)控端需要安裝特定的軟件,用來接收和解碼視頻流,這樣就可以監(jiān)測攝像頭采集的圖像。基本實現(xiàn)了無線網(wǎng)絡視頻監(jiān)控的功能。

二、系統(tǒng)總體設(shè)計方案

系統(tǒng)總體設(shè)計方案包括無線網(wǎng)絡視頻監(jiān)控系統(tǒng)的硬件設(shè)計和無線網(wǎng)絡視頻監(jiān)控系統(tǒng)的軟件設(shè)計,如圖1。

對于硬件部分:主控芯片是系統(tǒng)的核心,控制著各個電路模塊的正常運轉(zhuǎn)。所以,主控芯片的選擇決定著系統(tǒng)的性能指標。本文采用北京君正公司的X1000型號芯片,它的工作主頻相對較高,功耗相對較低,同時還擁有豐富的總線接口,比較適合系統(tǒng)的使用。首先搭建以主控芯片為主,電源、時鐘、復位和調(diào)試等基本電路模塊為輔的最小系統(tǒng)。最小系統(tǒng)的成功建立可以確保硬件平臺運行的穩(wěn)定。然后根據(jù)系統(tǒng)的需要,添加攝像頭電路,負責圖像采集功能。

對于軟件部分:本文采用Linux系統(tǒng)軟件開發(fā)平臺。它的可移植性和擴展性都相對較好,如果后續(xù)有硬件電路的更新,軟件修改的代碼量相對較小。電腦端需要安裝Linux操作系統(tǒng),提供交叉編譯環(huán)境。硬件開發(fā)板采用u-boot-2016.09(系統(tǒng)引導加載程序)和kernel-4.4.93(系統(tǒng)內(nèi)核框架)的代碼版本。將u-boot和kernel的代碼,根據(jù)主控芯片的性能指標進行移植和裁剪。經(jīng)過充分的調(diào)試,確保硬件開發(fā)板可以穩(wěn)定的運行。圖像采集端使用V4L2架構(gòu),負責采集攝像頭的圖像數(shù)據(jù)。圖像數(shù)據(jù)首先被送到x264編碼器進行編碼壓縮,然后被送到Live555模塊進行流化處理,最后經(jīng)過RTSP實時流傳輸協(xié)議,通過WIFI模塊將視頻流發(fā)送出去,完成系統(tǒng)中數(shù)據(jù)流從采集、處理到發(fā)送的全過程。監(jiān)控端通過安裝內(nèi)置RTSP協(xié)議的軟件,就可以監(jiān)測攝像頭采集到的圖像。

三、硬件設(shè)計

(一)主控芯片

本文主控芯片采用北京君正公司的X1000型號處理器。它的工作主頻在1GHz,可以使軟件模塊將視頻數(shù)據(jù)處理得相對較快,為視頻實時傳輸提供硬件基礎(chǔ);它內(nèi)置有低功耗內(nèi)存,避免內(nèi)存電路的設(shè)計,可以極大縮短系統(tǒng)的研發(fā)時間和成本;它的功耗小于200mW,通過電源電路的設(shè)計,可以實現(xiàn)用鋰電池供電,拓展了使用范圍;它還具有豐富的總線接口,可以擴展攝像頭電路、Wi-Fi電路和存儲等其他電路。

(二)攝像頭電路

本文攝像頭采用Omni Vision公司的OV9712模組,如圖2。它是1/4英寸CMOS圖像傳感器,分辨率是1280×800,每秒鐘可以采集30幀圖像,有曝光控制、白平衡和缺陷像素消除等功能[2]。它的性能指標比較適合在無線網(wǎng)絡視頻監(jiān)控系統(tǒng)中使用。

按圖2電路圖連接好。根據(jù)上電時序,依次將VDD_IO(I/O電源),VDD_A(模擬電源),VDD_D(數(shù)字電源)和PWDN(電源開關(guān))給電,軟件通過SIOC和SIOD(i2c總線接口)設(shè)置采集圖像的分辨率,對比度和白平衡等相關(guān)參數(shù),同時給輸入時鐘MCLK合適的工作頻率,測量輸出時鐘PCLK,行時鐘同步信號HREF和幀時鐘同步信號VSYNC波形是否正確。最后,用V4L2模塊將D0-D7的8位圖像數(shù)據(jù)讀取,并且保存成文件,通過專門顯示原始圖像的軟件打開,驗證是否是攝像頭拍攝的圖像,同時作為系統(tǒng)的原始數(shù)據(jù)。

(三)WIFI電路

本文Wi-Fi采用正點原子公司的ATK-MW8266D模塊,如圖3。它的傳輸速率是54Mbps,為視頻實時傳輸提供硬件基礎(chǔ)。

按圖3電路圖,將電源VDD,地GND,重啟RST,數(shù)據(jù)接收RXD和數(shù)據(jù)發(fā)送TXD與主控芯片連接好。通過電源電路給VDD提供3.3V電壓,WIFI模塊就可以正常工作。產(chǎn)商將WIFI相關(guān)操作封裝成AT命令,方便使用。只需要根據(jù)AT文檔提供的相關(guān)指令,就可以實現(xiàn)WIFI模塊的基本功能,比如配置網(wǎng)絡參數(shù),收發(fā)數(shù)據(jù)等。配置成功后,可以在監(jiān)控端安裝網(wǎng)絡封包分析軟件Wireshark,驗證來自圖像采集端發(fā)送數(shù)據(jù)的正確性。為視頻數(shù)據(jù)的正確傳輸,提供硬件基礎(chǔ)。

(四)存儲電路

本文存儲芯片采用Giga Device公司的GD25LQ128C型號芯片,它是SPI串行總線接口的閃存芯片,如圖4。它的引腳數(shù)相對較少,僅有8個,簡化了電路的設(shè)計;芯片尺寸相對較小,減少了存儲電路的面積,在一定程度上,節(jié)約了研發(fā)成本。芯片支持四線的QPI收發(fā)模式,傳輸速率在240Mbit/s,為視頻實時傳輸提供硬件基礎(chǔ)。

將存儲芯片與主控芯片按圖4電路圖連接好。通過電源電路給VDD提供1.8V電壓,時鐘電路給CLK提供合適的工作時鐘,以及CS片選信號配置好,存儲芯片就可以正常工作。通過使用標準的數(shù)據(jù)讀寫和擦除指令,就可以在輸入和輸出接口引腳,進行數(shù)據(jù)的傳輸。利用存儲芯片的燒寫器將芯片里的數(shù)據(jù)讀取出來,和軟件編程寫入的數(shù)據(jù)進行對比,驗證軟件對存儲芯片數(shù)據(jù)讀寫的正確性。為視頻數(shù)據(jù)的正確存儲,提供硬件基礎(chǔ)。

四、軟件設(shè)計

(一)V4L2模塊

V4L2(Video for linux2)作為無線網(wǎng)絡視頻監(jiān)控系統(tǒng)中的視頻采集驅(qū)動程序框架。根據(jù)攝像頭的工作原理,實現(xiàn)V4L2提供的底層結(jié)構(gòu)體接口v4l2_subdev, videobuf2和video_device等[3]。讀取攝像頭圖像數(shù)據(jù)時,可以使用V4L2應用層接口,簡要操作流程如下:

1.通過系統(tǒng)I/O函數(shù)open,打開攝像頭設(shè)備節(jié)點。

2.通過結(jié)構(gòu)體v4l2_pix_format,設(shè)置采集圖像數(shù)據(jù)存儲類型和采集圖像分辨率等參數(shù)。

3.通過ioctl函數(shù)中VIDIOC_STREAMON參數(shù),開啟攝像頭的圖像采集。

4.通過結(jié)構(gòu)體v4l2_requestbuffers,來對采集圖像數(shù)據(jù)進行讀取。ioctl函數(shù)中VIDIOC_QBUF參數(shù)可以從采集圖像數(shù)據(jù)的隊列中取出buf,進行圖像的后續(xù)操作;ioctl函數(shù)中VIDIOC_DQBUF參數(shù)可以將讀取后的buf,重新放回采集圖像數(shù)據(jù)的隊列中。循環(huán)往復,可以得到攝像頭連續(xù)的圖像數(shù)據(jù),供后續(xù)模塊使用。

5.通過ioctl函數(shù)中VIDIOC_STREAMOFF參數(shù),停止攝像頭的圖像采集。

6.通過系統(tǒng)I/O函數(shù)close,關(guān)閉攝像頭設(shè)備節(jié)點。

(二)x264模塊

如果直接將攝像頭采集的圖像數(shù)據(jù)進行傳輸,圖片相對較大,對傳輸帶寬要求很苛刻。但是,如果提前將圖像數(shù)據(jù)進行編碼壓縮,傳輸?shù)臄?shù)據(jù)就會相對較小。所以,引入x264,它是一個開源的H.264/MPEG-4 AVC視頻編碼函數(shù)庫,編碼速度相對較快,視頻數(shù)據(jù)的壓縮比也相對較高[4]。即使在網(wǎng)絡帶寬很差的情況下,依然可以正常傳輸圖像數(shù)據(jù)。簡要操作流程如下。

1.通過x264_param_default函數(shù),給編碼器的參數(shù)設(shè)置初值。

2.通過x264_param_parse()函數(shù),解析自定義配置的命令行編碼器的相關(guān)參數(shù)。

3.通過x264_encoder_open函數(shù),開啟編碼器,將編碼器的初值,寫入編碼器。

4.通過x264_encoder_encode函數(shù),將V4L2采集的圖像數(shù)據(jù),經(jīng)過數(shù)據(jù)存儲類型轉(zhuǎn)換,送到編碼器處理。編碼器可以輸出每幀編碼后的數(shù)據(jù),供后續(xù)模塊繼續(xù)處理。

5.通過x264_encoder_close函數(shù),關(guān)閉編碼器,并且打印相關(guān)統(tǒng)計信息。

(三)Live555模塊

Live555的源代碼架構(gòu)設(shè)計簡潔,支持多種視頻編碼格式的流化、接收和處理[5]。簡要操作流程如下:

初始時,首先創(chuàng)建socket,綁定本地IP地址,將網(wǎng)絡端口設(shè)置為8554,監(jiān)聽連接請求事件。一旦播放端有socket連接請求時,第一時間響應并且創(chuàng)建RTSP連接,并且將實例化的句柄加入哈希表中,供后續(xù)操作繼續(xù)使用。Live555流媒體服務器將x264編碼后的視頻數(shù)據(jù)進行流化處理,根據(jù)RTP協(xié)議把視頻編碼數(shù)據(jù)打包成RTP包,自適應調(diào)節(jié)模塊來完成對視頻數(shù)據(jù)發(fā)送速率的動態(tài)調(diào)節(jié)。當收到播放端發(fā)送的DESCRIBE請求時,就會獲取到對應的流媒體信息描述發(fā)送給播放端;當收到播放端發(fā)送的SETUP請求時,就會建立新的數(shù)據(jù)Sink;當收到播放端發(fā)送的PLAY請求時,使用Sink獲得RTP包。Sink不斷地向Source請求視頻數(shù)據(jù),Source取得視頻數(shù)據(jù)后就調(diào)用回調(diào)函數(shù),把視頻數(shù)據(jù)給Sink處理,Sink就將視頻數(shù)據(jù)源源不斷的發(fā)送給播放端。

五、結(jié)語

本文闡述了一種基于Linux平臺的無線網(wǎng)絡視頻監(jiān)控系統(tǒng)的設(shè)計方法。詳細地介紹了系統(tǒng)的設(shè)計:首先是硬件設(shè)計部分,分別從各個芯片的選型,到硬件電路的搭建和調(diào)試,確保硬件平臺可以穩(wěn)定的運行;然后是軟件設(shè)計部分,視頻數(shù)據(jù)是V4L2架構(gòu)采集攝像頭的圖像數(shù)據(jù),先被送到x264編碼器進行編碼壓縮,接著被送到Live555框架進行流化處理,最后通過RTSP實時流傳輸協(xié)議發(fā)送出去。監(jiān)控端需要安裝VLC視頻播放軟件,就可以監(jiān)測攝像頭采集的圖像。本系統(tǒng)采用Linux開發(fā)平臺,它的可移植性和擴展性都相對較好。

參考文獻

[1]王英吉,周鳳新.基于社區(qū)警務的公安視頻監(jiān)控系統(tǒng)建設(shè)研究[J].遼寧警察學院學報,2022,24(02):68-71.

[2]張寶龍,李丹,王靖云,等.基于OV9712的串行器解串器視頻編碼方案[J].液晶與顯示,2015,30(06):965-971.

[3]陳二微.基于Linux V4L2子系統(tǒng)的ISP及Camera驅(qū)動接口標準化方法及應用[J].計算機與網(wǎng)絡,2021,47(12):26-27.

[4]王哲誠,葛萬成,吳曄.x264視頻編碼器中參數(shù)設(shè)置對編碼效率影響的研究[J].信息通信,2018(02):40-42.

靖远县| 荔波县| 道真| 乳山市| 邹平县| 东山县| 南安市| 台安县| 忻城县| 扬中市| 泸定县| 铜陵市| 郧西县| 大埔区| 五峰| 临洮县| 剑川县| 安多县| 犍为县| 砚山县| 富源县| 古蔺县| 揭阳市| 远安县| 清徐县| 崇信县| 潜江市| 柏乡县| 昌平区| 新巴尔虎右旗| 南阳市| 锡林浩特市| 德惠市| 江津市| 锡林郭勒盟| 甘孜县| 新绛县| 凯里市| 祁东县| 册亨县| 台江县|