远程视频监控系统采用树莓派作为智能终端,通过CSI摄像头获取当前老年公寓内环境的视频信息,树莓派的得到视频信息后,通过支持树莓派的mjpg-strmera开源软件[17],将视频传输到各个设备上,系统框图如图
4.2.3安装依赖包和下载软件
命令行输入:sudo apt-get install libjpeg8-dev cmake,因为本系统要用到mjpg-strmera这款开源软件,而这个开源软件的依赖包libjpeg8-dev cmake是要对该软件进行编译的软件。mjpg-stramer是一个支持树莓派相机的开源软件,它其实是一个命令行应用程序,将JPEG帧从一个或多个输入插件复制到多个输出。可以用来在基于ip的网络上从网络摄像头传输JPEG文件到各种各样的设备上,如Chrome、VLC和其他能够接收MJPG流的软件。它是为嵌入式设备编写的,在RAM和CPU方面的资源非常有限的情况下它体现出了非常好的优越性。在命令行输入:
wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip(下载安装包)
unzip master.zip(解压安装包)
4.2.4修改软件配置
在系统调试中,我发现帧率在30帧左右时,视频很流畅,也不会对树莓派造成大的运行负荷。在命令行输入:
cd mjpg-streamer-master/mjpg-streamer-experimental(切换到下载的mjpg-strmera文件下):
sudo nano plugins/input_raspicam/input_raspicam.c(编辑配置文件)然后进行修改帧率,视频宽度、视频高度,修改后保存编译。
4.2.5调试局域网内视频监控功能
与测试温湿度物联网监控功能不同,因为这个开源软件采用了c语言编写,这里采用命令行输入代码测试本系统,命令行输入sudo ./mjpg-streamer -i’’./input_raspicam.so”-o”./output_http.so-w./www”,运行。打开和树莓派在同一局域网下的任意一个智能终端如手机电脑等,在其浏览器中输入树莓派IP地址+8080(树莓派运行mjpg-strmera软件的派监听端口),如果系统已经正常,可以得到如图4-8所示的画面:
4.2.6远程视频监控系统常见故障及处理方法
在局域网内远程视频监控系统中常见故障主要有以下几个方面:
(1)错差或未插入CSI摄像头,树莓派没有识别到摄像头
解决方法:命令行输入:raspistill -t 5000 -0 szbxm.jpg,若执行后系统提示 NO data received from sensor,则表明摄像头未能正常插入,请参考3.1.3节中CSI摄像头的正确接入方法。
(2)得到视频画面不流畅
解决办法:这个故障是画面视频帧数设置不合适,另外网络的波动也会引起视频不流畅,
5.2为远程视频监控系统添加启动脚本和内网穿透
5.2.1任务需求
远程视频监控任务只是实现了在程序测试时的顺利运行,但是本系统要求的是在系统需要时,可以由护理员进行简单的操作去打开,而不需要输入代码。故而本系统决定编写可执行的脚本文件,这个脚本可以在Raspian操作系统下通过终端模拟器执行[23],同时可以通过关闭给脚本的执行线程关闭该服务,这样的操作可以让护理员快速掌握,也可以避免老人不在公寓内时,摄像头占用树莓派运行内存。
除此而外,本系统另一个特色就是要提供了外网访问老人生活视频的实时视频,所以本系统还需搭建内网穿透功能。经过调研,选择了花生壳[24]这一款在内网穿透方面技术成熟的软件。
5.2.2实现方法
(1)编写启动脚本
mjpg-streamer文件夹下,命令行输入:sudo nano_web_video.sh(新建脚本文件),然后写入一下代码:
cd/test/mjpg-streamer-master/mjpg-streamer-experimental./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"(将输入设定为树莓派视频输入,输出设定为浏览器输出),Ctrl+x保存退出。
(2)给予脚本权限
命令行输入:sudo chmod+x start_web_video.sh。
(3)添加内网穿透功能
在系统修改配置中,将视频输出的监听端口设置为8080端口,注册得到花生壳内网穿透服务。添加映射,得到外网访问地址
(4)远程视频功能调试
远程视频监控功能并不是时时刻刻都打开,因为老人不在公寓的时间段内如果也开启视频监控,无疑是对资源的浪费。所以在启动时进入图形化界面,点击start_web_video.sh可以随时打开视频服务,局域网内然后再浏览器输入:http://ip+8080。外网输入花生壳分配的外网地址,可以实时查看实时监控视频。
5.2.3远程内外网视频监控常见故障及处理方法
(1)外网无法访问视频图像
解决办法:检查花生壳内网穿透功能是否打开,外网远程监控视频系统必须保证花生壳软件在后台一直保持运行,这样外网才能访问得到持续的视频。
(2)外网访问视频不流畅
解决办法:因为本系统采用的花生壳软件是免费体验版,在客户使用高峰期,可能会因为网络原因而带来一定的视频延迟,此问题解决办法为购买花生壳付费版业务,以提高视频流畅度。另外树莓派自身所连接的网络也可能导致视频出现不流畅的情况,所以请更换网络。