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

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

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

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. cuDNN编写卷积实例

    转载至http://www.goldsborough.me/cuda/ml/cudnn/c++/2017/10/01/14-37-23-convolutions_with_cudnn/ Convolu ...

  2. 获取鼠标经过处的标签的标签名和id

    <script> var el = window.document.body; // 声明一个变量,默认值为body window.document.body.onmouseover = ...

  3. 使用windowbuilder的时候更方便——设置默认把控件生成为成员变量而不是局部变量

    找了一大圈,最后还是上Google才找到这个方法的.以前改过了,重新设置工作目录之后设置都丢失了,却找不到改的办法,这次长个记性,记在自己博客里. 设置成成员属性的好处是随后使用这些控件的时候方便.

  4. luoguP1555 尴尬的数字(暴力+map)

    题意 题解 枚举每一个可能的二进制数.扔到一个map里 再枚举每一个可能的三进制数看map有没有就行了 反正就是很水 #include<iostream> #include<cstr ...

  5. Android 购物车的实现

    实现了购物车的全选 全不选  选中删除   选中状态下数量添加时总价随之添加等基本功能. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L ...

  6. MAVEN自己主动部署到tomcat

    前面几篇文章maven生成的war包都是手动部署到tomcat,显然这样是非常麻烦的.那么这一篇文章就来介绍一个怎样使用maven高速自己主动的部署项目到tomcat容器中. 1.首先我们须要配置to ...

  7. POJ 3074 Sudoku DLX精确覆盖

    DLX精确覆盖.....模版题 Sudoku Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8336   Accepted: ...

  8. Atitit.运行cmd 命令行 php

    Atitit.运行cmd 命令行 php 1. 运行cmd 命令行,调用系统命令的基础 1 1.1. 实际运行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题.程序文件读取编码设置 1 1 ...

  9. bzoj1934: [Shoi2007]Vote 善意的投票(显然最小割)

    1934: [Shoi2007]Vote 善意的投票 题目:传送门 题解: 明显的不能再明显的最小割... st连同意的,不同意的连ed 朋友之间两两连边(即双向边) 流量都为1... 为啥: 一个人 ...

  10. hdoj--5563--Clarke and five-pointed star(简单几何)

    Clarke and five-pointed star Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...