收起左侧

「简·监控」开发进度报告:从零开始,手搓一个通用监控系统

0
回复
49
查看
[ 复制链接 ]

4

主题

6

回帖

0

牛值

江湖小虾

朋友的花园需要装监控,摄像头比较多,市面上的 NVR 方案要么太贵,要么不灵活。作为一个喜欢动手的人,我萌生了自己写一套监控系统的想法。

这也是我的「简」系列第 N 个项目——之前已经做了工单追踪、分账单等小工具,这次轮到监控了。

当前状态:抢先版已跑通

目前系统已经在我的飞牛云 NAS 上稳定运行,接入了一台小米和一台 TP-LINK 摄像头。以下功能已经全部实现:

🎥 画面预览

  • 多路摄像头同时抓帧,2秒自动刷新
  • 桌面端3列网格,手机端自适应1列大图
  • WebRTC 实时视频流,内网直连 + 外网 HTTPS 反代,手机4G也能秒开

💾 录像存储

  • 每10分钟自动分段录制,H.264编码,浏览器直接播放
  • 录像回放列表,点击即播
  • 定时清理,按天数自动滚动删除

⚙️ 系统管理面板

  • 不再是终端敲命令的玩具,所有配置都在前端完成
  • 按摄像头独立配置:定时备份、定时清理、移动侦测开关
  • 备份路径可自定义(支持多存储盘)
  • 配置保存后自动写入 cron,立即生效
  • 已配置任务列表,可随时查看和删除

📡 移动侦测 + Bark 推送

  • 按摄像头独立开启/关闭
  • 基于像素对比,检测到移动后通过 Bark 推送到 iPhone
  • 10分钟防重复,不会轰炸式推送

🔐 安全

  • 系统管理面板需要密码验证
  • 关闭面板自动注销,防止误操作

🌐 外网访问

  • 阿里云 FRP + Nginx 反代
  • 全站 HTTPS,WebRTC 也通过 Nginx 代理

待完成:两个重要功能卡在硬件上

坦率说,目前系统还有一个关键模块没跑通:ONVIF 自动发现PTZ 云台控制

原因很现实——我手头的 TP-LINK 家用摄像头对标准 ONVIF 协议支持非常拉胯,各种406、并发限制、GOP过长导致抓帧黑屏,调试到崩溃。小米的 RTSP 又是通过 go2rtc 虚拟出来的,没法测 ONVIF。

这几天被萤石 C6c 增强版也坑了一道——买回来发现它阉割了 RTSP/ONVIF,只能退货。已经重新下单萤石 C6CN 标准版,**后这两个功能预计很快就能跑通。

后续计划

阶段 内容
短期 萤石** → ONVIF 自动发现 + PTZ 云台控制
中期 前端增加「扫描设备」一键添加摄像头
长期 封装为授权版产品,机器码 + .key 授权

技术栈

  • 后端:Python Flask + ffmpeg + SQLite
  • 前端:原生 HTML/CSS/JS(不依赖任何框架)
  • 推流:go2rtc + WebRTC
  • 部署:Docker Compose
  • 推送:Bark(iOS)

关于「简」系列

这个系列的特点就是极简部署、不依赖第三方云服务、数据完全本地化。之前的工单追踪系统已经出了买断版,监控系统稳定后也会走同样的路。


有兴趣的朋友可以留言交流,也欢迎推荐靠谱的支持标准ONVIF协议的摄像头型号。

#监控 #NAS #Python #自部署 #简系列

截图

0018aa8b5b4f3ef76b66345d9f5190b4.jpg

ed45b5d37c6d84c1837e3708d71d4486.jpg

8034fc4bfbf2cd4f8bbee73fda6e3d77.jpg

89cdd69f7939525b47ee2a2c96912356.jpg

7706fe0dde0257ff815d1458c1a50981.jpg

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则