linux下的开源移动图像监测程序--motion编译与配置【转】
本文转载自: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编译与配置【转】的更多相关文章
- linux下的开源移动图像监测程序--motion编译与配置
前几天在网上偶然看到一篇博客,是利用linxu下的开源的motion搭建嵌入式视频动态监控系统,感觉很好很强大于,是就想自己编译移植一下试试. 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域 ...
- linux下的第一个C程序及其编译方法
#include <stdio.h> #include <stdlib.h> int main(int argc, char ** argv) { printf(& ...
- linux 下检查java jar包 程序是否正常 shell
linux 下检查java jar包 程序是否正常 shell http://injavawetrust.iteye.com BATCH_SERVER="batch.jar" NR ...
- Linux下如何让jar包程序在后台一直执行
Linux下如何让Jar包程序在后台一直执行 shell命令 nohup java -jar xxx.jar & &:让程序后台执行. nohub:让程序控制台输出转移到nohub.o ...
- 在Linux下,如何分析一个程序达到性能瓶颈的原因
0.在Linux下,如何分析一个程序达到性能瓶颈的原因,请分别从CPU.内存.IO.网络的角度判断是谁导致的瓶颈?注意现在的机器CPU是多核 1.用sar -n DEV 1 10 2.用iotop命令 ...
- Linux下使用vim编辑C程序
这几天在系统能力班自学linux,加上最近大数据课上开始使用linux,我在这里总结一下,linux下使用vim编辑c程序的一些问题. 大数据课上是直接使用micro来编辑的,我这里只是简单的说明一下 ...
- 在Linux下使用linuxdeployqt发布Qt程序
一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...
- Linux下通过.desktop 文件创建桌面程序图标及文件编写方式(Desktop Entry文件概述)
Linux下通过.desktop 文件创建桌面程序图标及文件编写方式 1.Desktop Entry文件概述:在 Windows 平台上,用户可以通过点击位于桌面或菜单上的快捷方式轻松打开目标应用程序 ...
- Linux下部署开源版“禅道”项目管理系统《转载》
Linux下部署开源版“禅道”项目管理系统 https://www.cnblogs.com/xxsl/p/6525378.html
随机推荐
- Redis 链表结构 和 常用命令
Redis 数据结构 --链表(linked-list) 命令 说明 备注 lpush key node1 [node2 ...] 把节点 node1 加入到 链表最左边 如果是 node1.node ...
- java的封箱和拆箱
1.基本概念 字节的单位:byte.位的单位:bit,1byte=8bit 2.8种基本数据类型 4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的bool ...
- MEF编程模型
Contract由Contract name和Contract type组成,Contract两个参数可以省略可以implicit也可以explicit,implicit时name和type会自动推断 ...
- 时序分析:HMM模型(状态空间)
关于HMM模型:时序分析:隐马尔科夫模型 HMM用于手势识别: 训练时每一种手势对应一个HMM-Model,识别率取最大的一个HMM即可. 类似于一个封装的完成多类识别器功能单层网络. 优点: 尤其 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出
http://www.cnblogs.com/wuhuacong/p/3873498.html 数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在 ...
- 范畴论-一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已
范畴即为结构:包含要素和转化. 范畴为高阶类型. 函子为高阶函数.函子的输入为态射.函子为建立在态射基础上的高阶函数.函子用于保持范畴间映射的结构.态射用于范畴内部的转换. 群为运算规则的约束. 自函 ...
- PS通道的界面颜色设置
编辑--首选项---界面--界面---选项---(勾选)以彩色显示通道(彩色显示)或者不勾选(为黑白色显示)
- Python这些问题你会吗?
inal作用域的代码一定会被执行吗? 正常的情况下,finally作用域的代码一定会被执行的,不管是否发生异常.哪怕是调用了sys.exit函数,finally也是会被执行的,那怎么样才能让final ...
- appium+python,app自动化测试框架
目前正在写一个app的自动化UI测试框架,目录结构如, 脚本还在调试,实现的方法是从excel表格读取测试用例,执行完成后会将结果保存到Excel中. 等待.......
- lightslider-支持移动触摸的轻量级jQuery幻灯片插件
插件简介 lightslider是一款轻量级的响应式jQuery幻灯片插件.lightslider幻灯片插件能够支持移动触摸设备,它可以制作为带缩略图的内容幻灯片,或者制作为无限循环的旋转木马.它的特 ...