111 lines
3.0 KiB
Markdown
111 lines
3.0 KiB
Markdown
# Frigate
|
|
|
|
## 🎥 Overview
|
|
Frigate is an open-source network video recorder (NVR) with real-time AI-based object detection.
|
|
It is designed to work with IP cameras and integrates tightly with Home Assistant to provide smart, event-driven automations.
|
|
|
|
## 🚀 What it does
|
|
- Records video streams from IP cameras
|
|
- Performs real-time object detection (people, animals, vehicles, etc.)
|
|
- Generates events and snapshots based on detections
|
|
- Provides a web UI for live view, recordings, and review
|
|
- Integrates with MQTT and Home Assistant
|
|
|
|
## 🌐 Website
|
|
- https://frigate.video/
|
|
|
|
## ⚙️ Features
|
|
- Real-time object detection using TensorFlow Lite
|
|
- Motion detection + object classification
|
|
- RTSP camera support
|
|
- Event-based recording (not just continuous)
|
|
- Timeline and review UI
|
|
- MQTT integration for automation
|
|
- Multi-camera support
|
|
|
|
## 🧠 AI Acceleration
|
|
Frigate works best with hardware acceleration:
|
|
|
|
- **Google Coral TPU (recommended)** → best performance, low power
|
|
- CPU-only → works but limited performance
|
|
- GPU acceleration (optional, more complex)
|
|
|
|
## 📦 Kubernetes Deployment Notes
|
|
- Requires:
|
|
- Persistent storage (recordings + config)
|
|
- Access to camera streams (RTSP)
|
|
- Recommended setup:
|
|
- PVC for `/config` and `/media`
|
|
- Service + Ingress for web UI
|
|
- Optional:
|
|
- Device passthrough for Coral TPU:
|
|
- `/dev/bus/usb` (USB Coral)
|
|
- Considerations:
|
|
- High disk I/O (video recording)
|
|
- CPU usage if no accelerator is present
|
|
|
|
## 📁 Storage Structure
|
|
- `/config` → Frigate configuration (YAML)
|
|
- `/media` → recordings, clips, snapshots
|
|
|
|
## 🔌 Integrations
|
|
- **Home Assistant** (native integration)
|
|
- MQTT broker (required for event communication)
|
|
- RTSP cameras (e.g. Reolink)
|
|
|
|
## 🎥 Camera Integration
|
|
Typical flow:
|
|
|
|
Camera (RTSP)
|
|
↓
|
|
Frigate (detects objects)
|
|
↓
|
|
MQTT (events)
|
|
↓
|
|
Home Assistant (automations, notifications)
|
|
|
|
## 🔐 Authentication
|
|
- Built-in authentication for UI
|
|
- Can be secured behind:
|
|
- Reverse proxy (Ingress / NGINX)
|
|
- SSO (e.g. Authentik via OAuth2 proxy)
|
|
|
|
## ⚠️ Things to know
|
|
- Object detection requires tuning for best results
|
|
- CPU-only setups may struggle with multiple cameras
|
|
- Storage grows quickly → plan retention policies
|
|
- Requires stable RTSP streams from cameras
|
|
|
|
## 🧠 Why use it
|
|
- Local, privacy-friendly camera processing
|
|
- Powerful AI detection without cloud dependency
|
|
- Deep integration with Home Assistant
|
|
- Efficient event-based recording
|
|
|
|
## 🔧 Typical Stack in Undercloud
|
|
- Frigate → NVR + AI detection
|
|
- Home Assistant → automation + UI
|
|
- MQTT (Mosquitto) → event bus
|
|
- Reolink cameras → video source
|
|
- Coral TPU (optional) → AI acceleration
|
|
|
|
## 📝 Example Config Snippet
|
|
```yaml
|
|
mqtt:
|
|
host: mqtt.apps.undercloud.dev
|
|
|
|
cameras:
|
|
living_room:
|
|
ffmpeg:
|
|
inputs:
|
|
- path: rtsp://user:password@camera-ip/stream
|
|
roles:
|
|
- detect
|
|
- record
|
|
detect:
|
|
enabled: true
|
|
objects:
|
|
track:
|
|
- person
|
|
- dog
|
|
- cat |