• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      視頻監(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 更安全。相對于其他操作系統(tǒng),其主要的優(yōu)點(diǎn)是可以自定義[3]任何功能,根據(jù)需要,添加或刪除任何功能,因?yàn)樗情_源操作系統(tǒng)[4]。Linux 提供了很高的穩(wěn)定性,這也是一個(gè)很好的優(yōu)勢,即它不需要在短時(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ù),用來在一對結(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ā)平臺

      開發(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è)平臺上編譯生成可在其他平臺上執(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ù)自己的需求對系統(tǒng)進(jìn)行裁剪,得到最精簡的系統(tǒng)后將系統(tǒng)寫入存儲芯片中[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 工具對Nginx 編譯,在配置編譯前需要先下載第三方模塊,最后編譯生成.img 文件,并將該文件燒錄到開發(fā)板。

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

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

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

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

      4.2 服務(wù)器端

      服務(wù)器端主要工作是編寫一個(gè)簡單的視頻推流器,將攝像頭采集的視頻數(shù)據(jù)經(jīng)過壓縮編碼一系列處理之后,推送到流媒體服務(wù)器[15]。攝像頭采集數(shù)據(jù)利用V4L2 技術(shù),V4L2 是專門為Linux 設(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ù),對得到的原始數(shù)據(jù)進(jìn)行播放,從而能夠達(dá)到實(shí)時(shí)播放的效果[19]。程序設(shè)計(jì)流程圖如圖6 所示。

      圖6 拉流器程序流程圖

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

      測試首先進(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 端顯示器上會顯現(xiàn)出所要監(jiān)控的畫面,基本達(dá)到實(shí)時(shí)效果并且畫面基本清晰。

      6 結(jié)束語

      視頻監(jiān)控在市場中具有較為廣泛的應(yīng)用場景,在日常生活中,視頻監(jiān)控可以用于安保與預(yù)警,保障了人們?nèi)粘I畎踩?;在日常出行中,視頻監(jiān)控可以應(yīng)用于行車記錄儀以及汽車的全景環(huán)視。并且隨著行業(yè)的拓展,搭配著其他技術(shù)可以應(yīng)用于特殊的領(lǐng)域,如車牌識別、人臉識別等應(yīng)用[20]。該文研究了相關(guān)的基于嵌入式視頻監(jiān)控的系統(tǒng)架構(gòu),并簡單介紹視頻編解碼的流程,通過編寫視頻推流器和拉流器來實(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ì)
      米林县| 岑巩县| 海阳市| 壶关县| 太白县| 大新县| 广西| 库车县| 开江县| 横峰县| 延津县| 太原市| 名山县| 西丰县| 揭阳市| 巴彦淖尔市| 昌吉市| 昭苏县| 磴口县| 阜南县| 康马县| 武义县| 沅陵县| 宾阳县| 文登市| 长春市| 攀枝花市| 菏泽市| 宁武县| 定陶县| 张家川| 三亚市| 门源| 年辖:市辖区| 获嘉县| 额敏县| 延庆县| 开封县| 洛南县| 靖宇县| 常宁市|