Thanks to visit codestin.com
Credit goes to github.com

Skip to content

xxoolm/frigate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Frigate 项目重构与优化方案

项目名称: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 延迟预览

️ 二、重构目标

  1. 提升可维护性:优化配置结构与构建流程
  2. 增强用户体验:提供开箱即用的 AI 模型支持
  3. 统一文档体系:建立中英文双语文档结构
  4. 自动化构建与验证:确保模型完整性与镜像稳定性
  5. 明确贡献归属:区分原作者代码与社区/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/ 目录下

四、文档结构优化建议

1. 主文档 (README.md) 优化点

  • 使用清晰的图标与标题层级
  • 分离"快速开始"与"高级配置"
  • 明确标注赞助商与社区资源
  • 添加翻译状态徽章(Weblate)
  • 包含截图与功能亮点展示

2. 现有文档模块

文档位置 内容
docs/ 项目文档,包含使用指南和配置说明
docker/main/download_models.sh 模型预下载脚本,用于在构建时下载AI模型
config/config.yml 默认配置文件模板,包含预配置的AI模型设置

✅ 所有文档均需在页首声明:

本文档基于 blakeblackshear/frigate 项目整理,由中文社区维护。部分技术细节经 AI 辅助整理(AL-generated),内容力求准确,欢迎 PR 修正。


五、构建与更新机制重构

1. 镜像构建优化(Dockerfile)

  • ✅ 多阶段构建:分离构建环境与运行环境
  • ✅ 模型预下载:在构建时下载并校验模型哈希值
  • ✅ 缓存优化:使用 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              # 模型状态文件

2. 模型下载脚本 (docker/main/download_models.sh)

  • ✅ 支持断点续传与校验
  • ✅ 自动修复路径问题(如 tokenizer 目录结构)
  • ✅ 支持国内镜像加速(可选)

此脚本在 Docker 构建过程中自动执行,预下载所有必要的 AI 模型,确保镜像开箱即用。


六、更新日志标准化(CHANGELOG.md)

建议将原始更新日志转换为 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 贡献声明

部分构建脚本、文档生成与结构优化由 AI(AL)辅助完成,主要用于:

  • Dockerfile 优化
  • 模型下载脚本重写
  • 文档结构设计与内容润色

所有修改均不改变核心逻辑,旨在提升部署体验与可维护性。欢迎提交 PR 共同完善。


八、社区资源整合

资源 链接
中文文档 https://docs.frigate-cn.video
QQ 讨论群 1043861059
Bilibili https://space.bilibili.com/3546894915602564
翻译平台 Weblate - Frigate-CN
CDN 赞助 Tencent EdgeOne

✅ 总结

本次重构旨在:

  1. 提升项目专业性与可维护性
  2. 实现"开箱即用"的 AI 模型支持
  3. 建立清晰的文档与更新机制
  4. 明确标注原作者与 AI 辅助开发部分

建议后续所有提交遵循此结构,并在 PR 中注明是否涉及 AI 生成内容。


项目可持续发展 = 原作者核心 + 社区共建 + 技术工具赋能(如 AI)

欢迎更多开发者加入 Frigate 中文生态建设!

About

基于 IP 摄像头的本地网络视频录像系统,支持 RTSP/WebRTC

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • TypeScript 50.7%
  • Python 46.0%
  • Shell 1.2%
  • CSS 0.8%
  • Dockerfile 0.5%
  • JavaScript 0.3%
  • Other 0.5%