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
数据库等待超时时间,毫秒
 
posted @ 2015-10-07 10:59  zhaocundang  阅读(6638)  评论(0编辑  收藏  举报