榨干 N1 最后 1% 性能!小米摄像头 RTSP 接入飞牛 NAS,彻底告别云端付费!

前言

抽屉里那台吃灰的N1盒子,你还记得吗?当年矿潮退去,这台2GB内存的小钢炮被低价收入囊中,折腾了一阵子后,就默默躺在角落里吃灰了。与此同时,家里墙上挂着的摄像头,每个月却在默默扣着云存储的订阅费——想看上个月的录像?对不起,要么内存卡早被覆盖了,要么就得开通付费套餐。明明家里有NAS,明明N1性能还够用,却让这两个设备各自为战?

转折点就在这里——之前我们写过家用摄像头告别云存储费!飞牛NAS+Docker玩转EasyNVR这篇通用教程,手把手教大家如何把摄像头接入NAS实现本地化存储。文章发布后,有不少机友留言询问:

小米摄像头能不能通过RTSP接入EasyNVR?

答案当然是——,而且在N1上跑起来还挺丝滑! 这篇文章,就是专门针对小米摄像头+N1飞牛NAS的实战教程,教你一步步获取RTSP协议并接入EasyNVR,让手中的矿渣盒子重新焕发生机!

接下来,咱们就从解锁小米摄像头的RTSP协议开始,一步步把监控流接入N1飞牛NAS,打造一套零月租、完全本地化的家庭监控存储方案。别担心N1配置低,跟着教程走,2GB内存照样能稳稳扛住!

1 什么是Micam?

项目地址:https://github.com/miiot/micam

Micam 全称是 Xiaomi Camera Streamer(小米摄像头流转发器),是一个专为小米摄像头设计的RTSP桥接服务。简单来说,它能把小米摄像头的视频流本地转换为标准RTSP协议,让你可以在 Home AssistantFrigateEasyNVR 等各种NVR系统中使用小米摄像头,彻底告别云端付费

Micam 采用三件套组合方案,通过Docker Compose一键部署:

image-20260125215722046

核心优势

  • 资源占用低:无需GPU,适合N1等低功耗设备
  • 配置简单:一键部署脚本,自动化程度高
  • 原生支持ARM64:完美运行在N1盒子上

接下来,咱们就用Micam来实现小米摄像头的RTSP接入!

2 一键部署Micam项目

本期教程以N1盒子刷入的飞牛NAS为演示案例,但并非强制要求,如果你的N1还在吃灰且想刷入飞牛NAS尝试一下,可以参考这篇7年矿渣重生!N1盒子刷入ARM版飞牛NAS保姆级教程。本教程的一键脚本基本支持任何支持Docker Compose的Linux系统!

2.1 连接SSH终端

首先,确保你的Nas系统,开启了SSH服务,以飞牛Nas为例,首页点击系统设置>SSH>启动SSH服务:

image-20260125220825279

然后,电脑上摁Win + X键,选择终端(管理员),打开PowerShell窗口(cmd命令提示符窗口也可以的):

image-20260125220912291

接着,输入如下命令连接你的飞牛NAS(也可以使用其他ssh工具):

# ssh 你的Nas用户名@你的Nas系统IP地址
ssh n1@192.168.50.227

image-20260125221053915

连接成功后,输入如下命令,然后输入密码,切换至root用户:

sudo -i

image-20260125221214085

2.2 一键部署micam

为了更加简易话,这里写了一条一键命令,在终端直接输入如下命令回车执行:

curl -fsSL https://gitee.com/jun-wan/script/raw/master/micam-deploy/deploy-micam.sh -o /tmp/deploy-micam.sh && chmod +x /tmp/deploy-micam.sh && /tmp/deploy-micam.sh

执行命令后,如下图所示:

image-20260125221502206

进入页面后,按任意键或回车,进行系统环境检测:
image-20260125221621487

可以看到,会对部署的系统做一些基本检测,检测通过后,来到【配置基础服务】项:
image-20260125222108417

按照如上要求填写后,接着即来到【开始配置摄像头】项:
image-20260125222216638

可以看到提示,我们需要输入摄像头的设备ID,以【小米4 4K】 为例,首先打开米家APP,找到你要接入的摄像头设备,点击进入右上角三个点,查看更多设备信息,找到设备IP进行填写,如下图操作:

image-20260126185029575

接着,将设备ID填写至终端,然后设置一个流名称,设置完成后根据需要是否继续添加其他摄像头,不添加直接回车即可:
image-20260126185409518

回车后,确认相关信息无误再次回车,即可开始部署:
image-20260126185600049

等待镜像拉取成功后,会进行启动,出现如下信息即启动成功,然后访问miloco的webUI界面:

https://192.168.50.227:8000/login

image-20260126185738172

注意,地址是https,如果提示不安全,点击高级选项,继续访问即可,然后会来到如下页面,输入前面在终端设置的6位密码:
image-20260126190433112

然后点击确认设置,确认输入6位密码进行登录即可。

2.3 授权小米账号

设置完成miloco后,登录进首页回提示需要同意协议,点击同意:
image-20260126190623974

接着会跳转小米账号登录页面,登录你的小米账号,然后进行授权即可:
image-20260126190711858

点击授权后,会提示授权成功,在第二行地址栏填写当前miloco的访问地址,然后点击跳转,如:

https://192.168.50.227:8000

image-20260126190910738

点击跳转后,会在首页AI中心,然后可以看到摄像头设备有一个摄像头,如果显示离线状态,点击上方的刷新按钮进行刷新:
image-20260126191034500

提示刷新成功后,即可看到变成播放的图标了,即是在线状态:
image-20260126191109732

点击播放图标,即可正常的播放查看到画面了:
image-20260126191140919

PS:如果一直显示离线状态, 请首要确保相关端口是否被防火墙相关所拦截

接着,回到控制台,此时应该即可查看到摄像头链接成功的提示:
image-20260126193453888

接着,我们使用输出的RTSP地址,在Potplayer、VLC等相关网络播放器中进行播放测试:

rtsp://192.168.50.227:8554/stream1

image-20260126193721669

可以看到,完美的显示了画面,这样我们就获取到了小米的RTSP协议地址了!

3 一键部署EasyNvr项目

到这里,我们已经成功解封了小米摄像头,拿到了一条标准的 RTSP 视频流!现在,你的摄像头已经不再受限于米家 APP,可以在局域网内自由访问了。

不过,重头戏还在后头! 光能看直播怎么够?我们的终极目标是把 N1 变成一台强大的 NVR 录像机,实现 24小时自动录制、回放,把视频牢牢存在自己的硬盘里,彻底省下每月的云存储费!接下来,我们就用 EasyNVR 来接管这条 RTSP 流,完成这最后 1% 的拼图!

3.1 什么是EasyNVR?

image-20251218105203364

EasyNVR 是一款专业的软件型网络录像机(Network Video Recorder,NVR),用于集中管理和录像多路网络摄像头的视频流。它可以替代摄像头厂商提供的云存储服务,将录像统一存储在本地 NAS 或服务器上,实现完全的本地化管理。

EasyNVR 的核心功能包括:多摄像头接入,支持 RTSP、RTMP、ONVIF 等标准协议,并能够接入不同品牌和型号的摄像头,实现统一管理;本地录像存储,视频数据直接写入 NAS 或本地服务器,不依赖厂商云服务,从而避免长期订阅费用,同时支持长期录像和循环覆盖策略;实时监控与历史回放,通过 Web 界面集中管理所有摄像头,可以查看实时画面、快速定位历史录像,并支持多路同步播放和时间轴浏览;稳定运行,可在 NAS、迷你主机或家用服务器上 7×24 稳定运行,Docker 部署支持跨平台、快速安装和升级。

3.2 获取飞牛相册的路径

首先,我们需要获取到飞牛相册的存储路径,然后再根据路径进行修改一键部署easynvr的docker命令,这样就可以让录制下来的视频,挂载在飞牛相册下的指定文件夹,如下图所示:
image-20260126200052413

可以看到,录制的视频,都在飞牛相册中显示了,录制的视频,全部显示在Photos/EasyNVR路径下!这样,EasyNVR 录制的视频能够直接出现在飞牛相册中统一管理和查看了。

首先,我们点击飞牛相册的设置图标,进入设置页面,可以看到路径显示为存储空间1/n1 的文件/Photos这样的中文地址::

image-20260126200446442

但是我们需要获取到它的真实完整路径,所以我们可以在终端执行如下命令,进行查找该目录所在的位置:

sudo find / -name Photos

如下图所示:
image-20260126200719474

可以看到,其中有一条输出了如下从根路径开始的地址:

/vol1/1000/Photos

这,就是我们需要的地址,接着,我们可以在相册目录下单独创建一个 EasyNVR 录像目录,避免和日常照片混在一起:

mkdir -p /vol1/1000/Photos/EasyNVR

image-20260126201009424

执行后,即可回到飞牛相册检测是否创建了一个新的目录,这样也可以用于确保获取到的路径是相册的路径。

3.3 Docker一键部署EasyNvr

获取到相册的路径后,接着,在终端执行如下命令:

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_arm64:latest

注意需要将命令中的地址/vol1/1000/Photos/EasyNVR换成你相册所在的路径地址,然后回车执行,执行完成后,可以输入如下命令,查看运行状态:

docker ps

image-20260126201431264

可以看到,项目成功拉取下来了,通过docker ps命令,还可以看到前面部署的容器也是正常运行状态!

接着,在浏览器访问你Nas的IP地址+10000端口,即:

http://192.168.50.227:10000

image-20260126201758143

这样就成功访问到了easynvr的登录界面啦,首次直接点击登录按钮即可登录进主页,成功进入EasyNVR的首页后,这里选择简体语言,然后下一步:

image-20260126201921652

来到属性配置页面,默认为你的局域网地址,不用修改,直接点击确定即可:
image-20260126202027871

开放端口页,我们也直接点击确定即可:
image-20260126202110433

来到最后一个步骤,重置一个账号和密码,点击确定就好啦:
image-20260126202153401

4 配置小米的RTSP流接入到EasyNVR

前面已经介绍了EasyNVR支持接入 RTSP、RTMP、ONVIF 等标准协议,并能够接入不同品牌和型号的摄像头,实现统一管理。简单说一下区别:RTSP 是纯视频流协议,只能拉流观看,不支持云台控制;RTMP 主要用于推流场景,同样不支持设备控制;而 ONVIF 是一套完整的设备管理标准,除了拉流外还支持云台控制、设备发现、参数配置等功能,如果你的摄像头支持 ONVIF,优先推荐使用它接入。

4.1 将流协议地址接入到EasyNVR

在前面,我们已经成功的配置了小米摄像头的RTSP流协议地址,接下来,我们就将这个RTSP流协议地址接入到EasyNVR中。

首先打开EasyNVR的首页,然后选择设备列表菜单,点击添加按钮:

image-20260127140431249

这里由于是RTSP协议地址,所以选择PULL,下面也可以看到提示为接入设备RTSP、HTTP、TCP实时流,然后填写好拉流地址,点击确定:

image-20260127140606520

点击确定后,就可以看到你的设备添加上来了,可以看到在线状态:

image-20260127140720424

点击通道列表图表,点击进入,然后可以看到录像计划显示为未录像,这里直接将其设置为每天,这样就会一直录制啦:

image-20260127140804393

点击下方的直播中按钮,即可进入到观看页面:

image-20260127140854422

如下图所示:

image-20260127140920670

可以看到,该直播预览页面集成了多协议实时播放、线路切换、云台控制与参数可视化等能力,若视频流协议源本身支持云台控制,还可直接在页面中完成方向控制、变倍与速度调节,实现从预览到运维的一体化操作。

4.2 查看录像回放

前面设置好了录像计划,设置为每天,设置好后就会即刻开始录像。我们回到首页,选择菜单的录像回放

image-20260127142109380

接着,直接点击查看图标,即可进入回放页面:

image-20260127142155241

不仅回放功能,还支持选择指定时间段进行下载:

image-20260127142422346

好啦,基本设置就完成啦,EasyNVR还拥有更多功能值得你去探索!

4.3 查看录像是否成功在飞牛相册中显示

回到飞牛相册,打开首页,可以看到,录像成功的显示在了图库中:
image-20260127141819111

接着,点击文件夹,依次展开EasyMVR文件夹下的目录,即可看到根据日期录制好的视频啦:
image-20260127141943288

如下为持续录制了3天的效果,可以看到每天录制的视频都放在对应日期的文件夹内:

image-20260127152228167

5 给N1盒子设置虚拟内存

由于N1盒子的配置仅为2G,而前面部署的micam项目和EasyNVR项目都需要占用一定的内存,在终端输入如下命令,可以查看当前的内存使用情况:

free -h

image-20260127142724939

可以发现,内存基本不够使用了,所以需要给N1盒子设置虚拟内存,在终端依次输入如下命令:

# 创建一个 0 字节的空文件
touch /vol1/swapfile

# 禁用该文件的 CoW 属性(Btrfs 文件系统不允许直接启用有“写时复制”特性的 Swap 文件。)
chattr +C /vol1/swapfile

#重新分配空间并格式化
dd if=/dev/zero of=/vol1/swapfile bs=1M count=2048
chmod 600 /vol1/swapfile
mkswap /vol1/swapfile

# 启用
swapon /vol1/swapfile

of=/vol1/swapfile: 文件路径在空间充足的 vol1 下,注意替换成对应自己的存储路径,即前面获取飞牛相册是获取到的根目录。

count=2048: 代表 2048MB (2GB)。如果你想要 4G,就改成 4096。

image-20260127144734590

接着,再次输入free -h的命令,查看内存情况:

free -h

image-20260127144928016

可以看到,分配的2G虚拟内存,成功启用并且被使用到了,这样N1盒子就相当于有4G内存了。

6 穿透EasyNVR实现公网访问

到这里,EasyNVR 已经在飞牛 NAS 上跑起来了,录像也都存在本地硬盘上,彻底告别了云存储月租费。但问题来了:虽然各家摄像头 APP 也能看实时画面,但想回看历史录像就要交钱,而且家里几个不同品牌的摄像头还得装好几个 APP,管理起来很麻烦。

有了 cpolar 内网穿透,这些问题就迎刃而解了。只需简单配置,就能让 EasyNVR 通过公网地址随时随地访问——不仅能看实时画面,更重要的是免费回放本地存储的所有录像。而且一个链接就能分享给家人,不用每个人都装 APP、注册账号,浏览器打开就能看

6.1 什么是cpolar?

image-20250910114418412

  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。

6.2 安装cpolar

在前面连接的飞牛终端中输入如下命令,一键安装cpolar:

sudo curl https://get.cpolar.sh | sh

image-20260127145907036

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

image-20260127145921847

6.3 注册及登录cpolar web ui管理界面

官网链接:https://www.cpolar.com/

访问cpolar官网,点击免费注册按钮,进行账号注册

image-20250804085039567

进入到如下的注册页面进行账号注册:
image-20250804085208319

注册完成后,在浏览器中输入飞牛NAS的IP地址+9200端口访问 web ui管理界面:

http://192.168.184.137:9200/

image-20251014164829371

输入刚才注册好的cpolar账号登录即可进入后台页面:

image-20260127145959685

6.4 穿透EasyNVR的WebUI界面

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20260127150100401

点击编辑website的隧道,这里设置名称为easynvr方便辨识,然后本地地址填写10000端口系统的访问地址,地区这里选择的China Top,然后点击更新:

image-20260127150145380

接着,点击左侧菜单的状态菜单,接着点击在线隧道列表菜单按钮,可以看到有2个easynvr的隧道,一个为http协议,另一个为https协议:

image-20260127150238476

接下来在浏览器中访问easynvr隧道生成的公网地址,这里以https为例:

image-20260127150341892

可以看到成功的访问到EasyNVR的页面啦!不过随机域名方式适合预算有限的用户。使用此方式时,系统会每隔 24 小时 左右自动更换一次域名地址。对于长期访问的不太友好,但是该方案是免费的,如果您有一定的预算,可以查看大纲5固定域名方式,且访问更稳定哦。

7 固定二级子域名

随机域名虽然免费,但每 24 小时左右会自动更换一次,每次变化都要重新记地址、重新分享链接,用起来确实不太方便。如果你希望拥有一个固定不变、简短易记的专属域名,只需升级 cpolar 任意付费套餐,即可配置固定二级子域名,彻底告别域名频繁变化的烦恼。下面我们来看看如何操作。

首先,进入官网的预留页面:

https://dashboard.cpolar.com/reserved

然后,选择预留菜单,即可看到保留二级子域名项,填写其中的地区、名称、描述(可不填)项,然后点击保留按钮,操作步骤图如下:

image-20251218171936173

列表中显示了一条已保留的二级子域名记录:

  • 地区:显示为China Top
  • 二级域名:显示为easynvr

注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主

接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为easynvr的隧道:

image-20260127150514444

点击编辑按钮进入编辑页面,修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:

image-20260127150543409

接着来到状态菜单下的在线隧道列表可以看到隧道名称为easynvr的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:

image-20260127150619281

这里以https访问测试一下:

image-20260127150808999

访问成功,让我们再进行登录测试一下:
image-20260127151008969

成功登录!以后你不管是去公司上班,还是外出旅游,都可以通过这个固定的公网地址,随时随地打开 EasyNVR,不仅能实时查看家里的情况,还能随意回放之前的录像。而且,这个地址是永久固定的,不用再担心过段时间就变了,是不是超级方便!

总结

本教程带你利用 Micam 项目解除了小米摄像头的封印,通过 EasyNVR 实现了 N1 飞牛 NAS 的本地化录像存储,最后配合 cpolar 内网穿透 打通了公网访问的“任督二脉”。

  • 变废为宝:让吃灰的 N1 盒子秒变高性能 NVR,省下几百块的录像机钱。
  • 拒绝套路:彻底告别摄像头厂商的云存储月租,录像存本地,安全又省钱。
  • 远程无忧:通过 cpolar 固定公网地址,实现全天候、全地域的监控自由。

折腾的乐趣不就在于此吗?用最低的成本,通过技术手段打破厂商的限制,把设备的控制权真正掌握在自己手里。这下,你的 N1 盒子和小米摄像头,算是真正被“榨干”了最后 1% 的价值!

感谢您阅读本篇文章,有任何问题欢迎留言交流。 cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章