基于Linux的視頻監(jiān)控系統(tǒng)構(gòu)建方法
圖像采集處理流程圖如圖2 所示。
圖2 圖像采集處理流程圖
3.3 網(wǎng)絡(luò)服務(wù)器
系統(tǒng)采用Boa 服務(wù)器。Boa 是一種非常小巧的Web 服務(wù)器, 其可執(zhí)行代碼只有大約60 kB 左右。作為一種單任務(wù)Web 服務(wù)器,Boa 只能依次完成用戶的請(qǐng)求,Boa 支持CGI,能夠?yàn)镃GI 程序fork 出一個(gè)進(jìn)程來(lái)執(zhí)行。板上移植該服務(wù)器,Boa 服務(wù)器默認(rèn)開(kāi)機(jī)自動(dòng)運(yùn)行,配置conf 文件。
服務(wù)器端應(yīng)用程序使用servfox, servfox-R1_1_3 解壓修改Makefile 文件:CC=arm-linux-gcc,編譯后得到可執(zhí)行文件servfox,下載到板上,輸入命令chmod +x servfox 為它添加可執(zhí)行屬性。
客戶端程序使用spcawiew, 該程序用于在Linux 主機(jī)上對(duì)服務(wù)器進(jìn)行監(jiān)控,無(wú)需移植。在Linux 上編譯spcaview.由于此軟件包依賴與libsdl,所以在安裝spcaview 之前,需要安裝SDL-1.2.13. 安裝spcaview 軟件后,在源文件目錄上有3 個(gè)可執(zhí)行文件,spcacat :簡(jiǎn)單圖片的抓取工具,不能用于網(wǎng)絡(luò)監(jiān)視客戶端,Spcaserv:流媒體服務(wù)器,Spcaview: 用來(lái)紀(jì)錄數(shù)據(jù)流,也能用來(lái)播放數(shù)據(jù),也能作為網(wǎng)絡(luò)監(jiān)視客戶端用。
4 監(jiān)控過(guò)程
4.1 在Linux 操作系統(tǒng)上的監(jiān)控
正常啟動(dòng)運(yùn)行開(kāi)發(fā)板,運(yùn)行服務(wù)器端程序servfox: servfox-d /dev/video0-s 320x240-w 7070。
在Linux 上運(yùn)行: 。/spcaview-g-s 320x240-w 10.1.91.230:7070
其中10.1.91.230 是服務(wù)器的IP 地址,這樣就可以在PC機(jī)上看見(jiàn)USB 攝像頭采集進(jìn)來(lái)的數(shù)據(jù)了。
系統(tǒng)是裝在虛擬機(jī)中的fedora 9 linux 系統(tǒng),可以流暢地觀察到攝像頭監(jiān)控區(qū)域的情況。
4.2 Windows 操作系統(tǒng)上的監(jiān)控
對(duì)于網(wǎng)絡(luò)監(jiān)控的客戶端,能夠跨平臺(tái)的工具目前只有瀏覽器,通過(guò)瀏覽器來(lái)監(jiān)控,無(wú)論是Linux、Windows、MacOS 或者其他的UNIX 系統(tǒng),只要有圖形界面的瀏覽器,在桌面環(huán)境下都可以對(duì)遠(yuǎn)程的攝像頭所“控制”的范圍進(jìn)行監(jiān)控。
Mini2440 上已經(jīng)有Boa 服務(wù)器可供使用,Spcaview 中的http-java-applet 文件夾中已經(jīng)包含了一個(gè)可以監(jiān)控使用的web 頁(yè)面,將該文件夾復(fù)制到Boa 服務(wù)器的主文件夾/www 下。
由于http-java-applet 文件夾內(nèi)含的WEB 主頁(yè)面(Index.html)包含了JAVA 控件,所以先在主機(jī)上安裝JAVA 環(huán)境,讓瀏覽器支持JAVA 插件。
安裝好JRE 后, 在瀏覽器的地址欄上輸入服務(wù)器地址,即可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
4.3 遠(yuǎn)程抓拍
通過(guò)web 表單提交CGI 來(lái)運(yùn)行應(yīng)用程序。
通用網(wǎng)關(guān)接口(CGI)規(guī)范允許Web 服務(wù)器執(zhí)行其他的程序并將它們的輸出儲(chǔ)存在發(fā)送給Web 瀏覽器的文本、圖形和音頻中。服務(wù)器與CGI 程序的結(jié)合能夠擴(kuò)充World WideWeb 的能力。
CGI 程序可以由C、Perl 或者UNIX Shell 腳本等流行編程語(yǔ)言編寫。
在本設(shè)計(jì)中,網(wǎng)頁(yè)上的按鈕shoot the picture 提交了一個(gè)名為V4L 的CGI 文件v4l.cgi,該文件是用shell 腳本編寫的,用于在板上運(yùn)行已編譯好的圖像采集程序并對(duì)抓拍的圖片返回到新打開(kāi)的網(wǎng)頁(yè)中進(jìn)行查看。
Shell 腳本(v4l.cgi)內(nèi)容如下:
#! /bin/sh
/www/http-java-applet/v4l2
echo “Content-type: text/html; charset=gb2312”
echo
echo “……”
echo “
” > src="”1.jpg“">
exit 0
5 結(jié)束語(yǔ)
系統(tǒng)采用開(kāi)源的Linux 系統(tǒng),降低了開(kāi)發(fā)成本,可以任意裁剪和制定內(nèi)核,方便移植。與傳統(tǒng)PC 機(jī)的監(jiān)控系統(tǒng)相比,本系統(tǒng)具有體積小、成本低、可靠性強(qiáng)等優(yōu)勢(shì)。本系統(tǒng)還具有一定的擴(kuò)展性,可以增加適當(dāng)?shù)墓δ軘U(kuò)展來(lái)滿足用戶更高的要求, 如在圖像采集端加入設(shè)置入侵檢測(cè)或者報(bào)警等控制功能。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
linux相關(guān)文章:linux教程
攝像頭相關(guān)文章:攝像頭原理
評(píng)論