frigate-configurator

Frigate NVR Configuration Expert

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "frigate-configurator" with this command: npx skills add nodnarbnitram/claude-code-extensions/nodnarbnitram-claude-code-extensions-frigate-configurator

Frigate NVR Configuration Expert

Comprehensive Frigate NVR configuration assistance with optimized YAML generation, detector setup, and troubleshooting.

BEFORE YOU START

This skill prevents 12+ common errors and saves ~60% tokens on Frigate configuration.

Metric Without Skill With Skill

Setup Time 2-4 hours 30-45 min

Common Errors 12+ 0

Token Usage ~15,000 ~6,000

Known Issues This Skill Prevents

  • Bus errors from insufficient shared memory allocation

  • Green/distorted video from incorrect resolution configuration

  • Database locked errors when using network storage for SQLite

  • Missing audio in recordings due to default audio stripping

  • MQTT connection failures from using localhost in Docker

  • Coral TPU not detected due to missing device passthrough

  • High CPU usage from missing hardware acceleration

  • False positives from missing motion masks on timestamps

  • No alerts triggered due to misconfigured required_zones

  • Recording corruption from h265 streams without transcoding

  • go2rtc WebRTC failures from missing STUN configuration

  • Object detection misses from wrong detect stream resolution

Quick Start

Step 1: Create Minimal Configuration

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: 5

Why this matters: Start with the absolute minimum to verify camera connectivity before adding complexity. Frigate requires explicit detect stream role assignment.

Step 2: Add Hardware-Accelerated Detector

detectors: coral: type: edgetpu device: usb

OR for Intel with OpenVINO:

detectors: ov: type: openvino device: GPU

Why this matters: CPU detection is not recommended for production. Even a single USB Coral TPU dramatically reduces CPU usage and improves detection latency.

Step 3: Enable Recording with Retention

record: 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: - record

Why this matters: Use separate streams for detect (low-res) and record (high-res) to optimize performance. Retention modes prevent storage from filling up.

Critical Rules

Always Do

  • Use width and height that match your camera's ACTUAL resolution (verify with VLC)

  • Set detect fps between 5-10 (higher wastes resources, lower misses events)

  • Use separate streams for detect (sub-stream) and record (main stream)

  • Allocate adequate shm-size in Docker (64MB minimum per camera)

  • Create motion masks for timestamp overlays and areas with constant motion

  • Use environment variables for credentials: {FRIGATE_RTSP_PASSWORD}

  • Test RTSP URLs in VLC first before adding to Frigate config

Never Do

  • Never use localhost or 127.0.0.1 for MQTT inside Docker containers

  • Never set detect resolution higher than 1280x720 (wastes detector capacity)

  • Never enable recording without specifying retention policy

  • Never mount /media/frigate on network storage without relocating database

  • Never mix multiple detector types for object detection (e.g., Coral + OpenVINO)

  • Never use UDP RTSP transport without explicit configuration (TCP is default)

Common Mistakes

Wrong:

cameras: cam1: ffmpeg: inputs: - path: rtsp://192.168.1.100/stream roles: - detect - record detect: width: 1920 height: 1080 fps: 30

Correct:

cameras: 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

Why: Using 1080p@30fps for detection wastes resources. Detection works best at 720p or lower at 5fps. Always use the camera's sub-stream for detection and main stream for recording.

Known Issues Prevention

Issue Root Cause Solution

Bus Error Insufficient shared memory Set shm-size: 256mb in docker-compose

Database Locked SQLite on network storage Use database.path: /config/frigate.db

Green/Distorted Video Wrong resolution in config Match camera's actual output resolution

No Audio in Recordings Default audio removal Use preset-record-generic-audio-aac

MQTT Connection Failed localhost in Docker Use host IP address instead

Coral Not Detected Missing device passthrough Add /dev/bus/usb to Docker devices

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 preset-rtsp-udp to input args

Configuration Reference

config.yml Structure

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_yard

Key settings:

  • detect.fps : 5 is optimal for most cameras (reduces detector load)

  • detect.width/height : Must match actual camera sub-stream resolution

  • record.retain.mode : Use motion or active_objects to save storage

  • motion.mask : Define polygons as comma-separated coordinates

  • zones.coordinates : Bottom-center of bounding box determines zone presence

Hardware Acceleration Presets

Intel (6th Gen+)

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-vaapi

NVIDIA GPU

ffmpeg: hwaccel_args: preset-nvidia

Requires NVIDIA Container Toolkit:

docker-compose.yml

services: frigate: runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all

AMD GPU

ffmpeg: hwaccel_args: preset-vaapi

docker-compose.yml

environment:

  • LIBVA_DRIVER_NAME=radeonsi

Raspberry Pi

Raspberry Pi 4/5

ffmpeg: hwaccel_args: preset-rpi-64-h264 # or preset-rpi-64-h265

Requires: gpu_mem=128 in /boot/config.txt and device mapping in Docker.

Object Detector Types

USB Coral TPU

detectors: coral: type: edgetpu device: usb # Single USB Coral # device: usb:0 # First of multiple USB Corals

Docker device mapping:

devices:

  • /dev/bus/usb:/dev/bus/usb

M.2/PCIe Coral TPU

detectors: coral: type: edgetpu device: pci # device: pci:0 # First of multiple PCIe Corals

OpenVINO (Intel)

detectors: ov: type: openvino device: GPU # or CPU

model: path: /openvino-model/ssdlite_mobilenet_v2.xml width: 300 height: 300

ONNX (Multi-GPU)

detectors: onnx: type: onnx # Automatically uses: ROCm (AMD), OpenVINO (Intel), TensorRT (NVIDIA)

Advanced Features

Zone-Based Speed Estimation

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 register

Audio Detection

audio: enabled: true listen: - bark - fire_alarm - scream - speech

cameras: front_door: ffmpeg: inputs: - path: rtsp://camera/stream roles: - audio

GenAI Event Descriptions

genai: enabled: true provider: ollama base_url: http://192.168.1.100:11434 model: llava

Face Recognition (Frigate+)

face_recognition: enabled: true threshold: 0.6

cameras: front_door: detect: width: 1280 # Higher res improves face detection

License Plate Recognition

lpr: enabled: true

cameras: driveway: lpr: enabled: true

go2rtc Integration

go2rtc: 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:8555

Docker Compose Template

services: 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}

Bundled Resources

Templates

Located in templates/ :

  • docker-compose.yml

  • Production-ready compose file

  • config-minimal.yml

  • Minimal starter config

  • config-full.yml

  • Full-featured config template

References

Located in references/ :

  • detector-comparison.md

  • Detector performance comparison

  • ffmpeg-presets.md

  • All available FFmpeg presets

  • mqtt-topics.md

  • MQTT topic reference

Scripts

Located in scripts/ :

  • validate-config.sh
  • Validate config syntax before applying

Dependencies

Required

Package Version Purpose

Docker 20.10+ Container runtime

docker-compose 2.0+ Service orchestration

Optional

Package Version Purpose

NVIDIA Container Toolkit Latest NVIDIA GPU support

Coral Edge TPU runtime Latest Coral TPU support

Official Documentation

  • Frigate Documentation

  • Configuration Reference

  • Getting Started Guide

  • Troubleshooting FAQs

Troubleshooting

Camera Shows Offline

Symptoms: Camera fps shows 0, web UI shows offline status

Solution:

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"

High CPU Usage

Symptoms: CPU consistently above 80%, system becomes unresponsive

Solution:

  • Enable hardware acceleration (see presets above)

  • Reduce detect fps from 10 to 5

  • Lower detect resolution to 720p or below

  • Add Coral TPU for object detection

No Objects Detected

Symptoms: Motion detected but no object events created

Solution:

  • Verify detector is configured and running: check /api/stats

  • Check object filters aren't too restrictive (min_area, threshold)

  • Ensure detect stream resolution is correct

  • Verify objects list includes desired types

Recording Not Working

Symptoms: Events show but no recordings available

Solution:

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

Setup Checklist

Before deploying Frigate, verify:

  • Docker and docker-compose installed

  • RTSP URLs tested in VLC (note actual resolution)

  • Camera credentials ready for environment variables

  • Storage volume has adequate space (100GB+ recommended)

  • Shared memory size configured (64MB per camera minimum)

  • Hardware acceleration device mapped (if applicable)

  • Coral TPU device mapped (if using)

  • MQTT broker accessible (if integrating with Home Assistant)

  • Port 8971 available for web UI

  • Firewall allows required ports (8554, 8555 for streaming)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

tauri-v2

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

kubernetes-operations

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ha-automation

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

esphome-config-helper

No summary provided by upstream source.

Repository SourceNeeds Review