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

?

視頻監(jiān)控系統(tǒng)的設(shè)計(jì)

2023-09-19 13:34:26李文龍袁三男
電子設(shè)計(jì)工程 2023年18期
關(guān)鍵詞:流器開發(fā)板服務(wù)器端

李文龍,袁三男

(上海電力大學(xué)電子與信息工程學(xué)院,上海 201306)

網(wǎng)絡(luò)視頻監(jiān)控設(shè)備將嵌入式設(shè)備與相應(yīng)的網(wǎng)絡(luò)視頻技術(shù)結(jié)合,可以提供視頻服務(wù),而且還大大降低了設(shè)備的價(jià)格[1]。嵌入式操作系統(tǒng)在軟件方面沒有做明顯的區(qū)分,如系統(tǒng)軟件和應(yīng)用軟件。并且在功能設(shè)計(jì)方面及功能實(shí)現(xiàn)上沒有要求過于復(fù)雜,這樣做不僅有利于控制系統(tǒng)成本,同時(shí)也實(shí)現(xiàn)了系統(tǒng)安全[2]。

Linux 系統(tǒng)的主要優(yōu)點(diǎn)之一為其是一個(gè)開放源代碼的操作系統(tǒng),與Windows 等其他操作系統(tǒng)相比,Linux 更安全。相對(duì)于其他操作系統(tǒng),其主要的優(yōu)點(diǎn)是可以自定義[3]任何功能,根據(jù)需要,添加或刪除任何功能,因?yàn)樗情_源操作系統(tǒng)[4]。Linux 提供了很高的穩(wěn)定性,這也是一個(gè)很好的優(yōu)勢(shì),即它不需要在短時(shí)間內(nèi)重啟。

1 相關(guān)基礎(chǔ)技術(shù)理論

1.1 視頻編碼標(biāo)準(zhǔn)

H.264 是ITU-T 的VCEG(視頻編碼專家組)和ISO/IEC 的MPEG(活動(dòng)圖像編碼專家組)的聯(lián)合視頻組(Joint Video Team,JVT)開發(fā)的一個(gè)數(shù)字視頻編碼標(biāo)準(zhǔn)[5]。H.264 是ITU-T 以H.26x 系列為名稱命名的標(biāo)準(zhǔn)之一,AVC 是ISO/IEC MPEG 一方的稱呼[6]。

1.2 網(wǎng)絡(luò)傳輸協(xié)議

RTMP(Real Time Messaging Protocol)從屬于應(yīng)用層,基于TCP 的數(shù)據(jù)傳輸協(xié)議。被用來在TCP 傳輸協(xié)議上復(fù)用和打包多媒體傳輸流。RTMP 提供了一套全雙工的可靠的多路復(fù)用消息服務(wù),用來在一對(duì)結(jié)點(diǎn)之間并行傳輸帶時(shí)間戳的音頻流、視頻流、數(shù)據(jù)流[7-8]。通過RTMP 協(xié)議進(jìn)行播放需要以下步驟:握手、建立連接、建立流、播放。流程圖如圖1 所示。

圖1 RTMP協(xié)議播放流程

2 系統(tǒng)的總體設(shè)計(jì)

2.1 系統(tǒng)架構(gòu)

系統(tǒng)主要是由服務(wù)器端和客戶端組成,服務(wù)器端主要完成視頻數(shù)據(jù)采集,將采集到的原始數(shù)據(jù)進(jìn)行壓縮編碼,利用推流器將數(shù)據(jù)推送到流媒體服務(wù)器上??蛻舳藙t采用拉流器從流媒體服務(wù)器上進(jìn)行拉流播放。在該設(shè)計(jì)中,采用RTMP 協(xié)議進(jìn)行數(shù)據(jù)傳輸,從而保證視頻數(shù)據(jù)流能夠?qū)崟r(shí)傳輸。服務(wù)器端利用ARM 開發(fā)板進(jìn)行推流,客戶端利用PC 機(jī)進(jìn)行拉流,系統(tǒng)框架圖如圖2 所示。

圖2 系統(tǒng)框架圖

2.2 硬件開發(fā)平臺(tái)

開發(fā)板是基于四核ARM Cortex-A7,算力NPU達(dá)到2T,并且還支持H.264/H.265 視頻編解碼技術(shù),總?cè)萘?6 GByte 的8 bitEMMC Flash,USB2.0 外接設(shè)備,千兆以太網(wǎng)RTL8211F,MIPI Camera,硬件結(jié)構(gòu)圖如圖3 所示。

圖3 硬件結(jié)構(gòu)圖

3 開發(fā)環(huán)境搭建

3.1 安裝交叉編譯工具

交叉編譯工具是在一個(gè)平臺(tái)上編譯生成可在其他平臺(tái)上執(zhí)行的代碼。同一個(gè)體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng)[9];同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。文中上位機(jī)的操作系統(tǒng)為ubuntu16.04,該系統(tǒng)安裝交叉編譯工具,用于文件系統(tǒng)和上層應(yīng)用以及U-Boot 和Linux 內(nèi)核的編譯。

3.2 內(nèi)核移植

內(nèi)核移植是設(shè)計(jì)系統(tǒng)的核心部分,在設(shè)計(jì)時(shí)采用的是嵌入式系統(tǒng),嵌入式操作系統(tǒng)有較好的裁剪性,可以根據(jù)自己的需求對(duì)系統(tǒng)進(jìn)行裁剪,得到最精簡(jiǎn)的系統(tǒng)后將系統(tǒng)寫入存儲(chǔ)芯片中[10]。

嵌入式開發(fā),可以根據(jù)具體的應(yīng)用需求,用不同的配置進(jìn)行開發(fā),一般的開發(fā)過程中都包括如下過程:

1)編譯開機(jī)引導(dǎo)裝載程序BootLoader;

2)編譯內(nèi)核kernel;

3)利用Busybox 或者Buildroot 制作根文件系統(tǒng);

4)建立應(yīng)用程序分區(qū);

5)程序的開發(fā);

6)燒錄開機(jī)引導(dǎo)裝載程序,內(nèi)核kernel,根文件系統(tǒng)rootfs,app。

3.3 設(shè)置網(wǎng)絡(luò)文件系統(tǒng)NFS

網(wǎng)絡(luò)文件系統(tǒng)(NFS)通過掛載的方式,將遠(yuǎn)程客戶端的文件掛載到本機(jī)上,如同本地文件,也允許遠(yuǎn)程客戶端以類似的方式,來通過網(wǎng)絡(luò)進(jìn)行訪問[11]。為了方便后面文件傳輸,利用NFS 建立PC 與開發(fā)板之間的聯(lián)系,當(dāng)開發(fā)板上電并與電腦通過網(wǎng)線連接后,將設(shè)置的共享文件夾掛載到開發(fā)板上,在后面的開發(fā)中,PC 機(jī)與開發(fā)板之間便可通過該共享文件夾進(jìn)行文件傳輸[12]。

3.4 Nginx流媒體服務(wù)器移植

開源項(xiàng)目Ngnix 原本是不支持RTMP 協(xié)議的,所以需要移植第三方模塊nginx-rtmp-module 來實(shí)現(xiàn)RTMP 協(xié)議[13]。通過使用Buildroot 工具對(duì)Nginx 編譯,在配置編譯前需要先下載第三方模塊,最后編譯生成.img 文件,并將該文件燒錄到開發(fā)板。

4 軟件設(shè)計(jì)

4.1 設(shè)計(jì)框架

服務(wù)器端完成如下功能:驅(qū)動(dòng)攝像頭采集視頻,壓縮編碼原始數(shù)據(jù),對(duì)編碼后的視頻數(shù)據(jù)進(jìn)行封裝,將封裝后的數(shù)據(jù)推送到流媒體服務(wù)器上,等待客戶端拉流請(qǐng)求[14]??蛻舳酥饕獙?shí)現(xiàn)從流媒體服務(wù)器上進(jìn)行拉流播放功能。系統(tǒng)流程框圖如圖4 所示。

圖4 系統(tǒng)流程框圖

4.2 服務(wù)器端

服務(wù)器端主要工作是編寫一個(gè)簡(jiǎn)單的視頻推流器,將攝像頭采集的視頻數(shù)據(jù)經(jīng)過壓縮編碼一系列處理之后,推送到流媒體服務(wù)器[15]。攝像頭采集數(shù)據(jù)利用V4L2 技術(shù),V4L2 是專門為L(zhǎng)inux 設(shè)備設(shè)計(jì)的一套視頻框架,視頻設(shè)備被當(dāng)作一個(gè)文件[16]。打開設(shè)備,用非阻塞模式打開攝像頭設(shè)備作為推流器的輸入,將得到的視頻數(shù)據(jù)采用H.264 標(biāo)準(zhǔn)進(jìn)行視頻編碼,將編碼后的數(shù)據(jù)封裝為FLV 格式進(jìn)行傳輸[17]。流媒體服務(wù)器的地址作為輸出。程序流程圖如圖5所示。

圖5 推流器的程序流程圖

4.3 客戶端

客戶端主要編寫從流媒體服務(wù)器拉取的視頻數(shù)據(jù),并進(jìn)行解碼實(shí)時(shí)視頻播放的拉流器應(yīng)用程序[18]。程序主要是根據(jù)流媒體服務(wù)器的地址,將視頻數(shù)據(jù)流拉取下來,拉取下來的視頻數(shù)據(jù)被封裝成flv 格式,所以不能直接用來播放,需要進(jìn)一步解封裝,再將解封裝后的數(shù)據(jù)通過解碼得到原始的視頻流數(shù)據(jù),對(duì)得到的原始數(shù)據(jù)進(jìn)行播放,從而能夠達(dá)到實(shí)時(shí)播放的效果[19]。程序設(shè)計(jì)流程圖如圖6 所示。

圖6 拉流器程序流程圖

5 實(shí)驗(yàn)測(cè)試

測(cè)試首先進(jìn)入開發(fā)板,開啟流媒體服務(wù)器并運(yùn)行推流程序,當(dāng)服務(wù)器程序啟動(dòng)后,在PC 端打開拉流應(yīng)用程序,并在應(yīng)用程序框中輸入流媒體服務(wù)器地址,如rtmp://192.168.0.114:1935/live/test,獲取視頻服務(wù),連接成功之后,PC 端顯示器上會(huì)顯現(xiàn)出所要監(jiān)控的畫面,基本達(dá)到實(shí)時(shí)效果并且畫面基本清晰。

6 結(jié)束語(yǔ)

視頻監(jiān)控在市場(chǎng)中具有較為廣泛的應(yīng)用場(chǎng)景,在日常生活中,視頻監(jiān)控可以用于安保與預(yù)警,保障了人們?nèi)粘I畎踩?;在日常出行中,視頻監(jiān)控可以應(yīng)用于行車記錄儀以及汽車的全景環(huán)視。并且隨著行業(yè)的拓展,搭配著其他技術(shù)可以應(yīng)用于特殊的領(lǐng)域,如車牌識(shí)別、人臉識(shí)別等應(yīng)用[20]。該文研究了相關(guān)的基于嵌入式視頻監(jiān)控的系統(tǒng)架構(gòu),并簡(jiǎn)單介紹視頻編解碼的流程,通過編寫視頻推流器和拉流器來實(shí)現(xiàn)視頻流數(shù)據(jù)的實(shí)時(shí)轉(zhuǎn)發(fā)和接收,為后續(xù)的視頻監(jiān)控開發(fā)奠定了基礎(chǔ)。

猜你喜歡
流器開發(fā)板服務(wù)器端
跨座式單軌車輛受流器設(shè)計(jì)
淺析城軌車輛受流器滑板脫落及改進(jìn)措施
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
Microchip最新推出兩款PIC32 Curiosity開發(fā)板
淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
電子制作(2017年22期)2017-02-02 07:10:14
在Windows中安裝OpenVPN
阿根廷布市薩緬托線的受流裝置設(shè)計(jì)
Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
一種城軌車輛用第三軌受流器的設(shè)計(jì)
绿春县| 浮山县| 仁布县| 南昌县| 股票| 伊金霍洛旗| 建湖县| 维西| 麻城市| 正阳县| 鞍山市| 隆昌县| 天镇县| 柘荣县| 竹溪县| 东至县| 岳西县| 获嘉县| 浠水县| 鹤岗市| 甘德县| 海晏县| 祥云县| 石泉县| 大关县| 全州县| 赫章县| 嘉善县| 香格里拉县| 广元市| 明光市| 饶平县| 陈巴尔虎旗| 济阳县| 乐都县| 呼图壁县| 张家港市| 全南县| 深圳市| 遂宁市| 蓬莱市|