摄像头回放不想一直依赖云存储?用EasyNVR把录像留在飞牛NAS

摄像头回放不想一直依赖云存储?用 EasyNVR 把录像留在飞牛 NAS

前言

家里的摄像头平时可能一天都不会点开几次,可真遇到需要回看录像的时候,存储这件事就一下变得重要了。内存卡容量有限,录像会循环覆盖;不同品牌又各有自己的 App,历史回放往往还和云存储套餐绑在一起。我更希望把"看监控"和"录像保存"拆开:摄像头继续负责采集画面,录像统一落到自己手里的 NAS,需要回放时从自己的存储里找,而不是先想还有没有云端记录。

这次我用飞牛 NAS 部署 EasyNVR,实际接入一台乔安摄像头。先通过 SSH 和 Docker 把 EasyNVR 跑起来,再把录像目录映射到 /vol1/1000/Photos/EasyNVR;随后给摄像头做 IP-MAC 绑定,拿到 RTSP 地址,用 PotPlayer 先验证视频流,再接入 EasyNVR,设置录像计划并检查直播、历史回放和时间段下载。最后再用 cpolar 把 EasyNVR 的 10000 Web 页面提供到公网,并切换到固定二级子域名 easynvr。我这次更看重的是"录像有没有真的留下来":页面能打开只是第一步,流地址对不对、录像计划有没有生效、回放能不能找到、文件有没有进 NAS,这些都要一层一层验证。这样以后真遇到画面断了、录像没生成或外网打不开时,也知道应该从哪一层开始查。

1. EasyNVR 在这套方案里负责什么?

EasyNVR 是一款软件型网络录像机,也就是 NVR。放到家庭 NAS 场景里,它的作用是把多个网络摄像头的视频流集中接进来,再统一做实时预览、录像和回放。

当前介绍中提到它支持:

  • RTSP
  • RTMP
  • ONVIF
  • 多摄像头接入
  • 本地录像存储
  • 实时监控
  • 历史回放
  • 多路同步播放和时间轴浏览

这里我更关心的是这次实际跑通的链路:摄像头视频流能不能先验证、能不能接入 EasyNVR、录像能不能真正留下来、回放能不能打开。

项目功能介绍里还强调多品牌统一管理、长期本地存储和 7×24 运行等能力,但真正部署时,存多久、接多少路以及运行稳定性,最终还是要结合自己的 NAS、硬盘空间和摄像头环境来判断。

2. 在飞牛 NAS 上部署 EasyNVR

这次是在 Windows 虚拟机中的飞牛 NAS 上操作,其他 NAS 的具体入口可能不同,但这里保留当前飞牛操作流程。

先确保飞牛已经开启 SSH。

在 Windows 中按 Win+R,输入 cmd 打开命令提示符,然后连接飞牛:

shell 复制代码
ssh 飞牛用户名@你的Nas系统IP地址

登录以后切换到 root:

shell 复制代码
sudo -i

输入飞牛用户名对应的密码。

3. 先用 Docker 把 EasyNVR 跑起来

执行当前部署命令:

shell 复制代码
docker run -d --name easynvr --restart always --network host --log-opt max-size=50M -v "$PWD/configs:/app/configs" -v "$PWD/logs:/app/logs" -v "$PWD/temporary:/app/temporary" -v "$PWD/r:/app/r" -v "$PWD/stream:/app/stream" registry.cn-shanghai.aliyuncs.com/rustc/easynvr_amd64:latest

如果终端返回容器 ID,说明容器已经在后台启动。

这条命令使用了:

  • 容器名:easynvr
  • --restart always
  • --network host
  • 日志限制:max-size=50M
  • configs、logs、temporary、r、stream 多个目录挂载
  • 镜像:registry.cn-shanghai.aliyuncs.com/rustc/easynvr_amd64:latest

先让服务跑起来,后面再处理录像目录。

4. 录像如果想直接出现在飞牛相册里,可以单独映射目录

如果希望 EasyNVR 的录像直接写进飞牛相册目录,可以把录像路径单独映射过去。

当前示例里的飞牛相册路径是:

shell 复制代码
/vol1/1000/Photos

在下面单独创建 EasyNVR 目录:

shell 复制代码
mkdir -p /vol1/1000/Photos/EasyNVR

然后使用这条完整命令部署:

shell 复制代码
docker run -d --name easynvr --restart always --network host --log-opt max-size=50M -v "$PWD/configs:/app/configs" -v "$PWD/logs:/app/logs" -v "$PWD/temporary:/app/temporary" -v /vol1/1000/Photos/EasyNVR:/app/r -v "$PWD/stream:/app/stream" registry.cn-shanghai.aliyuncs.com/rustc/easynvr_amd64:latest

这样 /app/r 就映射到了:

/vol1/1000/Photos/EasyNVR

后面生成的录像文件就会进入这个目录,和其他照片分开保存。

5. 确认 EasyNVR 容器和 Web 页面

执行:

shell 复制代码
docker ps

当前状态显示为 UP

接着通过浏览器访问:

shell 复制代码
http://你的飞牛NAS系统IP地址:10000

页面打开后,按当前流程使用 admin 登录。

进入首页以后先选择简体语言。

继续下一步。

最后设置新的账号名称和密码,完成初始化。

到这里,EasyNVR 本身已经能进入管理后台,但真正的核心还在后面:把家里的摄像头流接进来。

6. 摄像头接入前,先把 IP 固定下来

摄像头如果通过 DHCP 自动获取地址,重启或网络变化后 IP 可能改变。对于依赖固定流地址的接入方式,这会直接影响 EasyNVR 后续能不能继续找到摄像头。

当前给出的两种方式是:

  • 摄像头自身设置静态 IP;
  • 在路由器里做 DHCP 静态绑定 / IP-MAC 绑定。

这次使用的是乔安摄像头,它不能直接把自己设置成静态 IP,所以在路由器后台找到摄像头并做 IP-MAC 绑定。

不同路由器的页面会不同,但目标是一致的:后面接入 EasyNVR 时,摄像头地址不要随意变化。

7. 先拿到 RTSP 地址,再用播放器验证

这台摄像头当前 IP 是:

shell 复制代码
192.168.50.127

直接在浏览器里访问这个地址,登录摄像头后台,可以看到 RTSP 开关和认证设置。

当前 RTSP 地址示例为:

shell 复制代码
# rtsp://用户名:密码@摄像机IP地址/live/ch00_0
rtsp://admin:admin123@192.168.50.127/live/ch00_0

这里的用户名、密码、IP 和路径都属于当前示例,真正使用时应以自己的摄像头提供的信息为准。

我不建议拿到地址后立刻就往 EasyNVR 里填。先用支持网络流播放的程序验证一次,会更省事。

这里使用 PotPlayer 测试。

能够看到实时画面以后,至少可以确认:

摄像头 → RTSP 地址 → 播放器

这条最基础的视频流链路是通的。

8. 把 RTSP 视频流接入 EasyNVR

回到 EasyNVR,进入【设备列表】,点击【添加】。

因为当前使用的是 RTSP 拉流地址,这里选择:

PULL

页面提示也对应 RTSP、HTTP、TCP 实时流。

填入拉流地址后确认。

设备添加以后,可以看到在线状态。

这一步说明 EasyNVR 已经能够识别并连接当前视频流。

9. 给通道设置录像计划

进入通道列表。

当前录像计划显示为"未录像",继续把它设置为每天录像。

完成以后,EasyNVR 会开始按当前计划录制。

这时如果前面已经把 /app/r 映射到飞牛相册目录,录像保存位置也就跟着确定下来。

10. 实时画面也要实际看一次

点击"直播中"进入观看页面。

当前实时画面能够正常显示。

这个页面还展示了 WebRTC、HTTP-FLV、RTMP、RTSP 等播放方式,以及分辨率、编码格式、传输方式、码率等流媒体信息。

当前介绍还提到,如果视频流协议源本身支持云台控制,可以在页面中完成方向控制、变倍和速度调节。

这次真正已经验证的是当前 RTSP 源能够成功进入 EasyNVR 并显示直播画面。其他协议和云台能力是否可用,则继续取决于实际设备和接入方式。

11. 再检查历史录像和下载

录像计划设置好以后,进入【录像回放】。

打开查看页面。

这里可以按时间查看录像。

同时还支持选择指定时间段进行下载。

如果前面采用了飞牛相册路径映射,也可以在飞牛相册里看到对应录像文件。

到这里,这次真正需要的家庭录像闭环已经跑起来了:

摄像头固定地址 → RTSP 验证 → EasyNVR 接入 → 每天录像 → 历史回放 → 时间段下载 → NAS 本地目录。

12. 本地录像已经跑通,再处理外网访问

如果只在家里使用,EasyNVR 到这里已经可以承担本地预览和回放入口。

如果人在外面还想打开 EasyNVR Web 页面,再增加公网入口。

这里 cpolar 的职责很明确:

只把 EasyNVR 的 10000 Web 页面映射到公网。

摄像头采集、RTSP 拉流、录像写盘和历史回放仍然由 EasyNVR 和 NAS 完成。

13. 在飞牛安装 cpolar

执行安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

然后检查服务:

shell 复制代码
sudo systemctl status cpolar

服务正常以后,先注册 cpolar 账号。

进入注册页面。

随后通过飞牛 NAS 的 IP + 9200 打开 Web UI。

当前示例地址为:

shell 复制代码
http://192.168.184.137:9200/

登录以后进入后台。

14. 先用随机公网地址验证 EasyNVR

当前 cpolar 页面里默认有两条隧道:

  • ssh22 / TCP
  • website8080 / HTTP

编辑 website 隧道,把它改成 EasyNVR 的 Web 服务。

当前配置为:

  • 隧道名称:easynvr
  • 本地地址:10000
  • 地区:China Top

更新后,在线隧道列表会看到两个 easynvr 地址:

  • HTTP
  • HTTPS

用 HTTPS 地址访问。

EasyNVR 页面可以正常打开。

这一步确认的是:

EasyNVR 10000 → cpolar 公网地址 → 外部浏览器访问成功。

当前说明中记录随机域名大约每 24 小时会变化一次,因此更适合先做连接验证。

15. 长期使用再换固定二级子域名

进入预留页面:

shell 复制代码
https://dashboard.cpolar.com/reserved

在"保留二级子域名"中填写地区和名称。

当前记录为:

  • 地区:China Top
  • 二级域名:easynvr

然后回到【隧道管理 → 隧道列表】,找到:

easynvr

点击编辑,把域名类型改成:

二级子域名

再填写已经保留的子域名。

更新以后,在线隧道列表会切换成固定二级子域名形式。

继续使用 HTTPS 访问。

页面可以正常打开。

总结

这套方案真正让我觉得有价值的地方,不是"摄像头从此什么费用都没有",而是录像保存和历史回放终于可以落到自己控制的 NAS 上。摄像头继续负责采集,EasyNVR 负责集中接入、录像和回放,飞牛负责存储,cpolar 只补远程 Web 入口,四层职责分开以后,哪里出了问题也更容易定位。

这次实际跑通的链路是:

飞牛 SSH → Docker → EasyNVR → /vol1/1000/Photos/EasyNVR → 摄像头 IP-MAC 绑定 → 192.168.50.127 → RTSP → PotPlayer 验证 → EasyNVR PULL → 每天录像 → 直播 → 历史回放 / 下载 → cpolar → 10000 → 随机公网 → 固定二级子域名 easynvr

几个关键技术点包括:

  • 镜像:registry.cn-shanghai.aliyuncs.com/rustc/easynvr_amd64:latest
  • Docker 网络:--network host
  • 日志限制:max-size=50M
  • 相册路径:/vol1/1000/Photos
  • 录像目录:/vol1/1000/Photos/EasyNVR
  • EasyNVR Web 端口:10000
  • 摄像头示例 IP:192.168.50.127
  • RTSP 示例:rtsp://admin:admin123@192.168.50.127/live/ch00_0
  • cpolar Web UI:192.168.184.137:9200
  • 隧道名称:easynvr
  • 地区:China Top
  • 固定二级子域名:easynvr

如果家里已经有 NAS,这套思路最实用的部分就是:先把录像留在本地,再决定需不需要远程访问。相比一开始就追求"全品牌、全协议、完全替代云服务",先把一台摄像头的 RTSP、录像和回放真正跑通,会更稳。

相关推荐
Dovis(誓平步青云)3 个月前
《指标中转站:Pushgateway 如何把监控覆盖到这些原本看不见的角落》
数据库·生成对抗网络·oracle·内网穿透·飞牛nas
吾爱iis4 个月前
【飞牛OS】使用飞牛OS的虚拟机安装ubuntu24
ubuntu24·飞牛nas·飞牛os·fnos·飞牛系统·nas虚拟机·飞牛虚拟机
PieroPc7 个月前
在飞牛 NAS(fnOS)上使用 Docker 部署 FastAPI 应用(这个是从错误学习教程 图是可以的)
学习·docker·fastapi·飞牛nas
BXCQ_xuan8 个月前
解决飞牛nas更新后挂载硬盘提示“数据库读写失败”
数据库·飞牛nas
总有刁民想爱朕ha8 个月前
飞牛NAS小白部署教程:从0到1搭建你的私有云存储
linux系统·飞牛nas·nas文件存储
季春二九2 年前
飞牛 fnos 上自建全终端小说阅读服务器
阅读·小说·飞牛nas·飞牛os
季春二九2 年前
飞牛 fnos docker镜像部署OpenSpeedtest宽带网速测试教程
docker·容器·飞牛nas
得鹿梦鱼、2 年前
记录在飞牛NAS系统中通过Docker搭建并配置Linux版本XAMPP镜像环境[图文]
docker·飞牛nas·zeronews