树莓派3B应用篇之视频监控(中)

上篇说到相机的拍照、录像测试以及实现定时拍照、录像。

这一篇,我来说说更强大的一款软件,motion,他可以进行运动捕捉,同时可以将监控的画面实时传送出来。

一、motion的安装

使用apt命令安装:
sudo apt-get install motion

二、motion的配置
先用下面的命令在设置模式下启动motion:
motion -s
如果看到如下提示:
File of type 1 saved to: ./xxxxxxxxxxxx.jpg
这说明motion已经安装成功,并且你的摄像头与motion软件正常配合工作。


接下来我们要对motion进行配置。

使用nano文本编辑器对motion的配置文件/etc/motion/motion.conf进行修改:
nano /etc/motion/motion.conf


完整的配置文件代码我就不附上来了,太多行了。我说一下一些重要的参数。

daemon代表守护进程。

height、width和framerate分别代表捕捉画面的高、宽与帧率。

threshold代表触发画面捕捉的动作敏感值,数值越小越敏感,可以捕捉更细微的动作。根据需要设置,但需要注意,数值太小可能导致捕获太多无用的画面,浪费存储空间。

ffmpeg_cap_new代表是否拍摄运动视频。

ffmpeg_cap_motion代表是否使用ffmpeg库进行拍摄图片。(注意这不影响拍摄jpg格式图片,也不影响ffmpeg_cap_new是否生效)

ffmpeg_video_codec代表拍摄视频的编码,默认为swf。

locate打开将会在捕捉运动时将运动区域框起来。

target_dir代表图片与视频的存储位置,默认为/tmp/motion,这是临时文件存放的文件夹,重启后会清空其中内容,如果你想保存这些照片,请设置到其他目录下。

webcam_localhost打开就仅限本地浏览器打开进行实时观测(只能在树莓派中的浏览器打开网络访问)。

control_localhost打开就仅限本地浏览器打开控制。

关于这些设置的具体含义,大家如果对其他还感兴趣,可以看一下这篇文章:

http://www.cnblogs.com/gengzj/p/3827120.html



这里我们先不对其他参数进行设置,仅在配置文件中将webcam_localhost和control_localhost的参数设置为off,保证非内部浏览器也可以访问端口即可:

webcam_localhost off
control_localhost off


三、局域访问

执行命令:

sudo motion -n

将返回很多信息,如果有“Started stream webcam server in port 8081”,说明motion的non-daemon(非守护进程)模式启动成功,将启用两个端口:8080和8081,其中8080是控制端口(control_port),8081是远程浏览端口(webcam_port)。

假设此时树莓派在局域网内的ip为192.168.0.160,那么在同一个局域网下的设备都可以通过http://192.168.0.160:8081来实时查看motion的画面。建议使用chrome浏览器。

此法可行,但是非守护进程模式是阻塞shell的,也就是说在该模式运行时,想要进行其他任务就无法在shell运行了。这时,可以运行daemon模式:

nano /etc/default/motion
显示:

# set to 'yes' to enable the motion daemon
start_motion_daemon=no
默认情况下,motion的守护进程模式是不启动的,想要启动的话需在此将“no”改为“yes”。

nano /etc/motion/motion.conf
找到配置文件中的:

daemon off
改为:

daemon on
接下来用命令sudo motion即可进入daemon模式,有提示“Motion going to daemon mode”。此时在浏览器中访问 http://192.168.0.160:8081也可以查看实时画面。

树莓派3B应用篇之视频监控(中)_第1张图片
图1

四、广域访问


这部分请参考我的文章《外网访问内网服务器的方法汇总》中的方法,可以实现广域网对树莓派的访问,让你在外时也能通过网络查看家中树莓派捕捉的实时画面。



这一篇就到这了,下一篇介绍邮箱配置以及使用树莓派进行监控并将图片自动发送到邮箱。


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2017/1/30添加


有人问到局域访问中进入守护模式(sudo motion)出现错误:

[0] Processing thread 0 - config file /usr/local/etc/motion.conf                                                                                                                                
[0] Motion 3.2.12 Started                                                                                                                                                                       
[0] Motion going to daemon mode                                                                                                                                                                 
[0] Exit motion, cannot create process id file (pid file) /var/run/motion/motion.pid:
该如何解决;我查了下,应当是运行motion时突然断电造成文件没有删除,因而无法正常启动。

解决办法为:在root权限下执行:

mkdir /var/run/motion
chmod a+rwxt /var/run/motion
即可解决问题了。

你可能感兴趣的:(树莓派)