杜通+劉思園+莊旭菲



摘 要:該課題研究了基于B/S架構的現代主流網絡視頻監控系統,提出了基于B/S架構的嵌入式Linux網絡視頻監控系統的設計方案。該網絡視頻監控系統是基于嵌入式Linux平臺下,采用C++語言的QT-Embeded庫進行開發,實現了客戶端跨平臺、免下載軟件、無需插件在瀏覽器進行遠程視頻監控。
關鍵詞:視頻監控 HTTP 免插件 Linux V4L
中圖分類號:TP277 文獻標識碼:A 文章編號:1672-3791(2017)05(b)-0001-02
Abstract:This paper studies the modern mainstream network video monitoring system based on B/S architecture, and puts forward the design scheme of embedded Linux network video monitoring system based on B/S architecture. The network video monitoring system is based on embedded Linux platform, using the QT-Embeded of C++ Language library for the development so as to realize the client cross-platform, free download software, no plug-ins to remote video monitoring in the browser.
Key Words:Video surveillance;HTTP;Free plug-in;Linux;V4L
傳統視頻監控采用模擬信號傳輸,利用電纜的方式將視頻信息傳輸到查看設備,其具有傳輸距離短、視頻清晰度低以及可拓展性差的特點。隨著計算機科學的發展,攝像頭采集后的數據通過數模轉換,將模擬信號轉換成數字信號,依舊使用電纜的方式傳輸到顯示設備,采用微處理器處理后顯示到屏幕中。數字信號與模擬信號相比,其具有抗干擾性強、傳輸距離遠的特點,采用微處理器處理也增加了不少的可拓展性。隨著互聯網時代的到來,網絡被廣泛普及應用。視頻監控系統也隨著網絡的發展升級成為網絡視頻監控系統,可以供用戶實時遠程查看。
1 系統設計
如圖1系統結構圖所示,瀏覽器通過HTTP協議向ARM終端獲取HTML頁面。ARM終端服務器負責計算更新JPG文件序號,生成實時HTML頁面發送到瀏覽器端解析。在瀏覽器客戶端中JavaScript腳本利用與ARM服務器采集圖像相同的時間間隔計算最新的JPG文件序號,向服務器進行發送下載請求和顯示。
Video4Linux(簡稱V4L),是Linux中關于視頻設備的內核驅動。服務器啟動線程使用攝像頭利用V4L來采集視頻信息,將生成的JPG圖片按計算好的JPG序號保存到YAFFS文件系統中。JPG序號由15位數字組成,假設每秒生成10幅圖片,那么數萬年也不會造成JPG序號重復的情況,系統斷電后程序依然會重新從零開始計數。由于ARM終端性能和網絡的限制性,每秒生成4張左右圖片比較適合。Flash內存具有空間較小的特點,對于存放數量巨大的圖片會造成空間不夠的情況,系統采取刪除生成時間較長,客戶端為保證實時性不再使用的圖片。ARM終端中生成、保存以及刪除文件等I/O操作需要大量時間,在控制時間時必須要把這些耗時操作考慮在內。
主線程接受瀏覽器傳來的請求,如果請求不包含其他參數則默認請求HTML頁面,如果指向JPG圖片,則在當前文件系統中打開文件相應客戶端請求,向客戶端傳輸該JPG圖片。
HTML的設計中瀏覽器緩存機制可能會造成圖片更新問題,瀏覽器在相同域名下請求相同文件時會優先加載已緩存文件,所以在HTML文件頭中需要設置禁止緩存。瀏覽器加載文件需要保證在ARM終端生成文件后,而且每隔一定時間必須重新向ARM終端刷新頁面同步時間。
2 系統實現
2.1 攝像頭采集模塊
由于在攝像頭采集的過程中需要大量的I/O操作,而I/O操作需要大量的時間會影響到控制采集間隔,系統在這里的處理是通過比較兩次操作的時間。首先,利用V4L初始化函數設置采集圖片大小以及初始化攝像頭設備,記錄采集開始時間,生成圖片文件名并刪除超過50張的緩存,采集視頻信息保存到YAFFS文件系統中,等待時間間隔大于300 ms,開始新一輪的采集。
2.2 WEB服務器模塊
網絡服務器采用HTTP1.1協議,直接利用底層Socket協議進行TCP通信。如圖2WEB服務器流程圖所示,打開Socket套接字進行端口監聽,捕獲到從客戶端發來的請求后,分析參數后建立連接發送響應,當連接斷開后連接自動關閉,結束該次連接。
2.3 網頁(客戶端)模塊
網頁模塊為客戶端瀏覽器提供了一個HTML文件進行解析,瀏覽器從Web服務器中獲得實時HTML文件后,每300 ms從Web服務器獲取實時視頻信息,每2分鐘重新向Web服務器獲取新的HTML文件來同步最新的文件序號。在HTML文件中需要設置禁止緩存的meta標簽。
2.4 系統測試
在ARM終端采用動態方式加載加載攝像頭驅動,啟動由QT-Embeded動態編譯的網絡視頻監控系統,在瀏覽器輸入ARM終端的IP地址進行訪問查看。如圖3測試截圖所示,左側為瀏覽器獲取到的視頻播放頁截圖,右側是被拍攝的實時時間,根據計算可以證明該系統的時間延遲大約在2 s以內。在測試階段為了保證穩定性,在實際使用和生產的過程中可以調整參數提高系統的實時性,最佳可以達到1 s以內。
3 結語
該文研究了基于B/S架構的現代主流網絡視頻監控系統,提出了基于B/S架構的嵌入式Linux網絡視頻監控系統的設計方案。經過C++語言QT-Embeded庫開發,實現了客戶端跨平臺、免下載軟件、無需插件在瀏覽器進行遠程視頻監控。
系統已經在基于三星公司的S5PV210芯片,博創魔法師210套件上經過驗證,已應用于環境檢測系統、大棚數據采集系統以及家庭安全監測系統。系統在實際項目當中,圖像清晰、流暢,運行良好。系統還可以集成在現有的物聯網設備中,現有設備只需改動少量代碼即可將視頻服務器集成到ARM終端中,供瀏覽器遠程觀看家庭實時情況。
參考文獻
[1] 黃銳.家庭安防監控系統的研究[D].武漢理工大學,2014.
[2] 陳宗成,鄧華秋.基于ARM11的嵌入式視頻傳輸系統的實現[J].電視技術,2013,37(9):210-213.
[3] 賈文鋼,莊旭菲.WEB服務網關在嵌入式網絡系統中的設計與實現[J].電腦知識與技術,2010,6(31):8702-8703.