当前位置: 主页 > 新闻资讯 > 殡葬知识

NVR in docker: 探索使用Shinobi搭建家用场景视频监控录像系统,支持云端准实时查看录像

2024-08-26 06:05   作者:佚名

2023-12-30 10:58:07 14点赞 96收藏 19评论

本文纯属自娱自乐,如果你认为使用品牌监控一步到位就可以了,那就不用继续往下看了。

本文仅用于记录自己折腾家用监控系统的过程,也推荐给和我一样爱折腾docker/linux服务器的站内值友。

以下正文


家用监控越来越普及,包括室内/入户/庭院等场景。我的需求是在入户门厅布控,当有人来时进行抓拍或者录像,平时不用录像。一般的家用监控摄像头或者智能门铃设备可以完全满足我的需求,但是爱折腾的我怎么会满足于买一个品牌摄像头+云存储(还要收费)的简单方案。

当然要利用已有的设备--Linux小主机,最好可以用Docker部署视频监控软件,再外接硬盘(已有),IP摄像头通过局域网接入监控软件,在后端(监控软件)进行目标检测,然后在检测到目标或者运动后触发录像->保存到硬盘。后端小主机+监控软件+硬盘有点类似一套NVR (network video recorder)。

视频监控软件可以用NAS上自带的产品,比如威联通的QVR Pro,但是考虑到不给NAS增加额外负载所以放弃。

经过非常不完全调查,可以用Docker部署的视频监控软件知名的有以下几款:

  • Frigate - NVR With Realtime Object Detection for IP Cameras, 12.4k stars

  • Shinobi - the Open Source CCTV Solution written in Node.JS. Designed with multiple account system, Streams by WebSocket, and Direct saving to MP4. Shinobi can record IP Cameras and Local Cameras. 1.3k + 600 stars

  • moonfire-nvr - a security camera network video recorder, 1k stars

  • OS-NVR is a lightweight extensible CCTV system, 100+ stars

实际尝试了Frigate和Shinobi,前者由于CPU占用过高放弃(可能是没配置好)。相比Frigate,Shinobi的web页面看起来更加专业,资源占用也少的多。后两款没有尝试,不做评论。

NVR in docker: 探索使用Shinobi搭建家用场景视频监控录像系统,支持云端准实时查看录像

最终方案为:IP摄像头(废旧pad或者手机)+Linux小主机(部署Shinobi)+外接硬盘+(阿里云同步),括号内可选,可实现检测到目标或者运动触发录制,(准实时在云端查看监控录像)。

最终硬件: 废弃多年的小米平板(安装IP摄像头APP)+Linux小主机+USB外接硬盘(绿联硬盘盒+海康OEM),这些设备都是复用的,并不是为了监控专门购置。

硬件环境硬件环境

题外:如果对上面这个服务器监控小屏幕感兴趣可以移步

Shinobi是一款开源视频管理软件,它可以接入网络摄像头/USB摄像头,具有实时录制/回放、运动检测、目标检测等完整功能,免费版完全够用。详细功能请前往官方特性页查看。

Shinobi on githubShinobi on github

原项目1.3k stars说明确实是一个非常成功的开源项目。目前项目在gitlab上还在不断更新。

Shinobi on gitlabShinobi on gitlab

Shinobi支持通过Docker部署,大大减少了对环境的依赖程度和部署难度。在Linux小主机上部署Shinobi并接入网络摄像机,小主机再外挂一块硬盘,可以简单搭建一套家用网络录像系统(NVR)。

在宿主机上新建shinobi对应的几个目录(以下路径根据实际情况调整):

1. 新建文件夹 shinobi 和 子目录

mkdir -p /mnt/hdd_hikvision/shinobi

mkdir -p /mnt/hdd_hikvision/shinobi/{config,customAutoLoad,database,plugins,videos}

说明:

config目录保存配置文件

database保存数据库shinobi自带mysql数据库,该目录将容器内部的数据库文件映射到宿主机目录

videos目录存放记录的视频片段

上面的目录在初次容器启动前保持为空即可。

2. 新建临时文件存储文件系统

mkdir -p /dev/shm/Shinobi/streams

说明:

/dev/shm 是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。/dev/shm/Shinobi/streams用户存放一些临时的视频片段,当持久化到videos目录后,streams中的数据会被删除。

streams目录streams目录

3.镜像

拉取镜像registry.gitlab.com/shinobi-systems/shinobi:dev。这个镜像比较大,1.55G。也可以在部署时拉取。

NVR in docker: 探索使用Shinobi搭建家用场景视频监控录像系统,支持云端准实时查看录像

按照官方说明 Install Shinobi with Docker 来实现部署。

sudo docker run -d --name='Shinobi'
-p '28080:8080/tcp'
-v "/dev/shm/Shinobi/streams":'/dev/shm/streams':'rw'
-v "/mnt/hdd_hikvision/shinobi/config":'/config':'rw'
-v "/mnt/hdd_hikvision/shinobi/customAutoLoad":'/home/Shinobi/libs/customAutoLoad':'rw'
-v "/mnt/hdd_hikvision/shinobi/database":'/var/lib/mysql':'rw'
-v "/mnt/hdd_hikvision/shinobi/videos":'/home/Shinobi/videos':'rw'
-v "/mnt/hdd_hikvision/shinobi/plugins":'/home/Shinobi/plugins':'rw'
-v '/etc/localtime':'/etc/localtime':'ro'
registry.gitlab.com/shinobi-systems/shinobi:dev

部署完成,可以从浏览器进入管理页面

Web地址(管理端):http://HOST-IP:PORT/super

默认超级用户 : admin@shinobi.video; 密码:admin

Web地址(客户端):http://HOST-IP:PORT,用户和密码通过管理端设置。

PORT为容器映射到宿主机的端口,上面脚本中 -p '28080:8080/tcp' 说明宿主机的端口为28080,可以自行修改。

Shinobi的功能比较完整,界面也比较丰富。但是,要很好的使用这个系统还是需要一些学习成本,个人感觉整个系统的设计对监控新手并不算友好。下面从纯新手的角度介绍下使用方法。

通过默认超级用户{admin@shinobi.video}登录管理端(http://HOST-IP:PORT/super),然后新建用户用以日常管理。

填写用户名,可以是email,也可以其他。[Group Key] 为用户组,与视频存放的目录结构有关,个人使用可以不关心。其他属性先按照默认。

新建日常管理用户新建日常管理用户

上述用户新建完成后,可以登录http://HOST-IP:PORT。

用上述新建的用户登录,找到左边[Monitor Settings],然后在页面中填写摄像头信息,最后记得在右下角点击[SAVE]保存。

NVR in docker: 探索使用Shinobi搭建家用场景视频监控录像系统,支持云端准实时查看录像

这里以网络摄像头(IP Camera)为例,有几个关键信息需要解释下:

Identity区域的[Mode]选项:Watch-Only,可以查看摄像头,默认不录视频,可以配置事件触发录像;Record,全程记录模式,默认每隔15分钟保存一次录像。

ModeMode

视频压缩不建议开启,特别是在record模式下。如果视频录制速度快于压缩速度,那么可能产生问题。而且,如果CPU性能一般,视频压缩会长时间让CPU负载在较高值,还需要探索下是否有硬件加速功能。

NVR in docker: 探索使用Shinobi搭建家用场景视频监控录像系统,支持云端准实时查看录像

Connecttion区域,在[Full URL Path]中填写rtsp码流的地址,这个可以从摄像头中查看,一般格式类似 rtsp://{username}:{password}@CAMERA_IP:PORT,''); dataLayer.push({'event':'1200025','operation':''+gztext+''});" class="z-group-data J_zhi_like_fav J_zhi_like_fav_detail" title="收藏" data-channel="11" data-article="95948361" data-type="fav" data-aid="a0xrewk0" data-cid="11" data-atp="76" data-tagid="无" data-position="无" data-isdetail="1" data-cate="无"> 96 19

同类文章推荐
11月09日湖人vs火箭数据统计-虎扑NBA原创报道
中央财办有关负责同志详解 二〇二三年中央经济工作会议精神
NBA最佳防守一阵太水?其中存1大误解 联盟亲自酿错
换血回电,再战三年 ── Mac 优化不完全指南
《2023篮球世界杯》【回放】菲律宾vs中国中文解说全场回放
经济结构调整

咨询登记

平台注册入口