拒绝 NVR 断片!我为何要开发这个轻量级 GB28181 监控平台?
GitHub 传送门: https://github.com/OwnDing/gb28181
01. 一次“损失惨重”的存储卡事故
做这个项目的初衷,其实非常简单,就是被坑怕了。
之前我为了省事,家里安防一直用的是摄像头直连 NVR(网络硬盘录像机)的方案,录像数据都存在 NVR 插的 SD 存储卡里。我一直以为这套方案万无一失,直到有一天我想回放一段记录,才发现无论如何都读不出来。
折腾半天发现:存储卡坏了。
那张卡才用了 8 个月。因为监控是 24 小时高频读写,普通存储卡的寿命根本扛不住。更糟糕的是,卡坏了是悄无声息的,前面几个月的关键记录全没了,无法回放。
再去搜了一下现在的存储卡价格,稍微好点的高耐久卡(High Endurance)价格并不便宜。如果为了数据安全,还得定期更换,这不仅是钱的问题,更是维护成本的问题。
02. 想要“白嫖”云存储,却发现…
既然本地存储卡不靠谱,我第一反应是找个软件把视频存到电脑或者云服务器上。
现在的摄像头厂商倒是都提供“云存储”服务,数据在云端很安全,也不用担心卡坏了。但看了一眼价格,我立刻劝退了——每年都要交年费。如果家里有几个摄像头,几年的年费加起来都够买好几台新设备了。
作为一个开发者,我的第一反应当然是:“有没有开源的?”
我找了一圈市面上的 GB28181 开源平台,结果挺失望的:
- 要么是巨无霸,功能极其复杂,部署起来光是环境配置就要半天,还得装笨重的数据库。
- 要么是陈年老代码,界面还停留在上个世纪,甚至跑不起来。
- 要么就是功能残缺,只能看直播,不能回放,或者没有我需要的告警功能。
居然没有一个轻量、现代、能满足家庭或小微场景的开源方案?
“行吧,既然没有满意的,那我就自己写一个。”
03. 不止于“能用”,我做了一个全功能的轻量平台
我的目标很明确:它必须轻量(能跑在便宜机器上),必须免费(拒绝厂商云服务绑架),必须功能齐全。
经过一段时间的开发,**gb28181-video-platform** 诞生了。
它不仅解决了我最初的存储痛点,还加入了很多我自己在实际使用中想要的功能:
核心功能亮点:
- 彻底的数据掌控权(云端/本地存储)
- 这是解决我“掉盘恐惧症”的核心。软件支持服务端录像(MP4),你可以自由设置存储配额和保留天数。
- 自带自动清理功能,硬盘满了自动删旧录像,完全不用操心。
- 超低成本部署
- 99元/年:你可以像我一样,买一台最便宜的云服务器(因为是轻量级,对配置要求很低),把服务部署在云上。
- 0元:你也可以直接部署在家里的闲置电脑或 NAS 上。
- 使用了 SQLite 数据库,省去了安装配置 MySQL 的繁琐,Docker 一键拉起,真正做到“开箱即用”。
- 现代化体验
- 在线预览:支持 WebRTC(超低延迟)、HLS、HTTP-FLV。支持 H.265 网页播放(这在很多老旧开源项目中是个大坑,我把它填平了)。在谷歌浏览器中可直接在线预览 H.265 格式监控。
- 历史回放:再也不用拔存储卡了,网页上直接拖动进度条看录像。
- **云台控制 (PTZ)**:坐在办公室,就能远程控制家里的摄像头转动、变焦,想看哪就看哪。
- AI 智能赋能
- 光录像还不够,我接入了 YOLOv8。
- 支持人员检测告警。只有当画面里出现人时才重点关注,并自动抓拍快照。这比传统摄像头的“像素变化移动侦测”要准得多,误报少了很多。
04. 技术栈与开源
为了保证性能和开发效率,我选择了目前比较主流且现代的技术栈:
- 后端:Java (Spring Boot) —— 稳定强大。
- 前端:React + Vite —— 界面得好看,操作得丝滑。
- 流媒体:ZLMediaKit —— 高性能流媒体核心。
- AI:Python + YOLOv8 —— 目前最火的目标检测方案。
所有的代码都已经开源在 GitHub 上。如果你也和我一样,不想被存储卡故障折磨,不想给厂商交年费,或者单纯想折腾一套属于自己的家庭安防系统,欢迎来试用!
项目地址: https://github.com/OwnDing/gb28181


