NAS宝藏开源项目:免费搭建智能视频监控平台

最近在 GitHub 上刷到一个特别实用的开源项目——Owl,这是一个完全免费的视频监控平台,用 Go 语言开发的,部署起来超级简单。更厉害的是,它不仅支持各种主流的监控协议,还内置了 AI 智能检测功能。看了一圈,感觉这个项目真的很适合分享给大家。
这个项目是干什么的#
Owl 是一个视频监控管理平台,说白了就是让你能把各种摄像头接入进来,然后在网页上统一管理和观看。不管你的摄像头是什么牌子、什么型号,基本上都能接进来用。
这个项目最大的亮点就是开箱即用。不需要你有多深的技术功底,跟着文档操作,很快就能把整套系统搭起来。而且完全免费开源,代码放在 GitHub 上,想怎么改就怎么改。
项目地址:https://github.com/gowvp/owl
在线演示:http://gowvp.golang.space: 15123(用户名密码都是 admin)
有兴趣的朋友可以先去看看在线演示,直观感受一下效果。
为什么值得关注#
说起视频监控,很多人第一反应就是海康、大华这些品牌的商业方案。但问题是,这些方案要么价格不便宜,要么功能被限制得死死的。想自己折腾一套,又发现开源项目大多是 Java 或 C++ 写的,光是把环境搭起来就要费半天劲。
Owl 这个项目就很好地解决了这些痛点:
部署简单到爆。因为是用 Go 语言开发的,编译出来就是一个独立的可执行文件,没有乱七八糟的依赖。再加上 Docker 镜像,一条命令就能跑起来。
协议支持全面。国标 GB28181 协议支持得特别好(2011、2016、2022 三个版本都支持),还支持 ONVIF、RTSP、RTMP 这些常见协议。也就是说,不管你家里的摄像头是国产的还是进口的,新的还是旧的,基本都能接入。
带 AI 检测功能。集成了 YOLO 物体识别算法,能自动识别画面中的人、车、动物等。比如你想知道有没有陌生人闯入院子,或者想统计每天有多少车经过门口,这个功能就派上用场了。
节省带宽。有个很聪明的设计叫”按需拉流”,就是只有当你打开网页看监控的时候,系统才会从摄像头拉取视频。没人看的时候自动停止,这样能节省大量带宽和流量。
功能清单#
看看这个平台具体都能干什么:
设备接入
- 支持 GB28181 标准设备(摄像头、NVR、平台级联等)
- 支持 ONVIF 协议的网络摄像机
- 支持 RTSP 和 RTMP 流媒体设备
- 可以自动发现局域网内的 ONVIF 设备
视频播放
- 浏览器直接播放,不需要装插件
- 支持 H264 和 H265 视频编码
- 支持 G711A、G711U、AAC 音频编码
- 支持多种播放协议:HTTP-FLV、WebSocket-FLV、HLS、WebRTC、RTSP、RTMP
- 可以跨网络观看(内网摄像头,外网也能看)
智能检测
- YOLO AI 物体识别
- 默认每秒检测 5 帧画面
- 可以根据需要关闭或调整检测频率
其他功能
- 设备目录查询
- 设备信息查询
- 实时快照抓取
- 设备校时
- 自动离线检测
- 中文和英文界面切换
手把手教你部署#
好了,重点来了——怎么把这个平台搭起来。作者提供了超级简单的 Docker 部署方案,跟着做就行。
准备工作#
部署之前,你需要确保服务器上已经装好了:
- Docker(必须)
- Docker Compose(必须)
第一步:创建一个目录,比如叫 owl-nvr
1 | mkdir owl-nvr |
第二步:创建 docker-compose.yml 文件
1 | nano docker-compose.yml |
把下面的内容复制进去:
1 | services: |
第三步:启动服务
1 | docker compose up -d |
看到类似 “Container owl-nvr-gowvp-1 Started” 的提示,就说明启动成功了。
第四步:访问管理界面
打开浏览器,访问 http://你的服务器IP:15123
默认账号密码都是:admin
第一次登录建议马上修改密码。
有些地区访问 Docker Hub 可能比较慢,可以改用阿里云镜像:
1 | image: registry.cn-shanghai.aliyuncs.com/ixugo/homenvr:latest |
AI 检测功能配置#
Owl 默认就开启了 AI 检测,每秒检测 5 帧画面。不需要额外配置,直接就能用。
如果你觉得检测太频繁或者不需要 AI 功能,可以关闭它:
- 进入容器配置文件:
1 | docker exec -it owl-nvr-gowvp-1 cat /opt/media/bin/configs/config.toml |
- 修改配置文件,添加或修改这一行:
1 | disabledAI = true |
- 重启服务:
1 | docker compose restart |
使用 Nginx 反向代理#
如果想通过域名访问,可以配置 Nginx 反向代理。配置文件里加上这几行:
1 | proxy_set_header X-Forwarded-Host $host; |
适合什么场景#
这个项目特别适合以下场景:
家庭监控:想在家里装几个摄像头看宠物、看孩子,又不想花大价钱买商业方案的。
小微企业:公司规模不大,想搭个监控系统管理办公区、仓库、门店的。
学习研究:想了解视频监控技术、GB28181 协议,或者学习 Go 语言项目开发的。
私有化部署:对数据安全特别在意,不想把视频流传到云端厂商那里的。
老设备利用:手头有一堆旧摄像头,想统一管理起来继续用的。
项目资源#
如果想深入了解这个项目,这些资源可能有帮助:
项目地址:https://github.com/gowvp/owl
在线演示:http://gowvp.golang.space:15123
API 文档:https://apifox.com/apidoc/shared-7b67c918-5f72-4f64-b71d-0593d7427b93
作者还写了一系列开发日记,从零开始讲怎么实现 GB28181 协议,挺适合想学习的朋友:
- GB/T28181 开源日记[1]:从 0 到实现 GB28181 协议的完整实践
- GB/T28181 开源日记[2]:搭建服务端,解决跨域,接口联调
- GB/T28181 开源日记[3]:使用 React 组件构建监控数据面板
等等,一共有 8 篇,都发在掘金上,搜”GB/T28181 开源日记”就能找到。
还有一些使用教程,都挺详细的,新手也能看懂。
写在最后#
Owl 这个项目目前已经有 600 多个 Star 了,社区挺活跃的。作者还在持续更新,下一步计划支持 HomeKit 集成(也就是能在苹果 Home 里看摄像头),还有录像回放、PTZ 云台控制等功能。
如果你正好有视频监控的需求,不妨试试这个项目。部署真的很简单,10 分钟就能跑起来。就算最后没用上,折腾一下学点东西也挺好的。
NAS宝藏开源项目:免费搭建智能视频监控平台