# MiBeeNvr
**Repository Path**: cqg/MiBeeNvr
## Basic Information
- **Project Name**: MiBeeNvr
- **Description**: 轻量级网络视频录像机,使用 Go 编写。支持 RTSP (H.264/MJPEG) 和 HTTP JPEG 摄像头,内置 Web 管理界面、WebDAV、FTP 和 MQTT 集成。编译为单文件静态二进制,内嵌前端页面,无需外部依赖。
- **Primary Language**: Go
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2026-09-16
- **Last Updated**: 2026-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MiBee NVR
[](https://github.com/Mi-Bee-Studio/MiBeeNvr/releases)
[](https://github.com/Mi-Bee-Studio/MiBeeNvr/actions/workflows/ci.yml)
[](https://go.dev/)
[](https://svelte.dev/)
[](https://www.sqlite.org/)
[](https://www.docker.com/)
[](https://www.arm.com/)
[](LICENSE)
[](https://github.com/Mi-Bee-Studio/MiBeeNvr/graphs/contributors)
轻量级、易上手的网络视频录像机,单文件部署,零配置烦恼——下载即用。
专为低功耗 ARM 设备打造(在树莓派 3B 上验证最低配置)。支持主流协议:**RTSP**(H.264/H.265/MJPEG)、**HTTP JPEG**、**HLS** 直播流、**ONVIF** 设备发现、**WebRTC**(WHEP)、**HTTP-FLV**、**RTMP** 接入、**SRT** 接收器。
[**English**](README.md)
## 截图

*监控大屏:多宫格实时画面(WebCodecs / MJPEG),叠加健康分与 AI 检测*

*录像页:时间轴 + AI 事件标记,支持列表 / 延时摄影视图*

*摄像头页:扫描发现、启停、转推输出一站式管理*
## 核心功能
- **摄像头协议**:RTSP(H.264/H.265/MJPEG)、HTTP JPEG、ONVIF 设备发现与管理、GB/T 28181 国标平台(海康/大华等 SIP 设备注册接入,实验性)、SRT/RTMP 收推(跨网络接入)、原生 Go 转推(把任意摄像头转发到远端,无 FFmpeg)
- **即插即用自动发现**:接入局域网的 ONVIF 摄像头会在后台自动登记(海康 NVR 风格),无需手动扫描。无需认证的设备立即开始录制;需要认证的设备先添加为待激活状态,等你提供凭据后再启用
- **视频录像**:自动 MP4 切片、多摄像头并发、按摄像头设置保留天数、音频录制(AAC + G.711 + Opus)
- **连续回放**:双缓冲无缝换段 + 全天 VOD 时间轴(跨录像/跨空隙拖动)、AVI 帧浏览
- **局域网发现**:mDNS `_mibee-nvr._tcp` 通告 + UDP 49090 广播应答;`/api/health` 暴露稳定 `device_id`
- **实时直播**:HLS / WebRTC(WHEP)/ HTTP-FLV 多协议直播,RTMP 接入 + SRT 接收器
- **片段合并**:自动/手动合并,全局 + 按摄像头策略
- **Web 界面**:深色/浅色主题、响应式、中英文切换、Chart.js 图表
- **智能家居**:MQTT 触发录像、WebDAV/FTP 文件访问
- **单文件部署**:零依赖、内嵌前端、`CGO_ENABLED=0`
- **小米摄像头**:CS2 P2P + 旧版 TUTK(7 款型号)、云端认证(社区驱动,非核心功能)
- **健康监控**:多层摄像头健康检测、自动修复、质量评分
- **IP 自愈**:摄像头在多个无线 AP 间漫游导致 IP 变更时,ONVIF 摄像头按序列号自动重新发现并重连(黑名单自动触发 + 手动按钮),单播探测跨子网可用
- **视频转码**:基于 FFmpeg 的硬件转码,H.265→H.264 转换
- **延时摄影**:定时快照延时录像
- **WebSocket 流**:实时二进制帧流
- **AI 检测**:ONNX Runtime 推理,浏览器端目标检测
- **事件系统**:基于 SSE 的实时事件流
## 开发路线
| 状态 | 协议 / 功能 | 说明 |
|------|------------|------|
| ✅ 已完成 | RTSP(H.264/H.265/MJPEG) | 核心流媒体协议 |
| 🧪 实验性 | GB/T 28181 | 国标平台:设备注册、目录、PTZ、语音对讲、设备录像检索回放、报警订阅、级联(尚未在海康/大华真机全量验证,默认关闭) |
| ✅ 已完成 | HTTP JPEG | IP 摄像头快照流 |
| ✅ 已完成 | HLS | 按需直播流 |
| ✅ 已完成 | ONVIF | 设备发现、云台控制、流地址获取 |
| ✅ 已完成 | 小米(CS2 + 旧版 TUTK) | 云端认证、H.264/H.265 — 社区支持,7 款 TUTK 旧型号 |
| ✅ 已完成 | RTMP(接入) | 收推:接收远端推流 |
| ✅ 已完成 | SRT(接入) | 收推:低延迟传输 |
| ✅ 已完成 | RTMP/RTSP(转推) | 转推:原生 Go 中继,转发到远端目标,可选 FFmpeg 兼容模式 |
| ✅ 已完成 | HTTP-FLV | 浏览器友好的直播流 |
| ✅ 已完成 | WebRTC | 亚秒级延迟实时预览 |
| ✅ 已完成 | 音频录制与实时预览 | AAC + G.711 + Opus,按摄像头开关,WebSocket 实时音频播放 |
| ✅ 已完成 | 健康监控 | 多层检测、自动修复 |
## 快速开始
### 方式 1:预编译二进制(推荐)
从 [GitHub Releases](https://github.com/Mi-Bee-Studio/MiBeeNvr/releases) 下载最新二进制文件:
```bash
# AMD64(大多数 PC/服务器)
wget https://github.com/Mi-Bee-Studio/MiBeeNvr/releases/latest/download/mibee-nvr-amd64
chmod +x mibee-nvr-amd64
# ARM64(树莓派等)
wget https://github.com/Mi-Bee-Studio/MiBeeNvr/releases/latest/download/mibee-nvr-arm64
chmod +x mibee-nvr-arm64
# ARMv7(树莓派 2/3 等)
wget https://github.com/Mi-Bee-Studio/MiBeeNvr/releases/latest/download/mibee-nvr-armv7
chmod +x mibee-nvr-armv7
```
初始化配置并启动:
```bash
./mibee-nvr-amd64 init --password yourpassword
./mibee-nvr-amd64 -config mibee-nvr.yaml
```
打开 `http://localhost:9090` 即可访问管理界面。
### 方式 2:Docker
```bash
docker compose --project-directory . -f deploy/docker/docker-compose.yml up -d
```
打开 `http://localhost:9090` 即可访问管理界面。
如需将录像存储到外部硬盘,请修改 `docker-compose.yml` 中的卷挂载:
```yaml
volumes:
- /mnt/external/nvr:/data # ← 改为宿主机路径
environment:
- NVR_DATA_DIR=/data # 必须与卷挂载一致
```
详见 [`deploy/docker/docker-compose.yml`](deploy/docker/docker-compose.yml)。
### 方式 3:一键安装脚本
```bash
curl -fsSL https://raw.githubusercontent.com/Mi-Bee-Studio/MiBeeNvr/main/install.sh | sudo bash
```
自动下载二进制文件、创建系统用户(`nvr`)、生成配置、安装 systemd 服务并启动。数据目录:`/var/lib/mibee-nvr`。
### 方式 4:源码编译
```bash
git clone https://github.com/Mi-Bee-Studio/MiBeeNvr.git
cd MiBeeNvr
make build
./mibee-nvr init --password yourpassword
./mibee-nvr -config mibee-nvr.yaml
```
详细设置请参考 [快速入门](docs/zh/getting-started.md)。
## 文档
| 文档 | 说明 |
|------|------|
| [快速入门](docs/zh/getting-started.md) | 安装、添加第一个摄像头 |
| [配置说明](docs/zh/configuration.md) | 完整配置参考 |
| [API 文档](docs/zh/api/README.md) | REST API 接口文档 |
| [MediaMTX 指南](docs/zh/mediamtx-guide.md) | MediaMTX CSI 摄像头集成 |
| [部署指南](docs/zh/deployment.md) | systemd、反向代理、交叉编译,及各 **NAS** 平台指南(unRAID / 飞牛 / iStoreOS / 群晖 / 威联通 / 极空间) |
| [Docker 自动升级](docs/zh/deployment-autoupdate.md) | 手动升级 + 可选 Watchtower 自动升级与回滚 |
| [摄像头指南](docs/zh/camera-guide.md) | 摄像头设置、协议、故障排除 |
| [Xiaomi 设置](docs/zh/xiaomi-setup.md) | 小米云摄像头集成 |
| [ONVIF 指南](docs/zh/onvif-guide.md) | ONVIF 摄像头设置、云台控制、故障排除 |
| [FTP 集成](docs/zh/ftp-integration.md) | FTP 文件访问设置 |
| [MQTT 集成](docs/zh/mqtt-integration.md) | MQTT 智能家居集成 |
| [WebDAV 集成](docs/zh/webdav-integration.md) | WebDAV 文件访问设置 |
| [故障排除](docs/zh/troubleshooting.md) | 常见问题与解决方案 |
| [视频转码](docs/zh/transcoding.md) | FFmpeg 转码设置 |
| [Prometheus 指标](docs/zh/metrics.md) | 完整的 Prometheus 指标参考,包含类型、标签和使用示例 |
```bash
make build # 本机编译(当前架构)
make cross # 交叉编译 ARM64 二进制
make test # 运行测试
make lint # 代码检查
```
## Docker 容器镜像
快速部署请参考 [`deploy/docker/docker-compose.yml`](deploy/docker/docker-compose.yml):
```bash
docker compose --project-directory . -f deploy/docker/docker-compose.yml up -d
```
使用位于 `deploy/docker/Dockerfile` 的单一多架构构建文件:在容器内交叉编译前端与后端,并复用预构建的多架构基础镜像(含 FFmpeg),全程无需 QEMU 模拟。
```bash
# 构建 amd64 镜像
make docker-build
# 构建 arm64 镜像(容器内交叉编译,无需 QEMU)
make docker-build-arm64
# 构建全部架构
make docker-build-all
# 推送到镜像仓库(需先 docker/podman login)
make docker-push # 推送 amd64
make docker-push-arm64 # 推送 arm64
make docker-push-all # 推送全部
# 一键构建并推送
make docker-release
```
镜像在打版本标签时自动发布到 GitHub Container Registry:
| 镜像 | 架构 |
|------|------|
| `ghcr.io/mi-bee-studio/mibeenvr:` | amd64, arm64, armv7 |
可用标签:`0.11.0`(精确版本)、`0.11`(次版本)、`0`(主版本)、`latest`
## 项目结构
```text
cmd/mibee-nvr/ # 程序入口
internal/ # 核心模块(43 个)
ai/ # AI 配置 + ROI 区域存储(推理在浏览器端,见 web/src/lib/ai-detection/)
api/ # REST API
camera/ # 摄像头管理
cleanup/ # 保留策略 + 磁盘清理
config/ # YAML 配置、验证
event/ # 发布/订阅事件总线
flv/ # HTTP-FLV 直播
ftp/ # FTP 服务
health/ # 摄像头健康监控
hls/ # HLS 直播(+ LL-HLS)
merge/ # 片段合并
metrics/ # Prometheus 指标
middleware/ # 认证、限流
model/ # 核心类型
mqtt/ # MQTT 客户端
muxer/ # MP4 封装器
onvif/ # ONVIF 发现、云台控制
recorder/ # H.264/H.265/MJPEG/JPEG/ONVIF/小米/延时录像引擎
rtmp/ # RTMP 接入服务
srt/ # SRT 监听器
storage/ # SQLite 数据库 + 文件管理
timelapse/ # 延时录像管理器
transcoding/ # FFmpeg 转码
ui/ # 内嵌 Web UI
upload/ # HTTP 上传处理
webdav/ # WebDAV 服务
webrtc/ # WebRTC WHEP 直播
wsstream/ # WebSocket 直播流
xiaomi/ # 小米摄像头(CS2 P2P)
web/ # Svelte 5 前端
deploy/ # systemd 服务文件
docs/ # 文档(中文/英文)
```
## 贡献
1. 提交前运行 `make lint`
2. 新功能附带测试
3. 清晰的提交信息
感谢所有贡献者:
[](https://github.com/Mi-Bee-Studio/MiBeeNvr/graphs/contributors)
## 许可证
[AGPL-3.0-only](LICENSE) © Mi&Bee Studio,附带 [`pkg/` 链接例外](LICENSE.pkg-linking-exception)——第三方程序可以基于扩展接口构建,不触发 AGPL 义务。
- **使用 MiBee NVR**(运行、录像、看流):无任何义务,可自由使用(包括商用)。
- **修改并分发**:修改版必须以 AGPL-3.0 开源发布。
- **在自己的程序中使用 `pkg/` 接口**:受链接例外保护,你的程序许可证由你决定。
- **独立进程通过 HTTP/WebSocket API 调用运行中的 NVR**:完全不受许可证影响。
v0.10.1 及更早版本以 MIT 授权发布,继续适用于那些版本。第三方组件声明见 [NOTICE](NOTICE),贡献授权政策见 [CONTRIBUTING.md](CONTRIBUTING.md)。