项目名称:Frigate NVR(中文社区优化版)
基础项目:blakeblackshear/frigate
维护状态:在原项目基础上进行中文本地化、镜像优化与功能增强
声明:部分代码与构建脚本由 AI 辅助开发(AL-generated),核心功能与架构保留原作者设计,所有修改均遵循开源协议并标明来源。
| 特性 | 说明 |
|---|---|
| 本地化 NVR | 基于 IP 摄像头的本地网络视频录像系统,支持 RTSP/WebRTC |
| AI 物体检测 | 使用 TensorFlow/OpenCV/Coral 加速器实现本地 AI 推理 |
| Home Assistant 集成 | 支持通过自定义组件无缝接入 HA 生态 |
| 容器化部署 | 提供基于 Debian 12 的轻量级 Docker 镜像,支持多架构 |
| 多模型集成 | 预置语义搜索、人脸识别、车牌识别、鸟类分类等模型 |
| 存储智能管理 | 支持事件触发录制 + 24/7 全时录制,按对象保留策略 |
| 低延迟流媒体 | 支持 MSE 与 WebRTC 实现 <500ms 延迟预览 |
- 提升可维护性:优化配置结构与构建流程
- 增强用户体验:提供开箱即用的 AI 模型支持
- 统一文档体系:建立中英文双语文档结构
- 自动化构建与验证:确保模型完整性与镜像稳定性
- 明确贡献归属:区分原作者代码与社区/AI 生成代码
frigate/
├── README.md # 中文主文档(当前文件)
├── README_en.md # 英文文档(同步翻译)
├── LICENSE # 开源许可证(继承原项目)
├── docker-compose.yml # Docker Compose 部署文件
├── docker-compose.example.yml # 示例部署文件
├── config/
│ └── config.yml # 默认配置模板(含中文注释)
├── docs/
│ ├── static/ # 静态资源文件
│ └── ... # 文档文件
├── frigate/ # 核心代码目录
│ ├── audio/ # 音频处理模块
│ ├── database/ # 数据库模块
│ ├── detectors/ # 检测器模块
│ ├── ffmpeg/ # FFmpeg集成
│ ├── http/ # HTTP服务
│ ├── motion/ # 运动检测
│ ├── objects/ # 对象处理
│ ├── record/ # 录制模块
│ ├── snapshots/ # 快照模块
│ └── ... # 其他核心模块
├── docker/ # Docker构建相关文件
│ └── main/
│ ├── Dockerfile # 主Dockerfile
│ ├── download_models.sh # 模型预下载脚本
│ └── rootfs/ # 根文件系统
├── migrations/ # 数据库迁移脚本
├── web/ # Web前端代码
├── .github/
│ └── workflows/ # CI/CD工作流
├── .dockerignore # Docker忽略文件
├── .gitignore # Git忽略文件
└── pyproject.toml # Python项目配置✅ 说明:
- 核心功能代码位于
frigate/目录下,按功能模块组织- Docker相关文件位于
docker/main/目录下,包括Dockerfile和模型下载脚本- 配置文件位于
config/目录下- 文档位于
docs/目录下- Web前端代码位于
web/目录下
- 使用清晰的图标与标题层级
- 分离"快速开始"与"高级配置"
- 明确标注赞助商与社区资源
- 添加翻译状态徽章(Weblate)
- 包含截图与功能亮点展示
| 文档位置 | 内容 |
|---|---|
docs/ |
项目文档,包含使用指南和配置说明 |
docker/main/download_models.sh |
模型预下载脚本,用于在构建时下载AI模型 |
config/config.yml |
默认配置文件模板,包含预配置的AI模型设置 |
✅ 所有文档均需在页首声明:
本文档基于 blakeblackshear/frigate 项目整理,由中文社区维护。部分技术细节经 AI 辅助整理(AL-generated),内容力求准确,欢迎 PR 修正。
- ✅ 多阶段构建:分离构建环境与运行环境
- ✅ 模型预下载:在构建时下载并校验模型哈希值
- ✅ 缓存优化:使用 BuildKit + tmpfs 减少构建开销
- ✅ 模型路径标准化:统一为
/config/model_cache/xxx
# 示例:模型缓存结构
/config/model_cache/
├── jinaai/
│ └── jina-clip-v2/
│ ├── model_fp16.onnx
│ └── tokenizer/
│ ├── tokenizer.json
│ ├── tokenizer_config.json
│ └── special_tokens_map.json
├── facedet/
│ ├── arcface.onnx
│ ├── facenet.tflite
│ ├── facedet.onnx
│ └── landmarkdet.yaml
├── yolov9_license_plate/
│ └── yolov9-256-license-plates.onnx
├── paddleocr-onnx/
│ ├── classification.onnx
│ └── recognition.onnx
├── bird/
│ ├── bird.tflite
│ └── birdmap.txt
└── models_status.json # 模型状态文件- ✅ 支持断点续传与校验
- ✅ 自动修复路径问题(如 tokenizer 目录结构)
- ✅ 支持国内镜像加速(可选)
此脚本在 Docker 构建过程中自动执行,预下载所有必要的 AI 模型,确保镜像开箱即用。
建议将原始更新日志转换为 Keep a Changelog 格式:
## [2025-08-18] - v0.15.0-cn.1
### Added
- 支持 JinaV2 Large 模型自动下载 tokenizer 文件
- 预集成 ArcFace、YOLOv9、PaddleOCR 等模型,实现开箱即用
### Fixed
- 修复 Jina-clip-v2 模型下载路径错误
- 修复 Docker 构建时 tokenizer 文件缺失问题
- 修复 YAML 缩进导致的构建失败
- 解决镜像导出时磁盘空间不足问题(改用新卷路径)
### Changed
- 合并模型下载与清理步骤,减少镜像层数
- 优化构建流程,使用 BuildKit GC 策略管理缓存
- 重定向临时目录至独立卷,提升构建稳定性本项目基于 blakeblackshear/frigate 开发,原始作者:Blake Blackshear
开源协议:MIT License(详见原项目 LICENSE)
部分构建脚本、文档生成与结构优化由 AI(AL)辅助完成,主要用于:
- Dockerfile 优化
- 模型下载脚本重写
- 文档结构设计与内容润色
所有修改均不改变核心逻辑,旨在提升部署体验与可维护性。欢迎提交 PR 共同完善。
| 资源 | 链接 |
|---|---|
| 中文文档 | https://docs.frigate-cn.video |
| QQ 讨论群 | 1043861059 |
| Bilibili | https://space.bilibili.com/3546894915602564 |
| 翻译平台 | Weblate - Frigate-CN |
| CDN 赞助 | Tencent EdgeOne |
本次重构旨在:
- 提升项目专业性与可维护性
- 实现"开箱即用"的 AI 模型支持
- 建立清晰的文档与更新机制
- 明确标注原作者与 AI 辅助开发部分
建议后续所有提交遵循此结构,并在 PR 中注明是否涉及 AI 生成内容。
✅ 项目可持续发展 = 原作者核心 + 社区共建 + 技术工具赋能(如 AI)
欢迎更多开发者加入 Frigate 中文生态建设!