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