linux下的开源移动图像监测程序--motion编译与配置
来源:互联网 发布:java开发简历范文 编辑:程序博客网 时间:2024/06/07 08:47
refs:
http://www.cnblogs.com/qinyg/archive/2013/11/25/3355707.html
http://www.csdn.net/article/2014-07-22/2820789
http://blog.csdn.net/ljmrs/article/details/38318835
所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体、按拍照速率都是可调的),并把拍到的图像存储在指定目录,实现无人监控功能。
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编译与配置及ffmpeg
- linux下的开源移动图像监测程序--motion编译与配置
- Linux下移植motion到6410开发板(移动图像监测系统)
- 【原创】动态图像监测开源代码 motion 学习-----Motion常见问题和与Motion相关的应用(五)
- linux下motion摄像头监控编译与配置
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide - Installation(motion的安装指南)
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide-配置选项搜索表(四)
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide - Basic Features(motion的基本特性)(一)
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide - Basic Features(motion的基本特性)(二)
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide - Special Features(motion的特殊功能)(三)
- Linux移动物体监控程序Motion的移植
- DIY远程移动图像监测(tiny6410+USB摄像头+motion+yeelink+curl)
- 【原创】动态图像监测开源代码 motion 学习 ----- Motion源码分析(1)
- 【原创】动态图像监测开源代码 motion 学习 ----- Motion源码分析(2)
- 【原创】动态图像监测开源代码 motion 学习 ----- Motion源码分析(3)
- 【翻译】动态图像监测开源代码 motion 学习-----Motion Guide - Getting It Running(让motion动起来)
- linux下库的编译与配置
- Linux操作系统下如何监测C程序的内存泄露
- 【面经笔记】Windows下的动态链接(DLL)
- div垂直居中的方法(css的),百分比div垂直居中,html5
- SQL 语法
- 关键字
- 安卓Android studio调试错误
- linux下的开源移动图像监测程序--motion编译与配置
- 扯淡
- Spring加载properties文件的两种方式
- 隐藏虚拟按键
- 内核中常用的双向链表数据结构(list_head)详解
- TwoSum--python
- GitChat·技术管理 | Cynefin 框架和不确定性管理思维
- JQuery学习笔记
- 快启动win10pe制作详细图文教程