轻量级的网络视频录像机OneNVR

在这里插入图片描述

本文题图中 NVR logo 由 AI 生成;

简介

什么是 OneNVR ?

OneNVR 是一个简单轻量的网络视频录像机(NVR),旨在运行于廉价硬件上,例如带有硬盘驱动器的 Raspberry Pi,支持从网络摄像头 24/7 录制视频流。用户可以通过本地网页界面浏览录制的文件。

主要特点

  1. 轻量级设计:专为低成本硬件优化,易于部署。
  2. 视频流保存:从网络摄像头录制的视频保存为 5 分钟的文件,以防文件损坏导致数据丢失。
  3. 自动文件处理:每日自动将前一天的视频文件连接为 24 小时的单一文件,并删除过期视频。
  4. 灵活配置:通过 config.yaml 文件配置,如视频保留天数、合并时间和删除时间等。
  5. 使用 ffmpeg:依赖 ffmpeg 进行视频流的连接和录制。
  6. 容器化部署:支持 Docker 部署,易于安装和管理。

应用场合

  • 家庭监控:适合家庭用户用于监控家庭安全。
  • 小型企业:可用于小型企业的安全监控,成本低廉。
  • DIY 项目:适合爱好者和开发者进行自定义监控解决方案。

总之,OneNVR 是一个理想的选择,适合需要简单、低成本视频监控解决方案的用户。

准备

网络摄像头

OneNVR 是个网络视频录像机,所以首先要有用于录像的网络摄像头,其次要知道其接像地址,例如老苏的联想 C2E

# 主流:1080P@15@H.264
rtsp://username:password@ip:port/live/ch00_0

# 子流:640*360@15@H.264
rtsp://username:password@ip:port/live/ch00_1
  • username:用户名,登录联想慧眼 app 的手机号;
  • password:密码,登录联想慧眼 app 的密码;
  • ip:为设备的局域网 IP
  • port:端口号为 554

配置文件

接下来就可以准备配置文件 config.yaml

cameras:
  - name: lenovo
    rtsp_url: rtsp://username:password@192.168.0.128:554/live/ch00_0
    codec: copy
    interval: 300

retention_days: 7
concatenation: true
concatenation_time: "02:00"
deletion_time: "01:00"

配置字段的简单说明如下:

  • cameras:一个列表,包含多个摄像头的配置。
    • name:- 摄像头的名称,用于标识该摄像头。
    • rtsp_url:摄像头的 RTSPURL,用于获取视频流。可以包括用户名和密码。
    • codec:视频编码格式,通常是 copy 表示直接复制流而不进行重新编码。
    • interval:捕获视频流的时间间隔(单位为秒)。
  • retention_days:视频保留天数,表示视频文件将在系统中保留的天数。
  • concatenation:布尔值,指示是否启用视频片段的连接。
  • concatenation_time:指定连接视频片段的时间点(格式为 HH:MM)。
  • deletion_time:指定删除视频片段的时间点(格式为 HH:MM)。

详细的说明请参考官方文档:https://github.com/cyb3rdoc/onenvr?tab=readme-ov-file#configuration-options

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 onenvr ,选择第一个 cyb3rdoc/onenvr,版本只有一个 latest 版本,双击直接下载。

docker 文件夹中,创建一个新文件夹 onenvr,并在其中建两个子文件夹 configstorage

将前面准备的 config.yaml 文件放入到 config 目录中

文件夹装载路径说明
docker/onenvr/config/config存放设置文件
docker/onenvr/storage/storage存放录像文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
53345000

环境

可变
TZ设为 Asia/Shanghai
DEBUG设为 false

命令行安装

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

# 新建文件夹 onenvr 和 子目录
mkdir -p /volume1/docker/onenvr/{config,storage}

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

# 将 config.yaml 放入 config 目录

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name onenvr \
   --hostname onenvr \
   -p 5334:5000 \
   -v $(pwd)/config:/config \
   -v $(pwd)/storage:/storage \
   -e TZ=Asia/Shanghai \ 
   -e DEBUG=false \
   cyb3rdoc/onenvr:latest

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

services:
  onenvr:
    image: cyb3rdoc/onenvr:latest
    hostname: onenvr
    container_name: onenvr
    restart: unless-stopped
    ports:
      - "5334:5000"
    environment:
      - TZ=Asia/Shanghai
      - DEBUG=false
    volumes:
      - ./config:/config
      - ./storage:/storage

然后执行下面的命令

# 新建文件夹 onenvr 和 子目录
mkdir -p /volume1/docker/onenvr/{config,storage}

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5334 就能看到主界面

lenove,这是我们在 config.yaml 中设定的摄像头名称

点击时间

点击录像文件名

可以回看录像

FileStation 中能找到对应文件名的录像文件

根据我们的设置,前一天的录像会合并成一个文件

而当天的文件,则是 5 分钟一段的

参考文档

cyb3rdoc/onenvr: OneNVR - One Network Video Recorder for All Your Cameras
地址:https://github.com/cyb3rdoc/onenvr

联想C2E摄像头的折腾 | 老苏的blog
地址:https://laosu.tech/2022/12/23/联想C2E摄像头的折腾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值