linux下的開源移動映像監測程式--motion編譯與配置【轉】

來源:互聯網
上載者:User

標籤:沒有   sqlite3   ide   isa   hack   oge   詳細   源碼   意義   

本文轉載自:http://www.cnblogs.com/qinyg/p/3355707.html

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

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

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

先去下載原始碼:https://github.com/sackmotion/motion

以下操作都是在虛擬機器fedora 10 裡面操作的。

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

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

然後運行

mkdir _install

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的網路攝影機,就可以實現即時視頻監控或者移動映像的監控了,想象一下應該是一個不錯的東西哈!

linux下的開源移動映像監測程式--motion編譯與配置【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.