linux下motion攝像頭監控編譯與配置


當有移動物體經過時,攝像頭便自動抓拍並把拍到的圖像存儲在指定目錄,實現無人監控功能。

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

源代碼:https://github.com/xiaobo-linux/motion

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

./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像素值

 

 8081端口登錄,需要輸入用戶和密碼進行用戶登錄驗證:

# Authentication for the stream. Syntax username:password

# Default: not defined (Disabled)

 stream_authentication username:passwd

 

192.168.1.100:8080 (motion的配置頁面,里面有很多motion的配置選項)

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

如果使用外網的話,stream_loacalhost off

然后就可以運行motion了

./motion

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

 

 

配置多個攝像頭的方法是:

把motion 可執行文件跟要控制的攝像頭的配置文件 motion.conf 放在一塊  

motion  + motion.conf 放在一起;  

多個攝像頭的話, 把 motion + motion.conf 放在別的文件夾內執行,motion.conf只需配置video編號跟瀏覽器查看攝像頭的端口號

執行 ./moion 即可。

 

這樣編譯成的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 

 

motion還有很多功能,比如:

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

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

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

還可以設置報警等功能。

如果把這個移植到開發板上,然后弄上個usb的攝像頭,就可以實現實時視頻監控或者移動圖像的監控了.

 

 

選項 Range/Values Default 說明
auto_brightness Values: on,off 
Default: off
讓motion自動調節視頻的的亮度,只適用於不帶有自動亮度調節的攝像機
brightness Values: 0-255 
Default: 0 (disabled)
調整攝像機的亮度
saturation Values: 0 - 255 
Default: 0 (disabled)
調整攝像機的顏色飽和度
hue Values: 0 - 255
Default: 0 (disabled)
調整攝像機的色調
contrast Values: 0-255 
Default: 0 (disabled)
調整攝像機的對比度
daemon Values: on,off 
Default: off
以守護進程在后台運行。這個選項只能放在motion.conf,不能放在 thread config file
emulate_motion Values: on, off 
Default: off
即使沒有運動物體也要保存圖像
ffmpeg_output_movies Values: on, off Default: off 是否保存視頻
ffmpeg_bps Values: 0 - 9999999 
Default: 400000
視頻比特率
ffmpeg_variable_bitrate Values: 0, 2 - 31 
Default: 0 (disabled)
動態比特率,如果開啟這個功能ffmpeg_bps將被忽略,0為關閉,2為最好質量,31為最差質量
ffmpeg_duplicate_frames Values: on, off 
Default: on
為了達到每秒的幀數要求,會復制一下幀填充空白時間,關掉這個功能后每個幀都緊接下一個幀,看起來像快進
ffmpeg_output_debug_movies Values: on, off 
Default: off
調試模式,只看到變化的圖像
ffmpeg_video_codec Values: mpeg4, msmpeg4, swf, flv, ffv1, mov, ogg, mp4, mkv, hevc 
Default: mpeg4
視頻格式
framerate Values: 2 - 100 
Default: 100 (no limit)
幀速率,每秒多少幀
frequency Values: 0 - 999999 
Default: 0 (Not set)
頻率協調 Hz,(不清楚作用)
lightswitch Values: 0 - 100 
Default: 0 (disabled)
忽略光照強度改變引起的變化
locate_motion_mode Values: on, off, preview 
Default: off
給運動物體用方框標出
locate_motion_style Values: box, redbox, cross, redcross 
Default: box
標記風格
max_movie_time Values: 0 (infinite) - 2147483647 
Default: 3600
最大視頻時間
minimum_frame_time Values: 0 - 2147483647 
Default: 0
最小幀間隔,設置為0表示采用攝像頭的幀率
minimum_motion_frames Values: 1 - 1000s 
Default: 1
捕捉持續至少指定時間的運動幀
movie_filename Values: Max 4095 characters 
Default: %v-%Y%m%d%H%M%S
視頻的文件名
ffmpeg_timelapse Values: 0-2147483647 
Default: 0 (disabled)
間隔時間,拍攝延時視頻
ffmpeg_timelapse_mode Values: hourly, daily, weekly-sunday, weekly-monday, monthly, manual 
Default: daily
延時拍攝模式
timelapse_filename Values: Max 4095 characters 
Default: %v-%Y%m%d-timelapse
延時拍攝的文件名
output_pictures Values: on,off,first,best,center 
Default: on
是否保存圖片和模式設置
output_debug_pictures Values: on,off 
Default: off
圖片調試模式,只輸出運動物體
picture_filename Values: Max 4095 characters 
Default: %v-%Y%m%d%H%M%S-%q
圖片文件名
picture_type Values: jpeg,ppm 
Default: jpeg
圖片類型
post_capture Values: 0 - 2147483647 
Default: 0 (disabled)
運動在持續多少幀之后才被捕捉
pre_capture Values: 0 - 100s 
Default: 0 (disabled)
輸出圖像包括捕捉到運動的前幾秒
quality Values: 1 - 100
Default: 75
jpg圖像的質量
quiet Values: on, off 
Default: off
安靜模式,檢測到運動不輸出嗶
rotate Values: 0, 90, 180, 270 
Default: 0 (not rotated)
旋轉圖像角度
stream_auth_method Values: 0,1,2 
Default: 0
網頁監控身份認證方法:0-無,1-基本,2-MD5
stream_authentication Values: username:password
Default: Not defined
網頁監控用戶名和密碼
stream_limit Values: 0 - 2147483647 
Default: 0 (unlimited)
限制幀的數量
stream_localhost Values: on, off
Default: on
是否只能本地訪問網絡攝像頭
stream_maxrate Values: 1 - 100 
Default: 1
限制網絡攝像頭幀速率
stream_port Values: 0 - 65535 
Default: 0 (disabled)
網絡攝像頭端口
stream_quality Values: 1 - 100
Default: 50
網絡攝像頭傳輸質量
switchfilter Values: on, off 
Default: off
過濾器開關,過濾器用來區分真正的運動和噪聲
target_dir Values: Max 4095 characters
Default: Not defined = current working directory
視頻和圖片的保存路徑
videodevice Values: Max 4095 characters 
Default: /dev/video0
攝像頭設備名
height Values: Device Dependent
Default: 288
圖像高度,范圍跟攝像機相關
width Values: Device Dependent
Default: 352
圖像寬度,范圍跟攝像機相關
process_id_file Values: Max 4095 characters 
Default: Not defined
保存PID的文件,推薦/var/run/motion.pid
database_busy_timeout Values: 0 .. positive integer 
Default: 0
數據庫等待超時時間,毫秒
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM