Frigate is an open-source, self-hosted NVR (Network Video Recorder) that runs real-time AI object detection on your security camera feeds using a local Coral TPU or your CPU. Unlike cloud-based cameras from Ring, Arlo, or Nest that upload your footage to corporate servers and charge monthly subscription fees, Frigate processes everything locally on your hardware. It detects people, cars, animals, and packages in real-time, sends instant notifications through Home Assistant, and records only the clips that matter. Zero cloud dependency, zero monthly fees, zero privacy compromise.
Traditional NVR systems record 24/7 and force you to scrub through hours of footage to find events, a feature covered in the Home Assistant documentation. Cloud cameras charge $3 to $15 per month per camera for “smart” detection that still sends false alerts for shadows and tree branches. Frigate solves both problems: its AI detection powered by Google’s Coral TPU processes each camera frame in under 10 milliseconds, identifies real objects with 90%+ accuracy, and records only verified events. A four-camera Frigate setup costs about $100 in hardware (Coral USB Accelerator at $35 plus existing cameras) with zero ongoing subscription costs.
How Frigate’s AI Object Detection Works
Frigate uses a TensorFlow Lite object detection model that analyzes each camera frame for specific object types. The detection pipeline runs in three stages that balance speed with accuracy while minimizing CPU usage.
Motion detection (first filter): Frigate monitors each camera’s RTSP stream for pixel changes between frames. Only regions with detected motion advance to the next stage. This eliminates 95%+ of frames from AI processing, dramatically reducing CPU and TPU load. A camera watching an empty driveway processes almost zero frames until something actually moves.
Object detection (second filter): Motion regions are cropped and sent to the TensorFlow Lite model running on your Coral TPU (recommended) or CPU. The model identifies object types (person, car, dog, cat, bicycle, package) and assigns confidence scores. Default minimum confidence is 50%, configurable per object type. The Coral USB Accelerator processes detections in 8 to 10 milliseconds, while CPU-only detection takes 100 to 300 milliseconds depending on your hardware.
Object tracking (third filter): Frigate tracks detected objects across frames using coordinate prediction, maintaining identity as a person walks across the camera’s field of view. Tracking enables features like zone-based alerts (notify only when a person enters the driveway zone, not the sidewalk) and object counting (how many cars are in the parking area). Tracked objects generate a single event with a thumbnail, snapshot, and video clip rather than dozens of redundant detections.
Hardware Requirements for Frigate
Frigate runs on any Linux machine with Docker support. The critical hardware decision is the AI accelerator: a Coral TPU is strongly recommended for any setup with more than one camera.
Google Coral TPU: The Coral USB Accelerator ($35) plugs into any USB 3.0 port and handles object detection for 10+ cameras simultaneously. It processes detections in 8 to 10 milliseconds, freeing your CPU entirely for video decoding and recording. The Coral M.2 module ($25) provides the same performance for mini PCs with M.2 slots. Without a Coral, your CPU handles all detection, limiting most systems to 2 to 3 cameras before performance degrades.
Server hardware: An Intel N100 mini PC ($130 to $150) handles 4 to 6 cameras with a Coral USB. A Raspberry Pi 5 works for 1 to 2 cameras with a Coral USB but struggles with more due to limited USB bandwidth and video decoding capability. For 8+ cameras, an Intel i5 or AMD Ryzen 5 system with a Coral M.2 provides headroom. Each camera’s RTSP stream consumes 300 to 800MB of RAM depending on resolution, so 8GB RAM is the minimum for a 4-camera setup.
Storage: Frigate records event clips (not 24/7 footage by default). A typical 4-camera residential setup generates 2 to 5GB of event recordings per day. A 256GB SSD stores 30 to 90 days of events. Enable 24/7 recording and storage needs jump to 20 to 40GB per day for 4 cameras at 1080p, making a 2TB+ drive necessary. Use an SSD or NVMe for the recording drive to avoid dropped frames during simultaneous write and read operations.
Installing Frigate With Docker Compose
Frigate runs as a single Docker container alongside Home Assistant. The Docker Compose file defines the Frigate service with device passthrough for the Coral TPU, shared memory allocation for video processing, and volume mounts for configuration, recordings, and the media cache.
The shared memory size (shm_size) is critical: Frigate uses shared memory for real-time frame processing. Set it to 64MB for 1 to 2 cameras, 128MB for 3 to 4 cameras, or 256MB for 5+ cameras. Insufficient shared memory causes frame processing failures and missed detections. Mount the Coral USB device by passing /dev/bus/usb to the container (or the specific Coral device path for M.2 modules).
The configuration file (config.yml) defines your cameras, detection settings, recording rules, and object tracking parameters. Start with a minimal configuration containing one camera to verify detection works before adding complexity. Frigate validates the configuration on startup and logs clear error messages for misconfigured options.
After starting the container, access Frigate’s web interface at your server’s IP on port 5000 (default). The dashboard shows live camera feeds with real-time bounding boxes around detected objects, event thumbnails, and system performance metrics (detection inference time, CPU usage, camera FPS).
Configuring Cameras for Frigate
Frigate connects to cameras via RTSP (Real Time Streaming Protocol), which nearly every IP camera, NVR, and even some WiFi cameras support. Each camera needs two RTSP stream URLs in the configuration: a high-resolution “record” stream for saving clips and a low-resolution “detect” stream for AI processing.
The detect stream should be 640×480 or 720×480 at 5 FPS. Lower resolution and frame rate dramatically reduce CPU and TPU load without affecting detection accuracy because the object detection model downscales frames internally. The record stream runs at full resolution (1080p or 4K) at 15 to 30 FPS for high-quality saved footage. This dual-stream approach is the key to running many cameras on modest hardware.
Popular camera brands and their RTSP URL formats: Reolink uses rtsp://user:pass@IP:554/h264Preview_01_main for the record stream. Amcrest and Dahua use rtsp://user:pass@IP:554/cam/realmonitor?channel=1&subtype=0 for main stream. Hikvision uses rtsp://user:pass@IP:554/Streaming/Channels/101 for main stream. TP-Link Tapo cameras require enabling RTSP in the Tapo app settings first. Wyze cameras need the RTSP firmware flashed or the Docker Wyze Bridge to convert their proprietary protocol to RTSP.
Integrating Frigate With Home Assistant
The Frigate integration for Home Assistant (installed via HACS) creates entities for every camera and detection event, enabling powerful automations based on what Frigate sees.
After installing the Frigate integration in Home Assistant, each camera generates: a camera entity showing the live feed with detection overlays, binary sensors for each tracked object type (person detected, car detected), sensor entities for object counts per zone, and an event entity that triggers with each new detection event including the event thumbnail and clip URL.
Automation examples that become possible: send a phone notification with a snapshot when a person is detected in the driveway zone between 10 PM and 6 AM. Turn on porch lights when any person is detected at night. Record a 30-second clip to your NAS when a car enters the garage zone. Alert when a package is detected on the front porch and auto-dismiss the alert when the package disappears (picked up). Track whether your dog is in the backyard or inside based on animal detection zones.
Frigate’s notification blueprints for Home Assistant (available on the Frigate documentation site) provide pre-built notification automations that send formatted alerts with thumbnails, clip links, and action buttons directly to the Home Assistant Companion App on your phone.
Zones, Masks, and Detection Tuning
Raw object detection on an entire camera frame generates noise: detecting cars on a distant road, people walking on the far sidewalk, or your neighbor moving in their yard. Frigate’s zones and masks let you focus detection on areas that matter.
Zones define named regions within a camera’s view where detected objects trigger specific actions. Draw a “driveway” zone covering your driveway and a “porch” zone covering your front porch. Configure Home Assistant automations to respond differently to each zone: a person in the driveway zone triggers a notification, a person in the porch zone triggers a notification and turns on the porch light, and a person outside both zones is ignored.
Motion masks block motion detection in specific areas. Mask the street visible at the edge of your camera’s view to prevent car headlights from triggering motion detection. Mask tree canopies to prevent wind-blown branches from causing false motion events. Masks reduce TPU load by eliminating unnecessary detection attempts.
Object filters refine what objects Frigate tracks per camera. Set minimum and maximum object sizes to filter out detections that are too small (distant, irrelevant) or too large (misclassified). Require minimum detection scores per object type: 70% confidence for people (high reliability), 60% for cars, 55% for packages (harder to detect). These filters eliminate 90%+ of false positive detections that plague cloud camera systems.
How much does Frigate cost compared to Ring or Nest?
Frigate is free open-source software. The Coral USB Accelerator costs $35 one-time. Compared to Ring Protect Plus at $10/month per location or Nest Aware at $8/month, Frigate saves $96 to $120 per year. A four-camera Frigate setup reaches cost parity with Ring within 4 months and saves $400+ over three years.
Does Frigate work without a Coral TPU?
Yes, but with limitations. CPU-only detection works for 1 to 2 cameras at reduced frame rates. Detection latency increases from 10ms (Coral) to 100 to 300ms (CPU). An Intel N100 handles 2 cameras on CPU. For 3+ cameras, the $35 Coral USB Accelerator is strongly recommended to maintain real-time detection performance.
What cameras work with Frigate?
Any camera supporting RTSP streams works with Frigate. Recommended brands: Reolink (best value, native RTSP), Amcrest, Dahua, and Hikvision (professional grade). Wyze cameras work via Wyze Bridge Docker container. Ring and Nest cameras do not support RTSP and cannot be used with Frigate directly.
Can Frigate detect specific people with facial recognition?
Frigate’s built-in model detects object types (person, car, dog) but not specific individuals. For facial recognition, pair Frigate with Double Take or CompreFace, which process Frigate’s person detection events through facial recognition models. This adds specific person identification while keeping all processing local.
How much storage does Frigate need?
Event-only recording (default): 2 to 5GB per day for 4 cameras, 256GB SSD stores 30 to 90 days. Continuous 24/7 recording: 20 to 40GB per day for 4 cameras at 1080p, requires 2TB+ drive. Frigate automatically manages storage with configurable retention periods, deleting oldest recordings when space runs low.




