• 开源视频监控服务器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 客户端登录到群晖后,执行下面的命令拉取镜像

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

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

    命令行安装

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

    # 新建文件夹 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

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

    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
    • 14
    • 15
    • 16
    • 17
    • 18

    然后执行下面的命令

    # 新建文件夹 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行

    在浏览器中输入 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

  • 相关阅读:
    表单基本操作
    关于webpack面试题
    AVL树到底是什么?
    Iterator 和 ListIterator 的区别(简要说明)
    Dubbo入门使用
    Unity 灯光组件Light
    18. 深度学习 - 从零理解神经网络
    Mysql - shell脚本操作Mysql数据库
    Android红外功能模拟触摸鼠标事件唤醒屏幕
    std::thread::id如何转换为字符串或整数
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/132845218