最近因为娃白天睡觉不太踏实,打算搞一个局域网实时监控,在娃睡觉时打开监控,如果这样就不用时不时的进去看看娃的状态了,本篇是在 树莓派 + PiCamera 打造局域网实时监控 – Version 1 基础上的升级版,第一版因为画面十分卡顿,原因是因为树莓派即要捕获视频又要进行压缩处理,导致性能跟不上,就放弃了,又上网搜寻了另外的教程,结果发现居然可以做成一个 RTSP(real time stream protocol, 实时串流协议) 视频推送服务,只管推送视频流,不用进行视频压缩处理,降低了系统开销,可以解决画面卡顿的问题。另外,今年 双11 剁手了一台戏称买软件送硬件的 群晖NAS 用来存储娃成长的照片,发现群晖的 Surveillance Station 支持添加自定义的 RTSP 设备,并且支持活动检测,于是就有了这个第二版实现。
需要的东西:
1.群晖NAS 一台,我用的是双盘位 DS218j
2.树莓派 1 2 3 代随意,1 代就已经够用啦,并安装了 Raspbian
3.树莓派摄像头模块 PiCamera
4.移动电源,方便给树莓派供电
5.无线网卡(仅 1 代需要,3 代已集成 wifi 芯片)
[amazon_link asins=’B01MSQKXBZ,B07CZWK3XM,B00QLU4AKY,B07H2D4WYR,B01M9820G8,B079NL692X,B00H93BXIY,B072KKHVPK’ template=’CopyOf-ProductGrid’ store=’boyd-23′ marketplace=’CN’ link_id=”]
树莓派部分
1.树莓派摄像头配置
关于树莓派摄像头配置请参考 树莓派 + PiCamera 打造局域网实时监控 – Version 1 配置摄像头模块 部分
2.安装 VLC
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议,通过以下命令安装 VLC
sudo apt-get install vlc
vlc 会提供一个命令行接口,cvlc,我们用它来实现一个 rtsp 服务,视频来源于 raspbian 自带的应用 raspivid,因此实现原理就是 raspivid 采集视频数据,并且通过管道符传递给 cvlc 提供视频推送服务
步骤如下:
a)在 home 目录下通过
nano stream-rtsp.sh
创建一个脚本
b)输入如下内容:
#!/bin/bash raspivid -o - -t 0 -w 1000 -h 576 -fps 20 -b 250000 | cvlc -vvv stream:///dev/stdin --sout '#rtp{access=udp,sdp=rtsp://:8554/stream}' :demux=h264
你可以视情况更改其中的 -w(视频宽度) -h(视频高度) -fps(每秒帧数) 和 –sout 里面的端口号,修改完后按 CTRL + x
保存退出,设置成上面命令里的值视频会比较流畅
c)赋予脚本可执行权限,在home目录下
sudo chmod +x stream-rtsp.sh
下来你就可以运行这个脚本进行测试了:
sudo ./stream-rtsp.sh
d)设置开机自启动,借助于 Screen 这款软件
1)安装 screen
sudo apt-get install screen
2)使用 nano 编辑 /etc/rc.local 文件,
# start streaming video su - pi -c "/usr/bin/screen -dmS stream /home/pi/stream-rtsp.sh"
树莓派的配置部分到此结束,下来一步步配置 群晖的 Surveillance Station 并添加设备
群晖NAS 部分
1. Surveillance Station 安装:
a)请确认计算机和 Synology NVR 已连接到相同本地网络。
b)打开浏览器,在地址栏内输入以下内容之一:
- find.synology.com(仅适用于计算机和 Synology NVR 皆连接到 Internet 的情况)
- NAS 服务器名称,接着输入 :5000 或 :5001,例如 http://diskstation:5000 或 https://diskstation:5001(具体名称取决于在初始设置中所作的设置)
- NAS IP 地址,接着输入 :5000 或 :5001,例如 http://192.168.48.14:5000 或 https://192.168.48.14:5001(IP 地址取决于初始 DSM setup 设置)
c)如果启用 Surveillance Station,在主菜单中将显示应用程序图标
d)单击 Surveillance Station 图标可在新窗口中启动它
2.添加 RTSP 设备
a) 打开刚才安装的 Surveillance Station,点击网络摄像机
b) 点击新增 -> 新增摄像机
c) 在品牌处选择 用户自定义,会跳到 rtsp 设备的添加界面
d) 依次填入 名称,类型和地址,注意地址应该按照提示的格式:
rtsp://[pi username]:[pi password]@[pi ip]:[pi port]/[resource url]
例如:
rtsp://pi:raspberry@192.168.1.100:8554/stream
可以点击测试连接按钮,测试一下是否配置正确,如果正确应该会显示图像,这样树莓派就和群晖 NAS 连接起来啦。
手机部分
这次我们不直接打开网页了,而是用到群晖开发的一款叫做 DS Cam 的软件,可以方便的查看实时画面,和历史保存视频,支持多机位同时监控。
iOS版(请自行在 App Store 中搜索 DS Cam 下载),
安装完成后填入 群晖NAS 的 QuickAccessID,用户名和密码即可查看监控画面,也可以查看之前录制的视频,最后上一张它们的合影吧(纸盒子里是树莓派 1 代,树莓派的下面是充电宝)
参考链接
ACHIEVING HIGH FRAME RATE WITH A RASPBERRY PI CAMERA SYSTEM
请问一下vlc推流rtsp是否可以加密?对隐私性是否有保护?会暴露在公网上吗?
可以加密的,这个本来是在局域网里用的,讲道理不会暴露在公网上,如果你要把任何视频通过公网传输就一定会暴露在公网上