简介

Shinobi 是一个开源的网络视频录像机(NVR),支持多种摄像头和协议。它具有优秀的用户界面,支持实时视频流,视频录制和回放等功能。

该项目同时提供付费授权,主要集中在扩展功能,例如摄像头的 P2P 远程查看和移动端的功能等

官网的 Docker 镜像版本较低,同时官网和 gitlab 的安装说明比较简陋,这里重新打包容器镜像的方式说明

Dockerfile

mkdir -p /tmp/video
cd /tmp/video
git clone --branch dev https://gitlab.com/Shinobi-Systems/Shinobi.git ./
mv Dockerfile Dockerfile.old
vim Dockerfile
docker build -t video:9.25 .
FROM node:20-bullseye-slim

ENV DEBIAN_FRONTEND=noninteractive

ARG SHINOBI_BRANCH=dev

RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN apt-get update && apt-get install -y \
    build-essential \
    curl \
    git \
    ffmpeg \
    default-mysql-client \
    && rm -rf /var/lib/apt/lists/*  # Clean up to reduce image size

#RUN git clone --branch $SHINOBI_BRANCH https://gitlab.com/Shinobi-Systems/Shinobi.git /opt/shinobi

WORKDIR /opt/shinobi
COPY . ./
RUN npm config set registry https://mirrors.huaweicloud.com/repository/npm/
RUN npm install && npm install pm2 -g

WORKDIR /home/Shinobi

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 8080

ENTRYPOINT ["/entrypoint.sh"]

video.yml

  • data 保存数据和配置文件
  • mysql 保存数据库文件
/dev/shm 是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。/dev/shm/Shinobi/streams用户存放一些临时的视频片段,当持久化到videos目录后,streams中的数据会被删除。
version: '3'
services:
  shinobi:
    image: video:9.25
    container_name: video
    volumes:
      - /dev/shm/ShinobiRAM:/dev/shm/streams
      - /data/video/data:/home/Shinobi
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3002:8080"
    environment:
      - HOME=/data/video
      - DB_HOST=shinobi-sql
      - DB_USER=ccio
      - DB_PASSWORD=1234
      - DB_DATABASE=ccio
      - SHINOBI_UPDATE=false
    depends_on:
      - shinobi-sql
    restart: unless-stopped
    networks:
      - video-net

  shinobi-sql:
    image: mariadb:10.11.6
    container_name: shinobi-sql
    volumes:
      - /data/video/mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=ccio
      - MYSQL_USER=ccio
      - MYSQL_PASSWORD=1234
    restart: unless-stopped
    networks:
      - video-net

networks:
  video-net:    

配置

创建管理用户

输入 http://192.168.182.53:3002/super 进入超级用户的登陆页面,默认用户名 admin@shinobi.video/admin

登陆面板添加摄像头

输入 http://192.168.182.53:3002 登陆管理面板添加对应的摄像头
rtsp://admin:1111@192.168.11.41:554/1/1?transmode=unicast&profile=vam


  • 无标签
写评论...