需求?当然不是为了艳照。你们这些猥琐的人类!

毕竟家里总会有没人的时候,出门走到半路忘记煤气灶是不是关了,还得回去看看。

在这个科技以人为本的时代,当然应该是拿出智能手机联网看看啦。还有万一有人闯空门什么的,也能有个及时报警什么的。

motion是什么?motion是一个提供视频监控解决方式的开源软件。支持Linux/FreeBSD/MacOS等多个平台。本文以Linux为例,測试平台是LinuxMint17。motion的功能主要有下面几个:

支持USB摄像头和webcam(可通过HTTP查看实时视频直播的摄像头)
支持多摄像头
提供web訪问实时视频功能(能够把USB摄像头变成webcam)
重点是运动检測,能够在画面中出现活动物体时才開始拍摄并记录。以节约存储空间
能够配置在运动事件发生时拍照(连续拍照,可选保存全部照片或仅仅保存一张。保存一张可选保存第一张,最好的一张,或是运动在画面中央的一张)
能够配置各种事件触发(比方在运动检測发生时或者视频照片保存后发个邮件什么的)
能够配置web远程管理(用处不大。建议关闭)
能够配置使用数据库(支持MySQL和PostgreSQL)
……

当然,当中的web实时视频和web管理默认都仅仅能本机訪问,不建议配置为直接同意远程訪问,不安全。更安全的做法是:通过一个加密的web代理提供远程訪问,或者干脆就仅仅能通过ssh tunnel连到本地訪问。

为了手机訪问方便的话。还是前者吧。

开工。

LinuxMint上安装非常easy,apt-get就可以,只是它还依赖了ffmpeg,会自己主动装上。

然后是配置,有好几种配置方式,比方常见的配置到~/.motion下什么的,只是我还是建议直接改动/etc/motion/motion.conf比較好。否则搞出太多配置文件,会搞不清终于生效的是哪个。

配置文件中每一个选项都有备注说明。就不一一介绍了。通常须要改的几个參数有:

daemon off - 一般就off好了,须要后台执行能够用 service motion start 来启动

videodevice /dev/video0 - 一般USB摄像头默认就是这个,假设有多个的话就以此类推

v4l2_palette 8 - 一般就用8好了,尽管并非全部的摄像头都是这个模式(至少我手里两个各自是3和6)。但事实上motion会自己主动检測选择合适的。关于这个參数有一点须要说明的是,在motion的早期版本号中支持了18种,如今仅仅有9种,当中有一些老式摄像头使用的SGBRG8模式(GBRG)在新版本号的motion中已经不再被支持,请更换新的摄像头。不建议使用motion文档评论区有人提供的补丁。

眼下市场上常见的RGB24或YUY2之类的都没问题

width/height - 建议依据摄像头改动,默认的320x240太低了。如今最低端的摄像头也至少是640x480的,连352x288的都已经没有了

framerate 2 - 默认的2有点低。可是太高的话占用的存储空间也会大。自己考虑决定吧

output_normal on - 检測到运动时拍照,on为保存全部拍的照片(会非常多)。可选关闭。第一张,最佳。中央

ffmpeg_cap_new on - 检測到运动时录像

ffmpeg_video_codec swf - 支持多种视频文件格式。只是要通过网页看的话,推荐还是swf格式

target_dir - 照片和视频的默认存放路径。注意:motion 默认以motion用户执行。所以这个路径的权限要注意一下

webcam_port 8081 - 实时查看视频的HTTP端口

control_port 8080 - 管理motion的WEB页面端口

以上两个设置为0就可以关闭对应功能

配置文件最后的 thread 參数用于指定多个摄像头时其他摄像头使用的配置文件

按自己的须要改动好配置文件以后就能够启动motion了:

sudo service motion start

命令行上会有一些提示信息,可是不太全,只是没关系,还有日志嘛:

tail -f /var/log/syslog

假设有错误。请依据错误信息检查改动配置文件,直到服务正常启动。

如今就能够用浏览器打开: http://localhost:8080 查看实时视频,假设是一块灰图,说明摄像头配置不正确,请查看日志。

事件触发的配置也在配置文件中。经常使用的有:

on_event_start - 运动事件開始
on_event_end - 运动事件结束
on_picture_save - 图片保存后(可选參数 %f 为对应的图片文件名称)
on_movie_end - 视频保存后(可选參数 %f 为对应的视频文件名称)

这几个选项的參数都是可执行文件名称,能够自己写一些脚本触发执行,比方发个邮件以便及时收到通知(或利用手机运营商提供的邮箱转成短信提醒),或上传到云端(防止丢失证据)。

至此大功告成。

补充说明:

眼下我仅仅在Linux下測试成功,FreeBSD下有困难。原因在于摄像头驱动不好搞。尽管我一向喜欢FreeBSD多些,可是碰到硬件驱动问题还真是没办法。

FreeBSD版的motion本身应该是没有多大问题。问题在于它使用一个叫PWCBSD的东西来做摄像头兼容处理。由于大部分摄像头都能够被V4L(Video for Linux)所驱动,这个PWCBSD则是实现了部分摄像头的V4L驱动在BSD上的兼容,问题在于它实现的型号太少,反正我手头上的几个都不行。所以全然没法用。

更坑的是PWCView倒是支持的摄像头比較多一些——注意,是ports里另外一个单独的PWCView。不是PWCBSD自带的那个PWCView。

所以我眼下的办法是用一个python程序去调用PWCView来实现部分motion功能,由于功能非常简陋。就不献丑了。

推荐还是用Linux吧,省事非常多。

用motion实现家庭视频监控的更多相关文章

  1. 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 开源倾情奉献系列链接 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾 ...

  2. 【转】网络视频监控P2P解决方案

    一.摘要 本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案. 由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述 ...

  3. 基于.NET打造IP智能网络视频监控系统

    开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码   开源倾情奉献系列链接 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾情奉献:基于.NET打造 ...

  4. C# 视频监控系列:学习地址汇总

    原文地址:http://www.cnblogs.com/over140/archive/2009/04/07/1429308.html 前言 对于视频监控系统大家应该是不陌生的,实施的路况信息.地铁. ...

  5. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然

    from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...

  6. 如何利用SimpleNVR建立全天候远程视频监控系统

    随着社会经济的发展,5G.AI.云计算.大数据.物联网等新兴技术迭代更新的驱动下,传统的安防监控早已无法满足我们的需求.那么我们如何建立全天候远程视频监控系统来替代传统监控呢?如何进一步优化城市管理. ...

  7. 海康威视,大华,宇视 的视频监控iOS Demo

    原谅我只提供一个链接,我在这里写了两遍,最后加个链接页面卡死了,下面的demo,最好真机调试.(写博客还是在别的地方写复制到这里比较好!) 一个画面可以做,4个,9个,16个画面原理是一样的,集合到自 ...

  8. [视频监控]用状态机图展示Layout切换关系

    监控系统通常会提供多种Layout给用户,用于满足不同需求,如:高清显示单路视频或者同时观察多路监控情况. 文中系统只提供了单路.2x2(2行2列共4路).8路(4行4列布局,从左上角算起,有个核心显 ...

  9. Python远程视频监控

    Python远程视频监控程序   老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可 ...

随机推荐

  1. 线段树(segment tree )

    http://www.cnblogs.com/TenosDoIt/p/3453089.html 写的非常好! 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很 ...

  2. 简单暴力的TP5多主题方案

    一个小项目,需要配置多套前端主题.解决的思路是根据域名加载不同的主题配置. 一.在应用目录 application 下创建 common 目录. 二.application/common 目录下创建 ...

  3. 紫书 习题 11-12 UVa 1665 (并查集维护联通分量)

    这道题要逆向思维 反过来从大到小枚举, 就是在矩阵中一点一点加进去数字,这样比较 好操作, 如果正着做就要一点一点删除数字, 不好做. 我们需要在这个过程中维护联通块的个数, 这里用到了并查集. 首先 ...

  4. springboot 错误页面的配置

    springboot的错误页面,只需在templates下新建error文件夹,将404.500等错误页面放进去即可, springboot会自动去里面查找

  5. CodeVS 1789 最大获利

    1789 最大获利 2006年NOI全国竞赛  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master       题目描述 Description 新的技术正冲击着 ...

  6. MySQL 一台主机多实例root登录问题

    假设在一台机子上起多个MySQL实例. 比方port号为 3306. 3307. 3308 登录时候要选择不同的 mysql.sock文件 mysql -uroot -p123456 这一句 登录的是 ...

  7. swift 给导航添加item,实现界面的跳转

    //给导航添加item         var rightItem = UIBarButtonItem(title: "First", style: UIBarButtonItem ...

  8. zookeeper应用场景练习(分布式锁)

    在寻常的高并发的程序中.为了保证数据的一致性.因此都会用到锁.来对当前的线程进行锁定.在单机操作中.非常好做到,比方能够採用Synchronized.Lock或者其它的读写多来锁定当前的线程.可是在分 ...

  9. Visual Assist X 10.8.2036的Crack破解补丁.2014.05.22 (General release.)

    说起来,VA公布上一个Genreal Release版本号已经是过春节那阵子时候的事了,时间过得真快. VA小组又给我们带来了新版本号的Visual Assist编码助手的 2036 版本号, 这个版 ...

  10. hdu_1166,线段树单点更新

    在刷线段树,参考自http://www.notonlysuccess.com/index.php/segment-tree-complete/ #include<iostream> #in ...