开源视频监控服务器Shinobi

什么是 Shinobi ?

Shinobi 是用 Node.JS 编写的开源 CCTV 解决方案。采用多帐户系统、WebSocket Streams 和直接保存到 MP4 的设计。Shinobi 提供了一个基于 Web 的用户界面,使用户可以通过浏览器来查看和管理监控视频,Shinobi 支持多个品牌的摄像头和网络视频流,并提供了广泛的定制选项。

安装

在群晖上以 Docker 方式安装。

镜像下载

Docker Hub 上的版本还是两年前的

现在的镜像发布在 gitlab registry,一共有 6tags ,老苏选择了 latest,对应的是 CPU版,如果你的设备带 nvidia显卡,可以考虑选择 nvidia 的版本,这个版本支持 GPU (NVIDIA CUDA)

新旧两个版本对比一下,尺寸差距还是很大的

SSH 客户端登录到群晖后,执行下面的命令拉取镜像

1
2
# 拉取镜像
docker pull registry.gitlab.com/shinobi-systems/shinobi:latest

如果拉不动,这回 docker 代理网站:https://dockerproxy.com/ 似乎也帮不上忙了

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 新建文件夹 shinobi 和 子目录
mkdir -p /volume1/docker/shinobi/{config,customAutoLoad,database,plugins,videos}

# 新建临时文件存储文件系统
mkdir -p /dev/shm/Shinobi/streams

# 进入 shinobi 目录
cd /volume1/docker/shinobi

# 启动容器
docker run -d \
--name=shinobi \
--shm-size=2048m \
-p 8686:8080 \
-v $(pwd)/config:/config \
-v $(pwd)/customAutoLoad:/home/Shinobi/libs/customAutoLoad \
-v $(pwd)/database:/var/lib/mysql \
-v $(pwd)/plugins:/home/Shinobi/plugins \
-v $(pwd)/videos:/home/Shinobi/videos \
-v /etc/TZ:/etc/TZ:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /dev/shm/Shinobi/streams:/dev/shm/streams \
registry.gitlab.com/shinobi-systems/shinobi:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3'

services:
shinobi:
image: registry.gitlab.com/shinobi-systems/shinobi:latest
container_name: shinobi
shm_size: 2048m
ports:
- 8686:8080
volumes:
- ./config:/config
- ./customAutoLoad:/home/Shinobi/libs/customAutoLoad
- ./database:/var/lib/mysql
- ./plugins:/home/Shinobi/plugins
- ./videos:/home/Shinobi/videos
- /etc/TZ:/etc/TZ:ro
- /etc/localtime:/etc/localtime:ro
- /dev/shm/Shinobi/streams:/dev/shm/streams

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 shinobi 和 子目录
mkdir -p /volume1/docker/shinobi/{config,customAutoLoad,database,plugins,videos}

# 新建临时文件存储文件系统
mkdir -p /dev/shm/Shinobi/streams

# 进入 shinobi 目录
cd /volume1/docker/shinobi

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8686/super 就能看到管理员登陆界面

默认管理员用户名: admin@shinobi.video 密码: admin

登录成功

新建用户

首先记得,安全起见,请重置帐户admin@shinobi.video 的密码

新建一个用户

只要设置邮件、密码即可,其他项可以根据需要设置

Max Storage Amount 表示最大可用存储,例如可以设置为 10000,表示 10G

设置中文

在浏览器中输入 http://群晖IP:8686,使用刚刚创建的账户登陆

登录成功之后

左侧菜单找到 Account Settings –> Preferances –> Dashboard Language

下拉找到 zh,点右下角的 Save 按钮保存,刷新页面之后就可以了

不过老苏觉得,这翻译水平估计是用软件自动翻的,反而有点看不懂了,所以后面还是按英文界面截的图

添加摄像头

左侧菜单找到 Monitor Settings 开始添加摄像头

填入摄像头主流 RTSP 地址

如果有的话,填入摄像头子流 RTSP 地址

其他都是先用的默认值,保存

使用

回到左侧菜单 Monitors,后面的数字已经从 0 变为了 1

Videos 中过一会儿会有录像

还可以设置区域检测

录像保存在群晖上,这下就是 SD 卡挂了,也不用担心没有录像了

功能挺多的,慢慢来摸索吧,不过内存占用还是有点高的

参考文档

Shinobi Systems / Shinobi · GitLab
地址:https://gitlab.com/Shinobi-Systems/Shinobi

Shinobi - Simple CCTV and NVR Solution - Home
地址:https://shinobi.video/

Docker · dev · Shinobi Systems / Shinobi · GitLab
地址:https://gitlab.com/Shinobi-Systems/Shinobi/-/tree/dev/Docker

ShinobiDocs
地址:https://docs.shinobi.video/

linux - When should I use /dev/shm/ and when should I use /tmp/? - Super User
地址:https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp