linux下motion摄像头监控编译与配置
利用linxu下的开源的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像素值
可以在电脑的浏览器上打开server的IP地址,也就是linux的ip地址,例如我的是
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的摄像头,就可以实现实时视频监控或者移动图像的监控了.
linux下motion摄像头监控编译与配置的更多相关文章
- Linux 下V4l2摄像头采集图片,实现yuyv转RGB,RGB转BMP,RGB伸缩,jpeglib 库实现压缩RGB到内存中,JPEG经UDP发送功(转)
./configure CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --host=arm-linux --prefix=/usr/loca ...
- [转]Caffe在Linux下的安装,编译,实验
Caffe在Linux下的安装,编译,实验 原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...
- C语言高级应用---操作linux下V4L2摄像头应用程序
我们都知道,想要驱动linux下的摄像头,其实很简单,照着V4L2的手册一步步来写,很快就可以写出来,但是在写之前我们要注意改变系统的一些配置,使系统支持framebuffer,在dev下产生fb0这 ...
- Linux下通过server-status监控性能
Linux下通过server-status监控性能 前提:安装好Apache,在opt/路径下 查看Apache的工作模式 可以知道是 prefork.c模式 配置server-status 性能 进 ...
- Linux下Ganglia集群监控安装、配置笔记
http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下Ganglia集群监控安装.配置笔记 Gangli ...
- Linux下日志文件监控系统Logwatch的使用记录
Linux下日志文件监控系统Logwatch的使用记录 原文:http://www.cnblogs.com/kevingrace/p/6519504.html 在维护Linux服务器时,经常需要查看系 ...
- C语言高级应用---操作linux下V4L2摄像头应用程序【转】
转自:http://blog.csdn.net/morixinguan/article/details/51001713 版权声明:本文为博主原创文章,如有需要,请注明转载地址:http://blog ...
- Linux下FFmpeg的安装编译过程【转】
本文转载自:http://www.linuxidc.com/Linux/2013-06/85628.htm 详细说下在Linux下FFmpeg的安装编译过程.参考 Ubuntu 10.04安装编译FF ...
- Linux下,如何监控某个进程到底向哪个地址发起了网络调用
Linux下,如何监控某个进程到底向哪个地址发起了网络调用 有时候,有些应用,比如idea,你发起某个操作时,其底层会去请求网络,获取一些数据. 但是不知道,请求了什么地址.举个例子,在idea中,m ...
随机推荐
- Think_php入口文件配置
think_php的入口模式有两种方式 1,一个入口文件对应一个项目应用 2,一个入口文件对应所有项目应用 默认情况,入口文件只需要require thinkphp文件夹就可以.比如thinkphp文 ...
- CentOS安装zip unzip命令
yum install zip unzip
- 想要学好JQuery看这里
一.简介 jQuery 库可以通过一行简单的标记被添加到网页中 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...
- .Net中的并行编程-4.实现高性能异步队列
上文<.Net中的并行编程-3.ConcurrentQueue实现与分析>分析了ConcurrentQueue的实现,本章就基于ConcurrentQueue实现一个高性能的异步队列,该队 ...
- 06Mybatis_入门程序——根据用户的名字模糊查询返回List集合
本篇论文讲的是模糊查询然后返回的是一个list集合. 这片文章的案例是基于上一篇文章的,所以主要修改两处地方就可以了. 1.user.xml 2.Mybatis_first.java user.xml ...
- 【HTML点滴】WWW简介
www 什么是WWW www(world wide web),又称为万维网,或通常称为web,是一个基于超文本方式的信息检索服务工具. WWW的工作模式 C/S结构(client/server结构), ...
- Jquery在线引用地址
Jquery在线引用地址: 1. 很多网站都是使用这种方式引入,客户的浏览器可能已经缓存过了 jquery.可以直接调用本地的,速度更快… 2. Google code 使用了 cdn 技术在很多地方 ...
- UITableViewDataSource协议
前言: 在iOS开发中,表视图UITableView 是我们做UI界面设计时的重要视图. 那么,使用表视图UITableView 需要遵守哪些协议呢? <UITableViewDataSourc ...
- 解决ReSharper自动删除换行
使用Devexpress+ReSharper进行开发,似乎是C/S开发的最佳搭配. 但在ReSharper使用时,发现一个非常烦人的问题:即按F5进行调试时,自动删除换行,这样不仅把代码搞乱了,而且有 ...
- 基于SharePoint 2013的论坛解决方案[开源]
前言 这是自己在空闲时间里,为了提高对SharePoint的认识和熟悉技术,做的一个Demo.可能不尽完善,但是基本功能都已经有了,欢迎大家评论和提意见.自己也会在把源代码放到Github上进行开源, ...