一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,分成兩個(gè)部分,第一部分是視頻監(jiān)控信息的遠(yuǎn)程實(shí)時(shí)觀(guān)看,采用MJPG?streamer方案實(shí)現(xiàn)圖像的獲取,通過(guò)HTTP協(xié)議將視頻傳輸?shù)絇C端的瀏覽器,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能;第二部分是視頻內(nèi)容的云端保存,該部分將從攝像頭得到的視頻以圖片的形式定時(shí)保存在本地,并上傳到用戶(hù)指定的FTP服務(wù)器上。本發(fā)明在Openwrt路由器上實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控的功能和攝像頭的定時(shí)抓拍功能,并且可以將圖片直接上傳到指定云端服務(wù)器保存,存儲(chǔ)空間更大,信息更安全,且成本較低。
【專(zhuān)利說(shuō)明】
一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,屬于智能路由器、嵌入式軟件設(shè)計(jì)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的發(fā)展和科技的進(jìn)步,為了保障個(gè)人生命財(cái)產(chǎn)安全和社會(huì)公共安全,視頻監(jiān)控的應(yīng)用越來(lái)越普遍。不論是商場(chǎng)店鋪,還是家居生活,通過(guò)攝像頭和網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,從而實(shí)現(xiàn)實(shí)時(shí)信息查看和視頻信息保存越來(lái)越被人們重視。隨著處理器的計(jì)算能力不斷提高,成本不斷下降,各種高性能的硬件產(chǎn)品在生活中日漸普及。以百元級(jí)別路由器為例,目前已經(jīng)買(mǎi)到128M內(nèi)存和128M Flash級(jí)別的產(chǎn)品了,其性能也不再僅僅只是局限于承擔(dān)路由器的工作。為了充分利用路由器的空閑性能,在Openwrt系統(tǒng)的基礎(chǔ)上,利用路由器的USB接口和攝像頭,實(shí)現(xiàn)基于路由器的實(shí)時(shí)監(jiān)控和信息保存功能。這樣路由器不僅可以用來(lái)上網(wǎng),還可以充當(dāng)簡(jiǎn)單的監(jiān)控系統(tǒng),降低成本,一舉多得。
[0003]針對(duì)帶有USB接口的路由器,可以外接攝像頭實(shí)現(xiàn)功能的擴(kuò)展。由于Openwrt系統(tǒng)是基于Linux內(nèi)核實(shí)現(xiàn)的,所有通過(guò)安裝攝像頭的相關(guān)模塊,可以實(shí)現(xiàn)攝像頭設(shè)備的識(shí)別。為了實(shí)現(xiàn)視頻圖像的查看和采集,MJPG-streamer方案是一種比較常見(jiàn)的解決方式。
[0004]文獻(xiàn)【1】(陳書(shū)益,黃永慧.開(kāi)源視頻服務(wù)器軟件MJPG-streamer的研究和應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(5):172-176)介紹MJPG-streamer是一個(gè)輕量級(jí)的視頻服務(wù)器軟件,一個(gè)可以從單一輸入組件獲取圖像并傳輸?shù)蕉鄠€(gè)輸出組件的命令行應(yīng)用程序,可以從網(wǎng)絡(luò)攝像機(jī)中獲取并傳輸JPEG格式的圖像到瀏覽器實(shí)時(shí)顯示。由于MJPG-streamer源代碼基于Linux C開(kāi)發(fā)而成,因而具有良好的可移植性,加上本身是輕量級(jí)的并且很少的CPU占用,所有在多種平臺(tái)下都有應(yīng)用。文獻(xiàn)【2】(于艷萍,朱曉智,王中訓(xùn).基于A(yíng)RM9和USB攝像頭的網(wǎng)絡(luò)視頻采集系統(tǒng)設(shè)計(jì)[J ].現(xiàn)代電子技術(shù),2011,34 (24): 49-51)在A(yíng)MR9的硬件平臺(tái)下,基于Linux嵌入式操作系統(tǒng),通過(guò)移植MJPG-streamer,實(shí)現(xiàn)了遠(yuǎn)程視頻信息的采集。文獻(xiàn)【3】(楊宏,張志文.基于Web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2012,40(10):70-72.)在同樣的硬件平臺(tái)下,不僅實(shí)現(xiàn)了監(jiān)控的功能,而且通過(guò)socket套接字設(shè)計(jì)了多點(diǎn)同時(shí)監(jiān)控的方案,提升了其應(yīng)用空間。文獻(xiàn)【4】(陳恒鑫,林威,張欽宇.基于Mjpg-streamer的移動(dòng)視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,22( 11): 3597-3599.)則從視頻圖像的編碼入手,拋棄MJPG-streamer默認(rèn)的M-JPEG圖像壓縮方案,設(shè)計(jì)采用H.264視頻編碼技術(shù),提升了編碼的效率,提升了網(wǎng)絡(luò)適應(yīng)性,實(shí)現(xiàn)了高清流暢的視頻傳輸需要。除了在服務(wù)器端對(duì)MJPG-streamer進(jìn)行改進(jìn)和優(yōu)化外,實(shí)時(shí)監(jiān)控接收端的模式也在不斷發(fā)展。除了傳統(tǒng)的瀏覽器端進(jìn)行視頻接收,文獻(xiàn)【5】(周鵬飛,潘地林.基于A(yíng)ndroid視頻監(jiān)控系統(tǒng)的數(shù)據(jù)處理及實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(5):150-153.)在A(yíng)RM平臺(tái)下基于MJPG-streamer設(shè)計(jì)本地監(jiān)控系統(tǒng),并設(shè)計(jì)手機(jī)端接收程序,實(shí)現(xiàn)了通過(guò)安卓手機(jī)獲取監(jiān)控畫(huà)面的功能,提升了監(jiān)控的實(shí)時(shí)性和移動(dòng)性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明技術(shù)解決問(wèn)題:克服現(xiàn)有技術(shù)的不足,提供一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能;并在路由器端實(shí)現(xiàn)攝像頭的定時(shí)抓拍功能,將圖片直接上傳到指定云端服務(wù)器保存,存儲(chǔ)空間更大,信息更安全,且成本較低。
[000?]本發(fā)明技術(shù)解決方案:一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,
[0007]本發(fā)明分成兩個(gè)部分,第一部分是視頻監(jiān)控信息的遠(yuǎn)程實(shí)時(shí)觀(guān)看,主要采用MJPG-streamer方案實(shí)現(xiàn)圖像的獲取,通過(guò)HTTP協(xié)議將視頻傳輸?shù)絇C端的瀏覽器,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能;第二部分是視頻內(nèi)容的云端保存,該部分主要將從攝像頭得到的視頻以圖片的形式定時(shí)保存在本地,并上傳到用戶(hù)指定的FTP服務(wù)器上。
[0008](I)實(shí)時(shí)監(jiān)控的實(shí)現(xiàn)
[0009]首先通過(guò)Openwrt路由器端的USB接口外接一個(gè)免驅(qū)并且支持MJPG-Streamer的攝像頭,通過(guò)安裝系統(tǒng)支持免驅(qū)攝像必需的內(nèi)核模塊kmod-video-core和kmod-video-uvc (或者在編譯系統(tǒng)固件時(shí)將上述模塊直接添加到固件中),實(shí)現(xiàn)攝像頭的識(shí)別;其次在路由器端安裝MJPG-streamer,通過(guò)編寫(xiě)視頻監(jiān)控的運(yùn)行腳本實(shí)現(xiàn)視頻監(jiān)控的啟動(dòng)和相關(guān)運(yùn)行參數(shù)的設(shè)置,同時(shí)依照Linux啟動(dòng)腳本規(guī)則編寫(xiě)自啟動(dòng)腳本實(shí)現(xiàn)視頻監(jiān)控功能的開(kāi)機(jī)自動(dòng)運(yùn)行,從而完成路由器端的部署;在PC端的瀏覽器通過(guò)訪(fǎng)問(wèn)路由器IP地址+指定端口號(hào),得到攝像頭的實(shí)時(shí)畫(huà)面信息,從而實(shí)現(xiàn)實(shí)時(shí)監(jiān)控功能;
[0010](2)視頻內(nèi)容的云端保存
[0011]在實(shí)時(shí)監(jiān)控的基礎(chǔ)上,利用MJPG-streamer將視頻處理成一幀一幀圖片的工作模式,通過(guò)編寫(xiě)腳本文件使用wget命令獲取監(jiān)控圖片并將圖片保存在路由器本地;使用wput命令將得到的圖片上傳到指定FTP服務(wù)器進(jìn)行保存。此外,基于系統(tǒng)本身提供的定時(shí)任務(wù)的功能,實(shí)現(xiàn)腳本的定時(shí)執(zhí)行,從而實(shí)現(xiàn)監(jiān)控圖片的定時(shí)獲取和定時(shí)上傳云端保存的功能。
[0012]如圖1所示,本發(fā)明程序?qū)崿F(xiàn)如下:
[0013]STEPl):在Openwrt路由器上部署MJPG-streamer后,編寫(xiě)監(jiān)控啟動(dòng)腳本和開(kāi)機(jī)自啟動(dòng)腳本,實(shí)現(xiàn)視頻監(jiān)控功能的自啟動(dòng)。通過(guò)腳本命令,指定輸入輸出模塊和相關(guān)參數(shù)取值;
[0014]STEP2):在路由器端進(jìn)行視頻數(shù)據(jù)的采集和處理。MJPG-streamer會(huì)把視頻分解成一張一張相互獨(dú)立的jpg文件進(jìn)行傳送。這里采用默認(rèn)的M-JPEG標(biāo)準(zhǔn)編碼;
[0015]STEP3):當(dāng)用戶(hù)通過(guò)PC端的瀏覽器查看實(shí)時(shí)監(jiān)控信息時(shí),路由器端采集到的圖片的數(shù)據(jù)通過(guò)HTTP協(xié)議發(fā)送給用戶(hù);
[0016]STEP4):用戶(hù)通過(guò)PC端瀏覽器接收到實(shí)時(shí)監(jiān)控畫(huà)面信息。需要注意,用戶(hù)雖然在瀏覽器端看到的連續(xù)的畫(huà)面,但實(shí)際上接收到的一張張靜態(tài)的圖片;
[0017]STEP5):經(jīng)過(guò)“視頻一圖片”轉(zhuǎn)換處理后的監(jiān)控圖片定時(shí)保存在路由器本地;
[0018]STEP6):為了保證本地存儲(chǔ)空間不被完全占用以及保證監(jiān)控信息安全,將本地圖片上傳到指定FTP服務(wù)器上保存。為了記錄監(jiān)控畫(huà)面的時(shí)間信息,采用監(jiān)控畫(huà)面的保存時(shí)間(即時(shí)分秒)命名圖片,并且保存在FTP服務(wù)器端以年月日命名的文件夾下;
[0019]STEP7):考慮本地存儲(chǔ)空間有限,為了保證路由器的正常運(yùn)行,在監(jiān)控圖片信息被上傳到FTP服務(wù)器后,本地圖片便被定時(shí)自動(dòng)刪除;
[0020]STEP8):判定程序是否結(jié)束運(yùn)行。若不結(jié)束,則繼續(xù)循環(huán)STEP2到STEP7;否則結(jié)束并退出視頻監(jiān)控。
[0021]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0022](I)充分利用路由器的USB接口,掛載攝像頭,通過(guò)電腦瀏覽器就可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能;
[0023](2)在路由器端實(shí)現(xiàn)攝像頭的定時(shí)抓拍功能,并可以將圖片直接上傳到指定Ζ5Γ端服務(wù)器保存,存儲(chǔ)空間更大,信息更安全,且成本較低。
【附圖說(shuō)明】
[0024]圖1為本發(fā)明基于Openwrt路由器視頻監(jiān)控和圖片保存流程圖。
【具體實(shí)施方式】
[0025]本發(fā)明在Openwrt路由器端安裝和部署MJPG-streamer,通過(guò)一定的腳本實(shí)現(xiàn)視頻監(jiān)控服務(wù)的啟動(dòng),采用HTTP協(xié)議進(jìn)行監(jiān)控視頻內(nèi)容的傳輸,在PC端利用瀏覽器接收,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控的功能。此外,為了保存監(jiān)控視頻的內(nèi)容,利用MJPG-streamer將視頻轉(zhuǎn)換成圖片進(jìn)行傳輸?shù)墓ぷ髟?,定時(shí)將圖片保存下來(lái)??紤]到本地存儲(chǔ)空間不足和視頻內(nèi)容的安全,將圖片自動(dòng)上傳到指定的云端FTP服務(wù)器進(jìn)行保存,并在圖片上傳成功后自動(dòng)刪除本地圖片,實(shí)現(xiàn)監(jiān)控內(nèi)容的云端保存。
[0026]1.實(shí)時(shí)監(jiān)控
[0027]在成功掛載攝像頭并且安裝MJPG-streamer后,為了進(jìn)行遠(yuǎn)程監(jiān)控,需要保證MJPG-streamer的插件加載和正常啟動(dòng)。
[0028]在實(shí)時(shí)監(jiān)控中,需要用的插件包括Input_uvc.so和output_http.so。其中,Input_UVC.SO負(fù)責(zé)從視頻設(shè)備中抓取圖片,可以指定設(shè)備名稱(chēng)、圖片大小、幀率等;output_http, so是一個(gè)符合HTTP標(biāo)準(zhǔn)的Webserver,通過(guò)HTML文件實(shí)現(xiàn)例如CSS、JavaScript等復(fù)雜的網(wǎng)頁(yè)功能,并接收瀏覽器客戶(hù)端命令實(shí)現(xiàn)攝像頭參數(shù)調(diào)整,后面通常指定Webserver的端口和地址等。監(jiān)控服務(wù)器端通過(guò)Socket將監(jiān)控?cái)?shù)據(jù)發(fā)送到用戶(hù)的瀏覽器,實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)監(jiān)控。
[0029]為了保證攝像頭監(jiān)控功能可以開(kāi)機(jī)自啟動(dòng),編寫(xiě)攝像頭監(jiān)控的開(kāi)機(jī)自啟動(dòng)腳本。在/ etc/init.d/文件夾下添加文件camerastart,該腳本是一個(gè)啟動(dòng)腳本,設(shè)定本腳本的開(kāi)機(jī)啟動(dòng)順序,以及運(yùn)行的指令。由于攝像頭使用依賴(lài)MJPG-streamer,所以將攝像頭監(jiān)控腳本啟動(dòng)順序安排在MJPG_stramer啟動(dòng)之后。-b參數(shù)使MJPG-streamer后臺(tái)運(yùn)行,-p 8080表示使用的端口。由于系統(tǒng)啟動(dòng)時(shí)會(huì)按順序啟動(dòng)rc.d目錄下的腳本鏈接,然后對(duì)應(yīng)執(zhí)行init.d目錄下的啟動(dòng)腳本,所以使用如下命令在/etc/rc.d/目錄下為攝像頭啟動(dòng)腳本做一個(gè)軟鏈接
[0030]ln-s/etc/init.d/camerastart/etc/rc.d/S9Icamerastart
[0031 ] 重啟系統(tǒng)后,攝像頭即可以在OpenWrt路由器上實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)。在Chrome、Firfox瀏覽器端使用192.168.1.1:8080即可以查看到路由器攝像頭的實(shí)時(shí)影像。
[0032]2.監(jiān)控信息云端保存
[0033]由于MJPG-Streamer采用將視頻內(nèi)容轉(zhuǎn)換成圖片的方式對(duì)視頻進(jìn)行處理,所以在進(jìn)行遠(yuǎn)程實(shí)時(shí)監(jiān)控的同時(shí),將圖片信息定時(shí)上傳到云端進(jìn)行保存是一種有效的保存監(jiān)控的形式。在路由器上安裝了 wput后,可以使用wget命令將攝像頭圖片文件保存在指定文件夾下。配合wput命令的使用,可以將實(shí)時(shí)的圖片文件上傳到用戶(hù)指定FTP服務(wù)器的指定目錄保存下來(lái),從而實(shí)現(xiàn)監(jiān)控內(nèi)容的云端保存。
[0034]圖片保存和上傳功能使用腳本saverpic.sh實(shí)現(xiàn),腳本用于獲取當(dāng)前系統(tǒng)時(shí)間和當(dāng)前圖像文件,攝像頭圖片文件首先被保存在路由器/tmp文件夾下,并使用wput命令將圖片上傳到FTP服務(wù)器保存在以日期為名字的文件夾下,重命名為圖片保存的時(shí)間,以便區(qū)分。同時(shí),為了節(jié)省路由器本地存儲(chǔ)空間,避免存儲(chǔ)空間完全被圖片占用,設(shè)計(jì)將路由器端的圖片定時(shí)進(jìn)行清除。
[0035]為了使saverpic.sh腳本定時(shí)自動(dòng)運(yùn)行,可以使用系統(tǒng)提供的計(jì)劃任務(wù)功能。計(jì)劃任務(wù)相當(dāng)于在路由器上開(kāi)啟了定時(shí)模式,即在用戶(hù)指定的時(shí)間點(diǎn)或者時(shí)間段內(nèi)自動(dòng)執(zhí)行由用戶(hù)指定的某些任務(wù)。計(jì)劃任務(wù)格式如下:
[0036][minute][hour][day of month][month][day of week][program to be run]
[0037]每個(gè)時(shí)間參數(shù)都有四種取值間隔方式:
[0038]*表示取任意時(shí)間;
[0039]-表示時(shí)間范圍;
[0040],表示枚舉多個(gè)時(shí)間值;
[0041 ] /表示時(shí)間每隔多久。
[0042]在/etc/crontabs/root添加計(jì)劃任務(wù)內(nèi)容如下:
[0043]*/l****/www/savepic.sh
[0044]*/5****rm/tmp/*.jpg
[0045]第一條任務(wù)表示每隔I分鐘,執(zhí)行/www/savepic.sh腳本,保存、上傳圖片文件;第二條任務(wù)每隔5分鐘將本地路由器/tmp/下保存的圖片自動(dòng)刪除。
[0046]完成以上所有文件和配置,重啟路由器后,通過(guò)路由器的USB接口掛載攝像頭就可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控的功能和圖片自動(dòng)上傳FTP服務(wù)器保存的功能。
[0047]提供以上實(shí)施例僅僅是為了描述本發(fā)明的目的,而并非要限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求限定。不脫離本發(fā)明的精神和原理而做出的各種等同替換和修改,均應(yīng)涵蓋在本發(fā)明的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,其特征在于:分成兩個(gè)部分,第一部分是視頻監(jiān)控信息的遠(yuǎn)程實(shí)時(shí)觀(guān)看,采用MJPG-streamer方案實(shí)現(xiàn)圖像的獲取,通過(guò)HTTP協(xié)議將視頻傳輸?shù)絇C端的瀏覽器,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能;第二部分是視頻內(nèi)容的云端保存,該部分將從攝像頭得到的視頻以圖片的形式定時(shí)保存在本地,并上傳到用戶(hù)指定的FTP月艮務(wù)器上,實(shí)現(xiàn)步驟如下: (1)實(shí)時(shí)監(jiān)控的實(shí)現(xiàn) 首先通過(guò)Openwrt路由器端的USB接口外接一個(gè)免驅(qū)并且支持MJPG-streamer的攝像頭,通過(guò)安裝系統(tǒng)支持免驅(qū)攝像必需的內(nèi)核模塊kmod-video-core和kmod-video-uvc或者在編譯系統(tǒng)固件時(shí)將上述模塊直接添加到固件中,實(shí)現(xiàn)攝像頭的識(shí)別;其次在路由器端安裝MJPG-streamer,通過(guò)編寫(xiě)視頻監(jiān)控的運(yùn)行腳本實(shí)現(xiàn)視頻監(jiān)控的啟動(dòng)和相關(guān)運(yùn)行參數(shù)的設(shè)置,同時(shí)依照Linux自啟動(dòng)腳本編寫(xiě)規(guī)則編寫(xiě)自啟動(dòng)腳本實(shí)現(xiàn)視頻監(jiān)控功能的開(kāi)機(jī)自動(dòng)運(yùn)行,從而完成路由器端的部署;在PC端的瀏覽器通過(guò)訪(fǎng)問(wèn)路由器IP地址+指定端口號(hào),得到攝像頭的實(shí)時(shí)畫(huà)面信息,從而實(shí)現(xiàn)實(shí)時(shí)監(jiān)控功能; (2)視頻內(nèi)容的云端保存 在實(shí)時(shí)監(jiān)控的基礎(chǔ)上,利用MJPG-streamer將視頻處理成一幀一幀圖片的工作模式,通過(guò)編寫(xiě)腳本文件使用wget命令獲取監(jiān)控圖片并將圖片保存在路由器本地;使用wput命令將得到的圖片上傳到指定FTP服務(wù)器進(jìn)行保存。此外,基于系統(tǒng)本身提供的定時(shí)任務(wù)的功能,實(shí)現(xiàn)腳本的定時(shí)執(zhí)行,從而實(shí)現(xiàn)監(jiān)控圖片的定時(shí)獲取和定時(shí)上傳云端保存的功能。2.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,其特征在于:所述(2)中,由于路由器本地存儲(chǔ)空間有限,本地圖片在成功上傳云端后便被刪除;為了區(qū)分圖片,在FTP服務(wù)器端自動(dòng)以當(dāng)天日期建立文件夾,以圖片保存的時(shí)間命名圖片,從而將時(shí)間和內(nèi)容信息都保存了下來(lái)。3.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的實(shí)時(shí)攝像頭監(jiān)控方法,其特征在于:所述(I)中使用路由器的IP地址和指定的端口號(hào),在PC端通過(guò)瀏覽器就實(shí)現(xiàn)攝像頭監(jiān)控畫(huà)面的實(shí)時(shí)觀(guān)看。
【文檔編號(hào)】H04N7/18GK105898225SQ201610268619
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年4月26日
【發(fā)明人】凌強(qiáng), 張雷, 徐駿
【申請(qǐng)人】中國(guó)科學(xué)技術(shù)大學(xué)