Yes — a Raspberry Pi 4 Model B 8GB runs Frigate with reliable object detection for 2-4 cameras at 720p sub-stream, using CPU or Coral TPU detection. Add a SATA SSD for 24/7 write endurance, an active-cooling case, and Home Assistant integration. For 5+ cameras or 1080p sub-streams, move to a mini-PC.
Editorial intro — who this is for
You want private, local, cloud-free camera recording. You already have or are planning to buy 2-4 IP or PoE cameras, and you don't want Amazon, Ring, or Google inheriting your footage. Frigate — the open-source NVR that layers real-time object detection over your camera streams — is the enthusiast standard for this exact use case, and its lowest-cost supported host is a Raspberry Pi 4 Model B 8GB.
This synthesis draws on Frigate's official docs, the official Raspberry Pi 4 product page, and community benchmark writeups on Phoronix and r/homelab. It is not a testbench; it is an editorial pass on what the Pi 4 8GB can handle in 2026, where its ceiling lives, and what the supporting hardware needs to look like for a reliable 24/7 build.
You will spend a weekend on this build. It is not a plug-and-play NVR box. But when it is running, you will get on-device person/car/package detection, MQTT events to Home Assistant, and no monthly subscription. That is worth the setup effort for most homelabbers.
Key takeaways
- A Pi 4 8GB handles 2-4 cameras at 720p sub-stream reliably with a Coral TPU.
- Without a Coral TPU, expect 1-2 cameras via CPU detection, with higher detection latency.
- SSD storage is not optional for 24/7 recording — SD cards die under continuous writes.
- Active cooling matters — sustained 60%+ CPU pushes the SoC past thermal throttling without it.
- Move to a mini-PC (N100/N305 tier) when you need 5+ cameras or 1080p continuous detection.
What you'll need — checklist
Every reliable Frigate-on-Pi build shares this parts list:
- Raspberry Pi 4 Model B 8GB — SoC and RAM. 4GB works but 8GB gives you breathing room for Home Assistant OS or other containers.
- USB-C 5V/3A power supply — the official Pi supply is the safest choice.
- SATA SSD via USB 3.0 — a Crucial BX500 1TB SATA SSD, Western Digital 500GB WD Blue SSD, or Samsung 870 EVO 250GB SATA SSD works. Use a UASP-capable USB 3.0 to SATA enclosure.
- Active-cooling case — the AC Infinity AIRCOM S7 Cooling System is one option; Argon ONE M.2 is another popular pick.
- Google Coral USB Accelerator (optional but recommended) — takes detection load off the CPU.
- PoE or USB IP cameras that expose an RTSP stream with a low-res sub-stream (Amcrest, Reolink, Dahua).
- Gigabit switch and Cat6 patch cables for camera and Pi.
Software stack: Home Assistant OS or vanilla Debian 12 (bookworm) + Docker Compose + Frigate + Mosquitto MQTT + optional Home Assistant if not using HA OS.
Step 0 — how many camera streams can a Pi 4 handle?
Community measurements (r/homelab, Phoronix, and the Frigate GitHub issues) converge on the following practical ceilings for a Pi 4 8GB:
- With a Coral TPU: 4 cameras at 5 fps sub-stream detection, 15-30 fps main-stream record. Stable at ~40-55% CPU load.
- CPU-only, no Coral: 1-2 cameras at 5 fps sub-stream detection. Stable at ~60-75% CPU load; adding a 3rd camera pushes into throttling territory.
- Recording only, no detection: ~8 cameras at 1080p 15 fps main-stream — the Pi is essentially just writing bytes.
Frigate does detection on the sub-stream (typically 320x320 or 480x480 clip windows). Higher-resolution detection or higher frame rates scale up CPU cost quickly. The Coral USB Accelerator moves that math almost entirely off the CPU.
Perf table — Pi 4 8GB running Frigate (community-measured)
| Config | Cameras | Detection FPS/cam | Sustained CPU | Detection latency |
|---|---|---|---|---|
| Coral TPU + 4 cams @ 480x480 | 4 | 5 | ~45% | ~15-30 ms |
| Coral TPU + 4 cams @ 320x320 | 4 | 10 | ~55% | ~10-20 ms |
| No TPU, 2 cams @ 320x320 | 2 | 5 | ~65% | ~150-250 ms |
| No TPU, 1 cam @ 480x480 | 1 | 5 | ~50% | ~150-200 ms |
| No TPU, 3 cams @ 320x320 | 3 | 5 | ~85% (throttles) | ~400-800 ms |
| Recording only (H.264), 6 cams | 6 | — | ~30% | — |
Numbers vary by camera codec (H.264 vs H.265) and Pi thermal state. H.265 hardware decode is not accelerated on the Pi 4, so stick to H.264 sub-streams or accept higher CPU load.
SSD instead of SD card — endurance math
Frigate writes clips, snapshots, and (optionally) 24/7 record segments. A consumer microSD card is rated for 30-100 write cycles across the whole card; a busy 4-camera Frigate install writes ~50-200 GB per day depending on retention and event volume. That kills a 128 GB SD in months.
A Samsung 870 EVO 250GB SATA SSD is rated at 150 TBW — that is 150,000 GB of writes before end of warranty. At 100 GB/day, that is 4+ years of continuous writing. A Crucial BX500 1TB is rated at 360 TBW — over a decade at the same rate. And SSDs boot faster, recover from power loss more gracefully, and have better random I/O for Frigate's small-file event writes.
Boot from the SSD via USB 3.0, not from an SD card. Set the Pi firmware to prefer USB boot and skip the SD slot entirely.
Do you need a Coral TPU?
Yes if you want more than one camera or want reliable, low-latency detection. Google's Coral USB Accelerator is ~$60 at street price and moves detection latency from 150-300 ms (CPU) to 10-30 ms (TPU) while dropping CPU load by roughly half. That headroom is what lets you scale from 1-2 cameras to 3-4.
No if you only have one camera and don't mind occasional detection lag. CPU-only detection on a Pi 4 is a real thing that works — Frigate is efficient — but you are close to the ceiling from day one.
Coral TPU availability has been intermittent since 2023. If you can't source one, the Pi 4 CPU-only path is still viable at 1-2 cameras, and moving to a mini-PC is the graceful upgrade path when the camera count grows.
Keeping it cool and stable — 24/7 thermal load
Frigate on a Pi 4 pushes the SoC into 60-80°C territory sustained. Without active cooling, the Pi will thermal throttle from 1.8 GHz down to ~1.5 GHz once the SoC hits 80°C. That drops detection FPS and increases latency.
The fix is a case with a real fan and a heat sink on the SoC. Options that work well:
- Argon ONE M.2 case — integrates an M.2 SATA slot and active cooling.
- Argon POLY+ case — passive heatsink shell that keeps the SoC around 60°C.
- AC Infinity AIRCOM S7 — a quiet cooling fan system suitable for tucking the Pi into an AV cabinet or rack shelf.
- Any Pi 4 case with a 40mm PWM fan and a proper heat sink.
Position the Pi with room to breathe. Do not stuff it in a closed drawer next to a router.
Step-by-step — install, add a camera, tune detection
- Flash Raspberry Pi OS Lite (64-bit) or Home Assistant OS to your SSD via Raspberry Pi Imager.
- Boot the Pi, SSH in, and update:
sudo apt update && sudo apt full-upgrade -y. - Install Docker:
curl -fsSL https://get.docker.com | sh. - Create a Frigate config directory:
mkdir -p ~/frigate/config ~/frigate/media. - Drop a
config.ymlin~/frigate/config/with your cameras (see Frigate docs for the RTSP URL syntax). - Start Frigate via docker compose. Point it at your Coral TPU device (
/dev/apex_0or/dev/bus/usb). - Open
http://<pi-ip>:5000in a browser. You should see live camera tiles and detected objects. - Tune detection zones — mask out the neighbor's driveway, mask out plant motion, mask out reflective glass.
- Add MQTT and integrate with Home Assistant for automation triggers.
Every step matters. The tuning step is where most builds fail — untuned Frigate installs generate hundreds of false alerts per day and users burn out on the tool.
When Pi 4 is right — verdict matrix
Pick a Pi 4 8GB if:
- You have 1-4 cameras total.
- You want the lowest-cost supported Frigate build.
- Power draw matters — the Pi 4 pulls ~4-8 W under load.
- You're OK adding a Coral TPU (~$60).
Move to a mini-PC (N100/N305) if:
- You want 5+ cameras.
- You want 1080p detection instead of 720p sub-stream.
- You want to run Frigate alongside Plex, Home Assistant, PhotoPrism, and other containers on one box.
- Your camera codecs are H.265 (which the Pi 4 can't hardware-decode).
Move to a used mini-tower or NAS if you want RAID-protected storage or 8+ cameras.
Bottom line — power and cost math
A full Frigate-on-Pi build lands at roughly $220-$280:
- Pi 4 8GB: $75-$90
- Power supply, cables, case: $30-$45
- Coral USB Accelerator: $60 (if you can source it)
- SATA SSD (250 GB): $30-$45
- USB 3.0 SATA enclosure: $15-$25
Ongoing power cost at ~6 W average: about $0.90/month at $0.15/kWh. Compared to a $10/month cloud NVR subscription for 4 cameras, you break even in under three years and keep your footage on your own network for as long as the hardware runs.
That is the accessible local-NVR path in 2026. It is not the highest-performance option, and it will not compete with a proper mini-PC on camera density. It is the cheapest way to leave the subscription economy and own your camera data.
Cameras that pair well with Frigate
Not all IP cameras are equal for Frigate. Look for:
- RTSP support with sub-stream. Frigate needs a low-res sub-stream for detection and a main stream for recording. Cameras without a distinct sub-stream force everything through the detection pipeline at full resolution.
- H.264 codec on the sub-stream. Pi 4 lacks H.265 hardware decode; H.265 sub-streams eat CPU.
- Static IP or DHCP reservation friendliness. Cameras that lose network settings on power blip are a headache.
- Confirmed compatibility on the Frigate wiki. Amcrest, Reolink (via RTSP, not the app-only models), Dahua, Hikvision, and Unifi Protect (via NVR export) are common working brands.
Skip:
- Cloud-locked cameras. Ring, Arlo, Blink, most Wyze — no RTSP, no local access.
- H.265-only cameras. The Pi 4 will melt trying to decode them.
- Cheap Amazon-brand cameras. Many have broken RTSP or firmware that locks streams behind a cloud account.
Home Assistant integration
The reason to run Frigate on a Pi 4 is often to feed events into Home Assistant. The integration is mature:
- Add MQTT broker (Mosquitto) container alongside Frigate.
- Configure Frigate to publish events to MQTT.
- Install the Frigate HACS integration in Home Assistant.
- Wire automations — "person detected on driveway at night → notify phone", "car detected in mailbox zone → open garage door", etc.
The person/car/package classes are usable out of the box; the Frigate model set is not fine-tuned for your specific home, so expect false positives on plants swaying, shadows moving, or neighbor cats. Zone masking and confidence thresholds are the main tuning knobs.
Comparing storage options for retention
Retention math matters. A 4-camera Frigate install at 5-fps sub-stream detection + 1080p 15-fps main-stream recording writes roughly 60-100 GB/day, depending on event volume. Retention windows:
| Retention window | Storage needed (4 cameras) |
|---|---|
| 3 days | 250-350 GB |
| 7 days | 500-750 GB |
| 14 days | 1-1.5 TB |
| 30 days | 2-3 TB |
For 3-day retention, a Samsung 870 EVO 250GB SATA SSD is enough. For 7-day retention, a Western Digital 500GB WD Blue SSD. For 14-day retention or longer, the Crucial BX500 1TB. For 30+ days, add a network-attached NAS and offload old clips to it via a cron.
Real-world reliability tips
A Frigate-on-Pi build that will run reliably for years shares these operational choices:
- UPS the Pi and switch. A cheap $80 UPS keeps recording during blips and prevents SSD corruption.
- Log rotation. Docker logs from Frigate and Mosquitto grow fast; set up log rotation or you'll fill the SSD in months.
- SSD monitoring.
smartctlon the SSD once a week catches early wear before it kills you. - Backup config. The Frigate
config.ymland Home Assistantconfiguration.yamlshould be version-controlled in a private repo. - Restart policy.
restart: unless-stoppedon the Docker containers means a reboot brings Frigate back automatically. - Static local IP. Don't rely on mDNS for the Frigate URL; give the Pi a DHCP reservation or static IP.
- Timezone. Set the Pi's timezone via
sudo timedatectl set-timezone America/New_York(or your region) so event timestamps make sense.
Related guides
- Raspberry Pi 4 Model B 8GB — the SoC and 8 GB RAM starter
- Crucial BX500 1TB SATA SSD — the value large-capacity storage pick
- Western Digital 500GB WD Blue SSD — a reliable mid-size option
- AC Infinity AIRCOM S7 Cooling System — quiet, cabinet-friendly active cooling
- Samsung 870 EVO 250GB SATA SSD — the reference endurance pick for smaller retention windows
Common pitfalls
- Booting from an SD card and watching it fail in 6-12 months.
- Skipping the Coral TPU and trying to run 4 cameras on CPU-only — you'll thermal throttle within an hour.
- Enabling H.265 sub-streams and burning CPU on software decode.
- Forgetting to tune detection zones — expect 200+ false alerts per day out of the box.
- Undersizing the power supply — the Pi 4 with a Coral TPU + SSD needs the full 5V/3A supply, not a phone charger.
Citations and sources
- Frigate — official documentation — camera config, detector setup, and TPU integration.
- Raspberry Pi Ltd — Raspberry Pi 4 Model B product page — official SoC and I/O specs.
- Phoronix — sustained-load benchmark and thermal measurements on Pi 4 hardware.
This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.
