ericwyuan 727642d38b feat: adaptive keyframe count based on video duration
- Replace fixed 5-8 keyframe limit with duration-based adaptive sizing
- Candidate frames: clamp(duration_min × 2, 30, 120)
- Keyframe cap: clamp(duration / 150s, 8, 30)
- 30min video → 12 keyframes (was 8), 60min → 24, 120min → 30
- Short videos (<12min) still get floor of 8 keyframes
- Add Ollama keep-alive config doc to PROGRESS.md (OLLAMA_KEEP_ALIVE=-1)
- Update config.yaml and config.yaml.example with new video params
2026-08-20 01:29:14 +08:00

Sentinel Home AI - 家庭多模态智能监控系统

多模型并行 + 交互式命名 + AI 对话的家庭监控系统。

架构概览

节点 角色 服务
Synology NAS FAM-Core + FAM-UI + 数据库 Flask (8000), Streamlit (8501), MariaDB (3306)
Oracle Cloud FAM-Edge Flask (5000), Ollama (11434), FFmpeg
家庭网络 用户入口 浏览器访问 FAM-UI

目录结构

sentinel-home-ai/
├── fam-core/           # NAS 端 - 任务调度/事件接收/对话/成员管理/视频服务
├── fam-edge/           # Oracle 端 - 视频预处理/AI编排/模型适配器
├── fam-ui/             # NAS 端 - Streamlit 前端
├── scripts/            # 数据库初始化/部署脚本
├── tests/              # 单元测试与集成测试
└── docs/               # 设计文档

技术栈

  • 后端: Python 3.10+, Flask, Gunicorn
  • 数据库: MariaDB (MySQL 兼容)
  • AI 模型: Ollama (llava-phi3), Gemini 1.5 Flash
  • 视频处理: FFmpeg, OpenCV
  • 前端: Streamlit

快速开始

  1. 数据库初始化: python scripts/init_db.py
  2. 启动 FAM-Core: cd fam-core && gunicorn -w 1 -b 0.0.0.0:8000 src.app:app
  3. 启动 FAM-Edge: cd fam-edge && gunicorn -w 1 -b 0.0.0.0:5000 src.app:app
  4. 启动 FAM-UI: cd fam-ui && streamlit run src/app.py

服务器访问信息

Synology NAS (FAM-Core + FAM-UI + MariaDB)

项目
IP 192.168.50.64
SSH 端口 2222
SSH 用户 ericwyuan
SSH 密码 iLoveJava5
系统 Synology DS220+ (Geminilake), DSM 7
Tailscale IP 100.70.234.39
登录命令 ssh -p 2222 ericwyuan@192.168.50.64

MariaDB 数据库 (NAS)

项目
版本 MariaDB 10.11.11
端口 3306
Socket /run/mysqld/mysqld10.sock
Root 密码 iLoveJava5!
数据库名 sentinel_home_ai
连接命令 /usr/local/mariadb10/bin/mysql -S /run/mysqld/mysqld10.sock -u root -p
mysql 路径 /usr/local/mariadb10/bin/mysql

Oracle Cloud (FAM-Edge + Ollama + FFmpeg)

项目
公网 IP 129.146.203.203
SSH 端口 22
SSH 用户 ubuntu
认证方式 RSA 私钥
私钥文件 ~/.ssh/oracle_sentinel
系统 aarch64 (ARM Ampere A1 2C12G), Ubuntu 20.04 LTS
Tailscale 已安装,待认证
登录命令 ssh -i ~/.ssh/oracle_sentinel ubuntu@129.146.203.203

Gitea 代码仓库

项目
URL http://192.168.50.64:3000/ericwyuan/sentinel-home-ai
账号 ericwyuan
密码 iLoveJava5

代码仓库

  • Gitea: http://192.168.50.64:3000/ericwyuan/sentinel-home-ai
Description
No description provided
Readme 3.2 MiB
Languages
Python 86%
Vue 11%
JavaScript 1.4%
Shell 1.2%
CSS 0.3%