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

?

基于FFMPEG實時視頻傳輸系統(tǒng)設(shè)計

2021-07-19 09:37:16明瑞張金奎胡杰
電腦知識與技術(shù) 2021年15期
關(guān)鍵詞:攝像頭像素編碼

明瑞 張金奎 胡杰

摘要:實時視頻監(jiān)控是如今各個領(lǐng)域必不可少的關(guān)鍵技術(shù)。本文設(shè)計的基于FFMPEG多媒體工具的實時視頻傳輸系統(tǒng),采用Raspberry Pi CM4高性能處理器搭載Ubuntu16.04操作系統(tǒng),利用視頻內(nèi)核驅(qū)動Video for linux2獲取攝像頭圖像數(shù)據(jù),結(jié)合X264、FFMPEG等庫實現(xiàn)圖像的壓縮編碼、封裝,H264視頻流通過EC20 4G模塊上傳至遠(yuǎn)程視頻服務(wù)器,有效地實現(xiàn)了在服務(wù)器端進(jìn)行實時監(jiān)控功能,該系統(tǒng)可廣泛應(yīng)用于野外、偏遠(yuǎn)地區(qū)的實時可視化,具有部署便捷、傳輸穩(wěn)定、可擴(kuò)展性強(qiáng)、成本低等特點。

關(guān)鍵詞:Raspberry Pi;4G;EC20;FFMPEG;實時視頻傳輸

中圖分類號:G642? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2021)15-0025-03

Abstract: Real-time video surveillance is an essential key technology in various fields today. The real-time video transmission system based on FFMPEG multimedia tools designed in this paper adopts Raspberry Pi CM4 high-performance processor with Ubuntu16.04 operating system, and uses video kernel to drive Video for linux2 to obtain camera image data. Combining X264, FFMPEG and other libraries to achieve image compression, encoding and packaging. H264 video streams are uploaded to a remote video server through the EC20 4G module, effectively realizing the real-time monitoring function on the server side. The system can be widely used in the wild and remote areas. Real-time visualization has the characteristics of convenient deployment, stable transmission, strong scalability, and low cost.

Key words: Raspberry Pi; 4G; EC20; FFMPEG; Real-time Video Transmission

隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的設(shè)備需要遠(yuǎn)程控制、實時收發(fā)傳輸數(shù)據(jù),對可視化的需求愈發(fā)強(qiáng)烈。本系統(tǒng)利用在可視化航標(biāo)項目,選擇內(nèi)河航道的交通環(huán)境作為采集目標(biāo),為滿足航道交通的實時監(jiān)控和航行交通事故仲裁視頻回溯。在當(dāng)今4G通信技術(shù)領(lǐng)域,4G LTE 無線視頻綜合成本低、二次開發(fā)兼容性強(qiáng)、傳輸性能穩(wěn)定,通信速率快[2],人工維護(hù)費用低,可以將不同航道的現(xiàn)場信息實時通過無線通訊手段傳送到無線監(jiān)控中心,并且自動形成視頻數(shù)據(jù)庫便于日后的檢索。在高速率的傳輸保障下,本系統(tǒng)可廣泛應(yīng)用于野外、偏遠(yuǎn)地區(qū)的實時可視化,并且可根據(jù)不同的應(yīng)用需求拓展其他的硬件設(shè)備。

1 系統(tǒng)框架

本系統(tǒng)由高性能處理器樹莓派CM4、500W像素 CSI攝像頭、EC20 4G模塊、遠(yuǎn)程視頻服務(wù)器構(gòu)成。Raspberry Pi Compute module4尺寸小巧,核心板集成4核ARM Cortex-A72內(nèi)核,可滿足圖像壓縮視頻編碼的算力需求解決了數(shù)據(jù)傳輸中的帶寬限制問題,以達(dá)到實時性的目的。CSI攝像頭通過15cm軟排線連接至樹莓派CSI接口,利用Linux系統(tǒng)內(nèi)核驅(qū)動Video4Linux2采集Raw Video圖像信息,對原始圖像進(jìn)行像素轉(zhuǎn)換生成YUV420P像素格式數(shù)據(jù)、壓縮編碼成H264視頻流、封裝生成FLV格式的文件,最終以文件流的形式通過EC20模塊的TCP/IP協(xié)議棧提供的AT指令集訪問FTP服務(wù)器實現(xiàn)實時視頻上傳至視頻服務(wù)器。服務(wù)器端亦可根據(jù)通信協(xié)議下達(dá)關(guān)機(jī)、重啟等系統(tǒng)命令,也可調(diào)節(jié)視頻碼率、壓縮比和幀率等參數(shù),當(dāng)指令下發(fā)至EC20模塊,Linux系統(tǒng)根據(jù)指令的種類觸發(fā)相應(yīng)的軟中斷處理命令,達(dá)到遠(yuǎn)程控制的功能。系統(tǒng)框圖如圖1所示。

2 系統(tǒng)硬件設(shè)計

Raspberry Pi CM4-EC20終端為本系統(tǒng)的主要硬件設(shè)計,搭載博通公司生產(chǎn)的 BCM2711高性能處理器 、亞博公司生產(chǎn)的CSI攝像頭以及移遠(yuǎn)的EC20 4G模塊。樹莓派操作系統(tǒng)為自裁剪制作的輕量版Ubuntu16.04,該系統(tǒng)鏡像編譯安裝OPENCV、FFMPEG、X264等環(huán)境。CSI攝像頭是一款兼容樹莓派的圖像傳感器可以以SVGA、UXGA、VGA等時序輸出RGB565、YUV、JPEG等格式的圖像,其圖像像素可高達(dá)500W(2925x1944),本系統(tǒng)調(diào)用Linux內(nèi)核驅(qū)動Video4Linux2獲取Raw Video原始圖像,并在內(nèi)存中將YUV422像素格式數(shù)據(jù)通過雙三次縮放算法(Bicubic)輸出為640x480分辨率的YUV420P格式數(shù)據(jù)便于壓縮成H264視頻流,對編碼視頻流加以封裝即可生成視頻文件,采用循環(huán)覆蓋寫入,多線程處理,實時上傳視頻給遠(yuǎn)程服務(wù)器。在網(wǎng)絡(luò)環(huán)境惡劣情況下,同時本地也保存有視頻錄像備份,便于航道交通事故回溯,有理有據(jù)。4G模塊EC20 –R2.1 Mini Pcle提供了PCI ExpressMini Card標(biāo)準(zhǔn)接口,支持最大上行速率50Mbps,在多網(wǎng)絡(luò)制式下能夠從3G網(wǎng)絡(luò)輕松平滑過渡到4G網(wǎng)絡(luò),其USB通信口與樹莓派主控芯片通信,通過AT指令撥號上網(wǎng)FTP連接服務(wù)器,負(fù)責(zé)將視頻流數(shù)據(jù)傳送至云端服務(wù)器。

3 系統(tǒng)軟件設(shè)計

3.1 樹莓派-CSI攝像頭H264編碼系統(tǒng)設(shè)計

硬件部分驅(qū)動應(yīng)用程序采用Ubuntu 16.04操作系統(tǒng)下VS Code開發(fā)平臺,C/C++語言編程,其設(shè)計流程如圖2所示。

1)讀取攝像頭設(shè)備:

在Linux系統(tǒng)中,V4L2(video4linux2)內(nèi)核驅(qū)動下攝像頭作為文件對象打開讀取視頻數(shù)據(jù)。由于本系統(tǒng)只有一個攝像頭,利用Opencv中VideoCapture類創(chuàng)建一個捕獲對象camera,通過成員函數(shù)open( )來打開/dev/video0設(shè)備[2]。為了節(jié)省內(nèi)存和CPU的算力,在判斷設(shè)備開啟后,利用carmera.set( )函數(shù)設(shè)置攝像頭輸出圖像數(shù)據(jù)的分辨率為1280 x 720、幀數(shù)為25 幀。

2)讀取視頻信息,初始化像素轉(zhuǎn)換句柄:

上一步驟中已經(jīng)設(shè)置了圖像的長、寬和幀率,本環(huán)節(jié)主要讀取視頻幀的圖片格式——RGB565,視頻編碼H264僅支持YUV4:2:0的連續(xù)或隔行視頻的編碼,因此需要初始化像素轉(zhuǎn)換任務(wù)句柄,像素轉(zhuǎn)換可以轉(zhuǎn)換圖片分辨率、像素格式等,將操作句柄設(shè)置為RGB565像素格式轉(zhuǎn)YUV420P格式,圖片分辨率轉(zhuǎn)變?yōu)?40 x 480,采用雙三次插值算法縮小圖像。

3)創(chuàng)建編碼器,初始化編碼器:

基于ffmpeg的視頻壓縮,編碼器不能為空指針必須要動態(tài)申請內(nèi)存創(chuàng)建。與此同時創(chuàng)建h264的流媒體準(zhǔn)備存儲編碼過后的視頻流,創(chuàng)建文件名為video.h264的文件以便封裝流媒體。打開編碼器關(guān)聯(lián)輸出流媒體和輸出文件,初始化像素格式為AV_PIX_FMT_YUV420P,圖像寬為640, 高為480,比特率為1800000(分辨率一定的情況下,比特率越高圖像越清晰,但是數(shù)據(jù)量會更大),設(shè)置圖像層組大小為10(關(guān)鍵幀的周期,此數(shù)值越大圖像編碼后的數(shù)據(jù)越小,但會增加編碼的時間),設(shè)置B幀數(shù)量為3(該幀為視頻圖片空間的前后預(yù)測幀,相同碼率的情況下, 越多 B 幀的視頻,越清晰但對于編碼的復(fù)雜度較高)[3]。

4)寫入視頻頭:

寫入視頻之前會對接口設(shè)置檢查,音頻、視頻的通道檢查,視頻的參數(shù)檢查,檢查輸出封裝是否支持h264編碼格式。經(jīng)過以上檢查,對video.h264文件寫入文件頭信息。

5)讀取視頻幀,對圖像序列轉(zhuǎn)換

Opencv讀取的幀像素格式為BGR格式,需要利用ffmpeg轉(zhuǎn)碼成為YUV240P才能滿足H264編碼的要求,與RGB要求三個獨立的通道傳輸信號相比YUV占用更少的帶寬?!癥”表示明亮度,“U”和“V”表示色度即分別為色調(diào)與飽和度,這樣的色彩模型使亮度和色度分開,從而更適用于編碼壓縮。圖像由720P縮放至640 x 480采用雙三次插值法。該算法利用待采樣點周圍16個點的灰度值作三次插值,不僅考慮到4 個直接相鄰點的灰度影響,而且考慮到各鄰點間灰度值變化率的影響,三次運(yùn)算可以得到更接近高分辨率圖像的放大效果[4]。這種算法需要選取插值基函數(shù)來擬合數(shù)據(jù),其最常用的插值基函數(shù)如圖3所示。

利用求得縮放圖像某像素點在原圖像的相對位置,通過此坐標(biāo)找到距離最近的16個像素點,利用插值基函數(shù),即可求出對應(yīng)每個像素的權(quán)值進(jìn)而獲得縮放后的像素值。

6)壓縮編碼

調(diào)用X264編碼器編碼YUV420P序列時需調(diào)整對應(yīng)Y、U、V數(shù)據(jù)地址的偏移。以第一幀為例Y數(shù)據(jù)為 307200(640 *480)Byte,U、V數(shù)據(jù)均為分別為76800(640*480/4 )Byte。那么對應(yīng)視頻幀的第一幀存儲順序依次為存儲Y信息、U信息、V信息。公式如圖4所示。

FrameData [0]=? data[0]

FrameData [1]=? data[0] + w*h

FrameData [2]=? data[0]+ w*h*5/4

其中FrmaeData為視頻編碼輸入數(shù)組,data為轉(zhuǎn)換后的YUV420P像素格式圖片數(shù)據(jù)。

7)寫入文件封裝文件尾:

編碼一幀即打包一幀視頻到AVPacket緩存中,再調(diào)用文件寫入函數(shù)fwrite完成視頻寫入文件。最后寫入文件尾,封裝成為FLV格式的視頻文件。文件采用循環(huán)覆蓋方式[4]。

3.2 FTP實時文件上傳系統(tǒng)設(shè)計

初始化EC20,通過USB發(fā)送AT指令查看SIM卡是否正確插入、檢查SIM卡是否注冊GPRS功能以及誤碼率、設(shè)置GPRS的APN獲取相關(guān)運(yùn)營商的信息后完成入網(wǎng)。調(diào)用FTP AT指令連接遠(yuǎn)程服務(wù)器,發(fā)起FTP請求,設(shè)置用戶名和密碼,二進(jìn)制文件傳輸模式以及FTP文件傳輸?shù)刂范丝诩纯砷_始視頻上傳。調(diào)用AT指令A(yù)T+QFTPPUT傳出文件。

4 測試結(jié)果

針對船舶交通實時監(jiān)控中,船舶均為體積龐大的沙船、貨船,航行速率偏低。本系統(tǒng)在多次測試調(diào)試如表1下得出該系統(tǒng)在640x480分辨率下的圖像清晰,幀數(shù)在25幀以上,流暢度和清晰度能滿足預(yù)期航道實時監(jiān)控的需求。

5 結(jié)束語

本文基于ffmpeg設(shè)計的航道實時視頻傳輸系統(tǒng),在整個系統(tǒng)硬件的選擇和軟件的構(gòu)件上有效地滿足了可視化航標(biāo)燈的項目需求,4G網(wǎng)絡(luò)給予本系統(tǒng)實時性保證、穩(wěn)定性,可將航道上交通信息實時視頻傳輸至數(shù)據(jù)中心,事故回溯有理有據(jù),一次投放部署即可在服務(wù)器端通過命令遠(yuǎn)程控制模塊的啟動、復(fù)位和需求變化。本系統(tǒng)應(yīng)用潛力巨大,可滿足偏遠(yuǎn)、惡劣環(huán)境下的遠(yuǎn)程監(jiān)控,日后隨著嵌入式設(shè)備圖像處理、數(shù)據(jù)壓縮技術(shù)的不斷提升,ffmpeg實時視頻傳輸系統(tǒng)的應(yīng)用將在各個領(lǐng)域發(fā)揮重要作用。

參考文獻(xiàn):

[1] 王建,林楚婷.基于4G數(shù)據(jù)傳輸模塊的數(shù)據(jù)采集傳輸系統(tǒng)設(shè)計[J].工業(yè)控制計算機(jī),2020,33(2):37,40.

[2] 遲穎.基于ARM和OpenCV的視頻監(jiān)控系統(tǒng)設(shè)計[D].大連:大連海事大學(xué),2016.

[3] 楊培凱.無線圖像傳輸在糧蟲檢測中的應(yīng)用[D].武漢:武漢輕工大學(xué),2016.

[4] Keys R.Cubic convolution interpolation for digital image processing[J].IEEE Transactions on Acoustics,Speech,and Signal Processing,1981,29(6):1153-1160.

[5] 閆春秀.基于行車記錄儀的視頻監(jiān)控存儲策略的研究與實現(xiàn)[D].成都:電子科技大學(xué),2020.

【通聯(lián)編輯:梁書】

猜你喜歡
攝像頭像素編碼
趙運(yùn)哲作品
藝術(shù)家(2023年8期)2023-11-02 02:05:28
浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
像素前線之“幻影”2000
攝像頭連接器可提供360°視角圖像
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
《全元詩》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應(yīng)用
電子制作(2019年22期)2020-01-14 03:16:24
“像素”仙人掌
Genome and healthcare
高像素不是全部
CHIP新電腦(2016年3期)2016-03-10 14:22:03
尚义县| 南涧| 灌云县| 堆龙德庆县| 乌海市| 尚义县| 平昌县| 喀喇沁旗| 南投县| 玉山县| 海门市| 铜鼓县| 江安县| 嘉兴市| 泸溪县| 靖远县| 濉溪县| 湘潭市| 资源县| 宣汉县| 大关县| 泸州市| 邵东县| 顺昌县| 南城县| 清河县| 吐鲁番市| 突泉县| 定结县| 苍溪县| 农安县| 琼海市| 南澳县| 阿勒泰市| 南充市| 涿鹿县| 贵港市| 博客| 玉环县| 大丰市| 闽清县|