linux下的開源移動圖像監測程序--motion編譯與配置

前幾天在網上偶然看到一篇博客,是利用linxu下的開源的motion搭建嵌入式視頻動態監控系統,感受很好很強大於,是就想本身編譯移植一下試試。html

所謂移動圖像監測,簡單來講就是利用攝像頭定點監測某個區域,當有移動物體通過時,攝像頭便自動抓拍(要監測多大物體、按拍照速率都是可調的),並把拍到的圖像存儲在指定目錄,實現無人監控功能。linux

motion 是一套免費開源的移動圖像監測程序(詳見http://www.lavrsen.dk/foswiki/bin/view/Motiongit

先去下載源代碼:https://github.com/sackmotion/motiongithub

如下操做都是在虛擬機fedora 10 裏面操做的。sql

解壓源碼,進入到目錄裏面運行  shell

./configure  --prefix=/${PWD}/_install / ( 自定義安裝目錄,我是直接安裝源碼下)瀏覽器

而後運行網絡

mkdir _installide

make測試

make install

cd _install

cp etc/motion-dist.conf etc/motion.conf

編輯配置文件:

vi etc/motion.conf裏面的具體配置意義能夠看它的註釋,或者見http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

關鍵的幾點配置:

daemon off  #關掉deamon模式

locate_motion_mode on  #探測到圖像中有運動時,把運動區域用矩形框起來

videodevice /dev/video0  #加載USB攝像頭的設備(對應本身的攝像頭設備)

width 640    #圖像寬度

height 480    #圖像高度

target_dir /root/motion  #設置拍攝圖片的存儲目錄

threshold 3000      #這個是改變探測靈敏度,越小越靈敏,這裏設爲3000像素值

 

而後就能夠運行motion了

./motion

在攝像頭前面移動,motion就會監測到物體移動,而後將捕捉到的圖像保存到指定的目錄下面

個人測試效果圖(移動的手被矩形框起來了)

 

這樣編譯成的motion是沒有視頻編碼功能的,要想將監控程序保存成視頻文件,還要進行下面的更改。

從新配置motion以前還要先作好FFmpeg的編譯準備工做。

先去下載FFmpeg

https://github.com/dwbuiten/FFmpeg

解壓進入FFmpeg的目錄,運行:

./configure --enable-memalign-hack --disable-debug  --prefix=/${PWD}/_install / 自定義安裝目錄,我是直接安裝源碼下)

(FFmpeg的編譯詳細參數參考http://www.cnblogs.com/ohmytime/archive/2013/05/12/ffmpeg-build-help.html)

在配置的時候會提示找不到yasm的錯誤(個人fedora 10是這樣的,具體錯誤緣由記不住了。。。)

去下載一個編譯安裝就行了:https://github.com/yasm/yasm

(安裝方法:解壓進入yasm,運行./autogen.sh 而後make && make install便可)

再執行

make 

make install

進入到 _install目錄下能夠看到生成的庫文件以及可執行文件。能夠測試一下_install/bin目錄下的ffplay 播放器 

ffplay /home/test.mp4(視頻文件爲本身指定的文件)

若是成功播放視頻則表示FFmpeg庫編譯成功。接下來的工做會用到這個_install目錄

進入到motion目錄執行:

make distclean

/configure  --prefix=/${PWD}/_install  --with-ffmpeg=FFmpeg/_install/ (這個就是剛纔編譯的庫文件的目錄)

make

在這一步會遇到一個錯:/FFmpeg-master/libavformat/matroskadec.c:1173: undefined reference to `BZ2_bzDecompressInit'

解決辦法是修改Makefile的第35行:

LIBS = -lm -lpthread -lSDL -lpthread -ljpeg -L/home/qin/FFmpeg-master/_install/lib -lavformat -lavcodec -lavutil -lm -lz -lsqlite3 -lbz2

(最後的紅色字體部分是新加上的)

從新make便可

make && make install

安裝成功後保證motion.conf配置文件正確的狀況下運行motion:

./motion 

能夠在電腦的瀏覽器上打開server的IP地址,也就是linux的ip地址,例如個人是

192.168.1.100:8080 (這個地址是motion的配置頁面,裏面有不少motion的配置選項)

192.168.1.100:8081 (這個是motion的網絡監控地址)

motion還有不少功能,好比:

on_event_start /root/detected  #當該事件產生時執行detected腳本,該腳本是簡單的可執行shell腳本,下同

on_event_end /root/end  #當該事件產生時執行end腳本

gap 5 #設置,在探測到運動後,多長時間沒有運動的話就觸發運動結束指令on_event_end。

還能夠設置報警等功能。

若是把這個移植到開發板上,而後弄上個usb的攝像頭,就能夠實現實時視頻監控或者移動圖像的監控了,想象一下應該是一個不錯的東西哈!

相關文章
相關標籤/搜索