<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="轻量级的网络视频录像机OneNVR">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2025-04-18 16:26<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
轻量级的网络视频录像机OneNVR




Github：https://github.com/cyb3rdoc/onenvr


Dockerhub：https://hub.docker.com/r/cyb3rdoc/onenvr




简介


什么是 OneNVR ？


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

主要特点


轻量级设计：专为低成本硬件优化，易于部署。


视频流保存：从网络摄像头录制的视频保存为 5 分钟的文件，以防文件损坏导致数据丢失。


自动文件处理：每日自动将前一天的视频文件连接为 24 小时的单一文件，并删除过期视频。


灵活配置：通过 config.yaml 文件配置，如视频保留天数、合并时间和删除时间等。


**使用 ffmpeg**：依赖 ffmpeg 进行视频流的连接和录制。


容器化部署：支持 Docker 部署，易于安装和管理。


应用场合


家庭监控：适合家庭用户用于监控家庭安全。


小型企业：可用于小型企业的安全监控，成本低廉。


DIY 项目：适合爱好者和开发者进行自定义监控解决方案。


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

准备


网络摄像头


OneNVR 是个网络视频录像机，所以首先要有用于录像的网络摄像头，其次要知道其接像地址，例如联想 C2E


XML/HTML代码


    # 主流：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；





其他品牌摄像头可以百度常用摄像头取流地址，具体自己摄像头可以搜索自己品牌型号即可，比如本博客就有萤石摄像头的rtsp设置方法。


配置文件


接下来就可以准备配置文件 config.yaml


XML/HTML代码


    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:&quot;02:00&quot;

    deletion_time:&quot;01:00&quot;





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

cameras：一个列表，包含多个摄像头的配置。


name：- 摄像头的名称，用于标识该摄像头。


rtsp_url：摄像头的 RTSP 流 URL，用于获取视频流。可以包括用户名和密码。


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，并在其中建两个子文件夹 config 和 storage


将前面准备的 config.yaml 文件放入到 config 目录中


XML/HTML代码


    文件夹                   装载路径       说明

    docker/onenvr/config    /config       存放设置文件

    docker/onenvr/storage   /storage      存放录像文件





端口


本地端口不冲突就行，不确定的话可以用命令查一下


XML/HTML代码


    # 查看端口占用

    netstat -tunlp | grep 端口号





XML/HTML代码


    本地端口   容器端口

    5334      5000





环境 


XML/HTML代码


    变量           值

    TZ            设为 Asia/Shanghai

    DEBUG         设为 false





命令行安装


如果你熟悉命令行，可能用 docker cli 更快捷


XML/HTML代码


    # 新建文件夹onenvr和子目录

    mkdir -p /volume1/docker/onenvr/{config,storage}

    # 进入onenvr目录

    cd /volume1/docker/onenvr





# 将 config.yaml 放入 config 目录


# 运行容器


XML/HTML代码


    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 文件


XML/HTML代码


    services:

      onenvr:

        image:cyb3rdoc/onenvr:latest

        hostname:onenvr

        container_name:onenvr

        restart:unless-stopped

        ports:

          -&quot;5334:5000&quot;

        environment:

          -TZ=Asia/Shanghai

          -DEBUG=false

        volumes:

          -./config:/config

          -./storage:/storage





然后执行下面的命令


XML/HTML代码


    # 新建文件夹 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 就能看到主界面


在 FileStation 中能找到对应文件名的录像文件，根据我们的设置，前一天的录像会合并成一个文件，而当天的文件，则是 5 分钟一段的。


其他


使用容器可以在普通任意Linux系统上跑，也可以在爱快或者Openwrt容器中跑，轻量方便。


下载配置




XML/HTML代码


    wget -P /opt/onenvr/config https://gh-proxy.com/raw.githubusercontent.com/cyb3rdoc/onenvr/refs/heads/main/src/config/config.yaml




编辑配置文件，添加全部摄像头，然后启动容器。




XML/HTML代码


    docker run -d --restart unless-stopped --name onenvr --hostname onenvr -p 8000:5000 -v /opt/onenvr/config:/config -v opt/onenvr/storage:/storage -e TZ=Asia/Shanghai -e DEBUG=false cyb3rdoc/onenvr:latest




没有复杂的设置，还可以灵活的配置，非常适合家用或者小环境使用，修改配置后需求重启容器自动生效。




LightNVR - 轻量级网络视频录像机


Github：https://github.com/opensensor/lightNVR


官方教程：https://github.com/opensensor/lightNVR/tree/main/docs


LightNVR 是一款用 C 语言编写的微型、内存优化的网络视频录像机软件。虽然最初设计用于资源受限的设备（例如只有 256MB RAM 的 Ingenic A1 SoC），但它可以在任何 Linux 系统上运行。


概述


LightNVR 提供轻量级但功能强大的解决方案，用于录制和管理 IP 摄像机流。它旨在在低功耗、内存受限的设备上高效运行，同时仍提供基本的 NVR 功能。


主要特点


跨平台：可在任何 Linux 系统上运行，从嵌入式设备到完整服务器


内存高效：针对低内存设备（SBC 和某些 SoC）进行了优化


流支持：处理最多 16 个视频流（具有内存优化缓冲）


协议支持：RTSP 和 ONVIF（基本配置文件）


编解码器支持：H.264（主要）、H.265（如果资源允许）


物体检测：可选的 SOD 集成，用于运动和物体检测（支持 RealNet 和 CNN 模型）


分辨率支持：每个流高达 1080p（可配置较低分辨率）


帧率控制：可配置为每条流 1-15 FPS，以减少资源使用


标准格式：以标准 MP4/MKV 容器形式记录，并带有适当的索引


现代 Web 界面：使用 Tailwind CSS 和 Preact 构建的响应式 UI


存储管理：自动保留策略和磁盘空间管理


可靠性：断电或系统故障后自动恢复


资源优化：流优先级管理有限的 RAM


系统要求


处理器：任何与 Linux 兼容的处理器（ARM、x86、MIPS 等）


内存：未知最小 RAM（对于多个流更推荐使用）


存储：任何操作系统可访问的存储设备


网络：以太网或 WiFi 连接


操作系统：Linux 内核 4.4 或更新版本


快速入门


安装


从源代码构建：


XML/HTML代码


    # Clone the repository

    git clone https://github.com/opensensor/lightnvr.git

    cd lightnvr

     

    # Build the software

    ./scripts/build.sh --release

     

    # Install (requires root)

    sudo ./scripts/install.sh





配置：


XML/HTML代码


    # Edit the configuration file

    sudo nano /etc/lightnvr/lightnvr.conf





启动服务：


XML/HTML代码


    sudo systemctl start lightnvr





访问 Web 界面：http://your-device-ip:8080


默认账号：admin 密码：admin


Docker 安装


XML/HTML代码


    docker run -d \

      --name lightnvr \

      --net=host \

      -p 8080:8080 \

      -v /opt/nvr/config:/etc/lightnvr \

      -v /opt/nvr/recordings:/var/lib/lightnvr/recordings \

      ghcr.io/opensensor/lightnvr:latest





此项目更像是商业监控录像机，功能比上面的更强大，不过稍微复杂，目前测试在录制方面还稍微有些bug，不是很稳定。


基于 GB28181 - 2022 标准的 Golang WVP NVR 平台，支持 RTMP/RTSP 协议，集成 ZLMediaKit 处理流媒体。（太专业）


Github：https://github.com/gowvp/gb28181


需要专业硬盘录像机或者摄像头支持，是专业NVR解决方案，个人无法使用，适合商业场景。


wvp-GB28181-pro 开箱即用的28181协议视频平台


Github：https://github.com/648540858/wvp-GB28181-pro


官网文档：https://doc.wvp-pro.cn


这个项目是一个完整的开箱即用的商业开源NVR系统，是比上面更加完善的一个完整系统，适合专业用户在商业环境应用。


ZLMediaKit 一个基于C++11的高性能运营级流媒体服务框架


Github：https://github.com/ZLMediaKit/ZLMediaKit


官网：https://docs.zlmediakit.com/zh


ZLMediaKit是一个开源高效高性能的流媒体服务器框架，可用于商业开发，开发者可以基于此项目开发。


</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
