Skip to main content
Self-Hosting & Privacy

Raspberry Pi Security Camera: What Works

A Raspberry Pi makes a genuinely good local-only security camera β€” if you get the two decisions right: which AI accelerator (the Coral is now deprecated; the Hailo-8L AI HAT+ is the pick) and how much storage continuous recording really eats. Real per-camera limits, worked storage math, and a Frigate config that runs.

milanbuha00August 14, 20268 min read
ShareXin
Raspberry Pi Security Camera: What Works

A package went missing off your doorstep, you've got a spare Raspberry Pi in a drawer, and you'd rather your front-door footage never touched a vendor's cloud. Every tutorial online will walk you through the install. Almost none tell you the two things that actually decide whether the build works: which AI accelerator to buy, and how much storage continuous recording really eats.

Get those two right and a Pi 5 is a genuinely capable, local-only NVR. Get them wrong and you've built a camera that either misses events or fills its disk in a week.

TL;DR

  • Frigate does real object detection ("a person, not a moving branch") but wants an AI accelerator; motionEye does simple motion detection and runs on a Pi 3 or Zero with nothing extra.
  • The Google Coral TPU is now officially deprecated by Frigate for new builds. The current pick is the ~$70 Hailo-8L AI HAT+ for the Pi 5.
  • A Pi 5 with a Hailo-8L comfortably handles 4–5 camera streams while the CPU sits near 10%.
  • Continuous recording is a storage problem, not a compute one: four 1080p cameras can burn ~130 GB/day. Record on motion, not 24/7.
  • Past a handful of cameras or heavy re-encoding, a small mini PC is the better foundation.

The two decisions that actually decide the build

Strip away the tutorials and a Pi camera system comes down to two choices. First, the software: Frigate or motionEye β€” they solve different problems. Second, the AI accelerator: whether you add one at all, and which one, because that single decision has quietly flipped in 2026.

Everything else β€” which camera, which case, which SD card β€” is downstream of those two. So we'll settle them first, then the numbers, then a config that actually runs.

Frigate or motionEye? Start here

motionEye is the lightweight option. It detects motion by comparing pixels between frames β€” cheap enough to run on a Pi 3 or even a Pi Zero 2 W with no accelerator at all. The catch is that pixel-diff detection can't tell a person from headlights sweeping across the wall or a branch moving in the wind, so you get false alerts.

Frigate is the modern choice. It runs a real object-detection model, so it fires on "a person entered the driveway" rather than "some pixels changed." That intelligence is why it wants a dedicated AI accelerator β€” asking the Pi's CPU to run the detector instead is where most first builds fall over.

motionEyeFrigate
Detection typePixel motion diffAI object detection (person/car/etc.)
Accelerator neededNoStrongly recommended
Runs onPi 3 / Zero 2 W and upPi 5 (4GB+) with an accelerator
False alertsCommon (shadows, light, rain)Rare β€” filtered by object class
Best for1–2 cameras, simple alertsMulti-camera, smart notifications, Home Assistant

Tip

If all you want is a driveway motion alert on a Pi you already own, motionEye in an afternoon is a perfectly honest answer. Everything below is about doing it well, at Frigate's level.

The accelerator decision that dates fastest

This is the part every older tutorial gets wrong now. For years the answer was "buy a Google Coral USB TPU." As of Frigate's current releases, the official hardware documentation is blunt:

"The Coral is no longer recommended for new Frigate installations, except in deployments with particularly low power requirements or hardware incapable of utilizing alternative AI accelerators."

The recommended detector order now leads with Hailo-8/8L, then the (deprecated) Coral, then MemryX, OpenVINO, and Nvidia. On a Raspberry Pi 5 that means the Hailo-8L AI HAT+ is the current pick.

AcceleratorComputeInference (approx)Cameras (default model)PriceStatus
Pi 5 CPU onlyβ€”very slow, high load0–1, unreliable€0Not recommended
Coral USB TPU4 TOPS~10 msmany (100 fps ceiling)~€60Deprecated for new builds
Hailo-8L (AI HAT+)13 TOPS~12 ms4–5 comfortably~€70Recommended
Hailo-8 (26 TOPS HAT+)26 TOPS~7 msmore headroom~€110Recommended, larger setups

KEY-STAT: 13 TOPS β€” the Hailo-8L in the ~$70 AI HAT+ β€” the current recommended Pi 5 detector now that the Coral is deprecated

There's a real efficiency story behind the switch too. The Hailo-8 runs around 6–7 TOPS per watt versus roughly 2 TOPS/W for the Coral, and Frigate 0.16's newer YOLOv9 models run on Hailo without the manual model conversion the Coral needs. If you already own a Coral, it still works and Frigate will support it β€” but don't go buy one in 2026.

How many cameras a Pi really handles

The reassuring news: object detection barely touches the Pi once an accelerator does the heavy lifting.

In one well-documented Pi 5 + Coral build, Helge Klein measured two camera streams running at a 0.3 load average, 6–8% CPU, and 1.6 GB RAM, with the Coral itself sitting at 0–5% utilisation. With a Hailo-8L, independent testing has 4–5 streams running with the Pi 5 CPU near 10%. Frigate's own math puts a single Coral's ceiling at 1000 Γ· 10 ms = 100 detection frames per second, shared across all cameras.

The real constraints are memory and streams, not detection:

  • Shared memory. Frigate needs roughly 256 KB per camera per frame at 1080p in `/dev/shm`. Start at 256 MB for a two-to-four-camera setup and raise it if you see crashes.
  • RAM. A Pi 5 4GB is enough to start; 8GB gives comfortable headroom for more cameras and go2rtc restreaming.

Warning

Do not try to run Frigate's detector on the Pi's CPU "just to test it." Without an accelerator the CPU pegs, frames back up, and detection latency balloons β€” which reads as "Frigate is broken" when it's really "there's no detector." Add the accelerator before the first camera.

Storage: the number nobody plans for

Compute is solved by a €70 HAT. Storage is where Pi camera projects quietly die. The formula is simple:

storage per day (GB) β‰ˆ bitrate (Mbps) Γ— 10.8

That comes straight from the bit math: 1 Mbps Γ— 86,400 seconds Γ· 8 bits Γ· 1000 β‰ˆ 10.8 GB/day. A single 1080p H.265 camera at a realistic 3 Mbps is therefore about 32 GB/day. Scale that up and the problem is obvious:

SetupPer day14-day retention
1 camera, 1080p H.265 @ 3 Mbps~32 GB~450 GB
4 cameras, 1080p H.265 @ 3 Mbps~130 GB~1.8 TB
4 cameras, higher-motion @ 4 Mbps~173 GB~2.4 TB

Figures follow the standard CCTV storage math (bitrate Γ— 10.8, ~15 fps, medium motion). The lesson: do not record every camera 24/7 unless you mean it. Frigate can record continuously, on motion, or only when it detects a tracked object β€” and detection-only recording cuts a typical residential setup by well over half.

Warning

Never point continuous recordings at the boot SD card. Sustained writes wear it out and corrupt the OS. Record to an NVMe SSD or network share β€” the Helge Klein build used a 32 GB SD for the OS and a separate 512 GB NVMe for footage, which is the right shape.

In my own homelab I eventually moved recording off single-board hardware onto a low-power mini PC β€” not because the Pi couldn't detect, but because retention is a write-endurance and capacity problem an SBC isn't built to carry. If you're weighing that jump, our homelab beginner's guide covers where storage fits into the bigger picture.

A minimal Frigate config that works

Frigate runs in Docker. This is the shape of a working Pi 5 setup β€” a detect stream (low-res, for the AI) and a record stream (full-res, to disk), restreamed through the built-in go2rtc so the camera only gets one connection:

#docker-compose.yml (excerpt)
services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "256mb"        # ~256KB per camera per 1080p frame
    devices:
      - /dev/hailo0          # the AI HAT+ detector
    volumes:
      - /mnt/nvme/frigate:/media/frigate   # record to NVMe, never the SD card
      - ./config:/config
    ports: ["8971:8971"]
    restart: unless-stopped
#config.yaml (excerpt)
detectors:
  hailo:
    type: hailo8l
cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://user:[email protected]:554/high
          roles: [record]
        - path: rtsp://user:[email protected]:554/low
          roles: [detect]
    record:
      enabled: true
      retain: { days: 14, mode: motion }   # motion mode, not 24/7

Tip

Splitting detect (a low-resolution substream) from record (the full-resolution stream) is the single biggest quality-of-life win. The detector works on a cheap small frame; your saved footage stays crisp; and the camera serves one connection instead of many.

Because these cameras are local-only by design, remote viewing should go over a VPN rather than a port forward β€” our WireGuard vs OpenVPN comparison covers the safe way to reach your NVR from your phone without exposing it to the internet.

When a Pi is the wrong tool

A Pi 5 with a Hailo HAT is a great 3–5 camera local NVR. It stops being the right tool when:

  • You want 8+ cameras or continuous full-resolution recording on all of them β€” that's a storage-throughput and capacity problem an SBC isn't built for.
  • You need heavy re-encoding (transcoding streams for remote clients) rather than just restreaming β€” the Pi has no dedicated video encoder for that at scale.
  • You want the NVR to also run everything else β€” Home Assistant, a media server, databases β€” on the same box.

For any of those, a small mini PC built as a home server β€” Frigate's own docs favour an N100 box with dual NICs β€” gives you real SATA/NVMe lanes, an integrated GPU for encoding, and headroom to spare. Same software, more room.

The honest verdict

Build a Raspberry Pi security camera system if you want local-only footage and a 3–5 camera setup: a Pi 5 (4GB is fine, 8GB is comfortable), a Hailo-8L AI HAT+, an NVMe SSD for recordings, and Frigate. It's cheap, private, and genuinely capable.

Reach past the Pi the moment you want many cameras, all-camera 24/7 recording, or an NVR that also carries your whole homelab. And whatever you build, plan the storage before the cameras β€” that's the number that decides whether the project survives its first fortnight.

FAQ

Can a Raspberry Pi run a security camera system?

Yes. A Pi 3 or Zero 2 W can run motionEye for simple motion alerts, and a Pi 5 with an AI accelerator runs Frigate for real object detection across several cameras. The limit is rarely the CPU β€” it's storage for continuous recording.

Do I need a Coral TPU for Frigate?

No β€” and you shouldn't buy one for a new build. Frigate's official docs now list the Coral as no longer recommended for new installations. On a Pi 5, the Hailo-8L AI HAT+ (~$70) is the current pick. An existing Coral still works and stays supported.

How many cameras can a Raspberry Pi 5 handle?

With a Hailo-8L AI HAT+, roughly 4–5 1080p streams while the CPU stays near 10%. A single Coral tops out around 100 detection frames per second shared across cameras. Beyond about five cameras, move to a mini PC.

How much storage does a Pi NVR need?

Estimate bitrate (Mbps) Γ— 10.8 for GB per day. One 1080p H.265 camera at 3 Mbps is ~32 GB/day; four cameras are ~130 GB/day, or ~1.8 TB for two weeks of retention. Record on motion or detection rather than 24/7 to cut that dramatically.

Is Frigate or motionEye better on a Raspberry Pi?

Frigate is better if you want smart, low-false-alert object detection and can add an accelerator. motionEye is better if you want a dead-simple motion alert on an older Pi with nothing extra. They solve different problems.

Related stories

More from Self-Hosting & Privacy

Stay in the loop

Get the latest articles delivered to your inbox. No spam, unsubscribe anytime.

Read next

Raspberry Pi Server Rack: Cluster or One Box?

A rack of Raspberry Pis looks great, but is a cluster the right box? The honest version: the PoE power-budget math nobody calculates, real Pi 5 thermals in a dense rack, and a straight cluster-versus-single-mini-PC verdict. Most people who want a cluster actually need a mini PC.

Continue Reading