Loading...
Loading...
Configure Frigate NVR with optimized YAML, object detection, recording, zones, and hardware acceleration. Use when setting up Frigate cameras, troubleshooting detection issues, configuring Coral TPU/OpenVINO, or integrating with Home Assistant.
npx skill4agent add nodnarbnitram/claude-code-extensions frigate-configuratorComprehensive Frigate NVR configuration assistance with optimized YAML generation, detector setup, and troubleshooting.
| Metric | Without Skill | With Skill |
|---|---|---|
| Setup Time | 2-4 hours | 30-45 min |
| Common Errors | 12+ | 0 |
| Token Usage | ~15,000 | ~6,000 |
mqtt:
enabled: false
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.1.100:554/stream1
roles:
- detect
detect:
width: 1280
height: 720
fps: 5detectors:
coral:
type: edgetpu
device: usb
# OR for Intel with OpenVINO:
detectors:
ov:
type: openvino
device: GPUrecord:
enabled: true
retain:
days: 1
mode: motion
alerts:
retain:
days: 14
detections:
retain:
days: 7
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.1.100:554/stream1
roles:
- detect
- path: rtsp://user:pass@192.168.1.100:554/stream2
roles:
- recordwidthheightdetectdetectrecordshm-size{FRIGATE_RTSP_PASSWORD}localhost127.0.0.1/media/frigatecameras:
cam1:
ffmpeg:
inputs:
- path: rtsp://192.168.1.100/stream
roles:
- detect
- record
detect:
width: 1920
height: 1080
fps: 30cameras:
cam1:
ffmpeg:
inputs:
- path: rtsp://192.168.1.100/substream
roles:
- detect
- path: rtsp://192.168.1.100/mainstream
roles:
- record
detect:
width: 1280
height: 720
fps: 5| Issue | Root Cause | Solution |
|---|---|---|
| Bus Error | Insufficient shared memory | Set |
| Database Locked | SQLite on network storage | Use |
| Green/Distorted Video | Wrong resolution in config | Match camera's actual output resolution |
| No Audio in Recordings | Default audio removal | Use |
| MQTT Connection Failed | localhost in Docker | Use host IP address instead |
| Coral Not Detected | Missing device passthrough | Add |
| High CPU Usage | Missing hwaccel | Add appropriate preset (vaapi/qsv/nvidia) |
| Missing Alerts | No required_zones | Configure zones with review.alerts.required_zones |
| UDP Stream Failures | TCP is default in Frigate | Add |
# MQTT Configuration (optional but recommended)
mqtt:
enabled: true
host: 192.168.1.50
port: 1883
user: "{FRIGATE_MQTT_USER}"
password: "{FRIGATE_MQTT_PASSWORD}"
# Detector Configuration
detectors:
coral:
type: edgetpu
device: usb # or pci for M.2/PCIe
# Global Object Settings
objects:
track:
- person
- car
- dog
- cat
filters:
person:
min_area: 5000
max_area: 100000
threshold: 0.7
# Recording Settings
record:
enabled: true
retain:
days: 1
mode: motion
alerts:
retain:
days: 14
detections:
retain:
days: 7
# Snapshot Settings
snapshots:
enabled: true
retain:
default: 7
# Camera Configuration
cameras:
front_door:
enabled: true
ffmpeg:
inputs:
- path: "rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/stream1"
input_args: preset-rtsp-restream
roles:
- detect
- path: "rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/stream0"
input_args: preset-rtsp-restream
roles:
- record
output_args:
record: preset-record-generic-audio-aac
detect:
width: 1280
height: 720
fps: 5
motion:
mask:
- 0,0,200,0,200,100,0,100 # Timestamp area
zones:
front_yard:
coordinates: 100,500,400,500,400,720,100,720
objects:
- person
- car
review:
alerts:
required_zones:
- front_yarddetect.fpsdetect.width/heightrecord.retain.modemotionactive_objectsmotion.maskzones.coordinates# For Intel gen8+ (prefer QSV)
ffmpeg:
hwaccel_args: preset-intel-qsv-h264 # or preset-intel-qsv-h265
# For Intel gen1-gen7 (use VAAPI)
ffmpeg:
hwaccel_args: preset-vaapiffmpeg:
hwaccel_args: preset-nvidia# docker-compose.yml
services:
frigate:
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=allffmpeg:
hwaccel_args: preset-vaapi
# docker-compose.yml
environment:
- LIBVA_DRIVER_NAME=radeonsi# Raspberry Pi 4/5
ffmpeg:
hwaccel_args: preset-rpi-64-h264 # or preset-rpi-64-h265gpu_mem=128/boot/config.txtdetectors:
coral:
type: edgetpu
device: usb # Single USB Coral
# device: usb:0 # First of multiple USB Coralsdevices:
- /dev/bus/usb:/dev/bus/usbdetectors:
coral:
type: edgetpu
device: pci
# device: pci:0 # First of multiple PCIe Coralsdetectors:
ov:
type: openvino
device: GPU # or CPU
model:
path: /openvino-model/ssdlite_mobilenet_v2.xml
width: 300
height: 300detectors:
onnx:
type: onnx
# Automatically uses: ROCm (AMD), OpenVINO (Intel), TensorRT (NVIDIA)zones:
driveway:
coordinates: 100,500,400,500,400,720,100,720
distances:
- "100,500|400,500|20ft" # 20 feet between points
speed:
threshold: 15 # Minimum mph to registeraudio:
enabled: true
listen:
- bark
- fire_alarm
- scream
- speech
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://camera/stream
roles:
- audiogenai:
enabled: true
provider: ollama
base_url: http://192.168.1.100:11434
model: llavaface_recognition:
enabled: true
threshold: 0.6
cameras:
front_door:
detect:
width: 1280 # Higher res improves face detectionlpr:
enabled: true
cameras:
driveway:
lpr:
enabled: truego2rtc:
streams:
front_door:
- rtsp://user:pass@192.168.1.100:554/stream1
- "ffmpeg:front_door#video=copy#audio=opus"
webrtc:
candidates:
- 192.168.1.50:8555
- stun:8555services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
restart: unless-stopped
shm_size: "256mb"
devices:
- /dev/bus/usb:/dev/bus/usb # USB Coral
- /dev/dri/renderD128:/dev/dri/renderD128 # Intel GPU
volumes:
- ./config:/config
- ./storage:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971" # Web UI
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC
- "8555:8555/udp" # WebRTC
environment:
FRIGATE_RTSP_USER: admin
FRIGATE_RTSP_PASSWORD: ${RTSP_PASSWORD}
FRIGATE_MQTT_USER: frigate
FRIGATE_MQTT_PASSWORD: ${MQTT_PASSWORD}templates/docker-compose.ymlconfig-minimal.ymlconfig-full.ymlreferences/detector-comparison.mdffmpeg-presets.mdmqtt-topics.mdscripts/validate-config.sh| Package | Version | Purpose |
|---|---|---|
| Docker | 20.10+ | Container runtime |
| docker-compose | 2.0+ | Service orchestration |
| Package | Version | Purpose |
|---|---|---|
| NVIDIA Container Toolkit | Latest | NVIDIA GPU support |
| Coral Edge TPU runtime | Latest | Coral TPU support |
# Test RTSP URL directly
ffprobe -rtsp_transport tcp "rtsp://user:pass@ip:554/stream"
# Check Docker logs
docker logs frigate 2>&1 | grep -i "camera_name"/api/stats# Ensure record role is assigned
cameras:
cam1:
ffmpeg:
inputs:
- path: rtsp://camera/stream
roles:
- record # Must be explicitly set
record:
enabled: true # Must be true