本文章將教你做一個用嵌入式linux開發板和web端來實作的視頻監控系統,
本專案是博主大學時的畢業設計題目,現分享給大家,
知識點:嵌入式 Linux V4L2 socket Web node.js html QT
硬體:
開發板:ARM開發板、樹莓派、jetson nano...等跑linux系統的開發板,連接一個攝像頭;
電腦:Web前端,可查看監控畫面;
功能介紹:
開發板與電腦通過網路socket通信(網線、wifi均可),開發板獲取攝像頭的畫面,將通過網路socket上傳到web端,在web端可實時觀看攝像頭畫面,

嵌入式linux功能設計:
采用Linux內核的V4L2視頻驅動架構來驅動攝像頭獲取影像資料,支持MJPEG、JPEG、YUV等格式影像,采用socket與web端通信,將一幀幀的影像發送給Web端,這就實作了捕獲攝像頭影像的功能,若開發板是帶LCD屏的還可添加相應的畫面實時顯示、一些功能按鈕或標簽資訊等,可用QT來實作,
Web端功能設計:
采用node.js html等語言來實作,在網頁上實時顯示監控畫面,還有一些功能按鈕如播放、暫停、切換、查看歷史等,

V4L2視頻驅動
應用程式通過V4L2進行視頻采集的原理
V4L2支持記憶體映射方式(mmap)和直接讀取方式(read)來采集資料,前者一般用于連續視頻資料的采集,后者常用于靜態圖片資料的采集,本文重點討論記憶體映射方式的視頻采集,
應用程式通過V4L2介面采集視頻資料分為五個步驟:
首先,打開視頻設備檔案,進行視頻采集的引數初始化,通過V4L2介面設定視頻影像的采集視窗、采集的點陣大小和格式;
其次,申請若干視頻采集的幀緩沖區,并將這些幀緩沖區從內核空間映射到用戶空間,便于應用程式讀取/處理視頻資料;
第三,將申請到的幀緩沖區在視頻采集輸入佇列排隊,并啟動視頻采集;
第四,驅動開始視頻資料的采集,應用程式從視頻采集輸出佇列取出幀緩沖區,處理完后,將幀緩沖區重新放入視頻采集輸入佇列,回圈往復采集連續的視頻資料;
第五,停止視頻采集,
未完等續,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296945.html
標籤:其他
