Frigate vs Viseron: AI-Powered NVR Compared

Quick Verdict

Frigate is the better choice for most self-hosters. It has a larger community (18,000+ GitHub stars vs 2,500), deeper Home Assistant integration, better Coral TPU support, and go2rtc built in for efficient RTSP restreaming. Viseron offers face recognition out of the box and a more standalone experience if you don’t use Home Assistant, but its smaller community means fewer guides, slower bug fixes, and less hardware testing.

Overview

Both Frigate and Viseron are self-hosted NVRs that use AI to detect objects in your camera feeds. They replace cloud NVR services like Ring, Nest, and Arlo with fully local processing — no subscriptions, no cloud uploads, no privacy compromises.

Frigate (v0.17.0) focuses on real-time object detection with tight Home Assistant integration. It uses Google Coral TPUs or Intel OpenVINO for hardware-accelerated inference and includes go2rtc for RTSP restreaming and WebRTC live viewing. Written in Python with a React frontend.

Viseron (v3.4.1) aims to be a more standalone NVR with built-in face recognition, multiple AI backend support (TensorFlow, YOLO, Darknet), and NVIDIA CUDA GPU acceleration. It has its own web UI for viewing recordings and events. Written in Python with a TypeScript/React frontend.

Feature Comparison

FeatureFrigate 0.17.0Viseron 3.4.1
Object detectionYes (Coral TPU, OpenVINO, CPU)Yes (TensorFlow, YOLO, Darknet, Coral)
Face recognitionNo (detection only)Yes (built-in)
License plate recognitionCommunity models onlyYes (via OpenALPR/PaddleOCR)
Hardware accelerationGoogle Coral USB/M.2/PCIe, Intel OpenVINO, AMD ROCmNVIDIA CUDA, Google Coral, Hailo-8
NVIDIA GPU supportLimited (NVDEC for decode only)Full (CUDA inference + decode)
Live streaminggo2rtc built-in (WebRTC, MSE, HLS, RTSP)go2rtc integration (WebRTC, MSE)
RTSP restreamingYes (via go2rtc, reduces camera load)Yes (via go2rtc)
Web UIBuilt-in (event browser, live view, config editor)Built-in (recordings, snapshots, live view)
MQTTYes (native)Yes
Home AssistantDeep integration (companion integration, automations, camera entity)Basic (MQTT sensors, manual config)
APIRESTful + WebSocketRESTful
Recording modesContinuous, event-based, snapshot-onlyContinuous, event-based
Sub-stream supportYes (detect on sub, record on main)Yes
Zone-based detectionYes (custom zones per camera)Yes
Birdseye viewYes (combined multi-camera view)No
Audio detectionYes (speech, bark, car horn, etc.)No
ConfigurationYAMLYAML
Docker image size~1.5 GB (standard), ~2.5 GB (TensorRT)~2.5 GB (standard), ~5 GB (CUDA)
GitHub stars18,000+2,500+
LicenseMITMIT
LanguagePython + Go (go2rtc)Python + TypeScript

Installation Complexity

Frigate

Frigate’s setup revolves around a YAML config file (config.yml) that defines cameras, detectors, and recording rules. The Docker Compose is straightforward:

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:0.17.0
    container_name: frigate
    restart: unless-stopped
    privileged: true
    shm_size: 256mb
    ports:
      - "5000:5000"     # Web UI
      - "8554:8554"     # RTSP restream
      - "8555:8555/tcp" # WebRTC
      - "8555:8555/udp"
    volumes:
      - ./config:/config
      - /path/to/recordings:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000  # 1 GB cache for recordings
    devices:
      - /dev/bus/usb:/dev/bus/usb  # Coral USB Accelerator
    environment:
      - FRIGATE_RTSP_PASSWORD=your_camera_password

volumes: {}

The main complexity is the config.yml — you define each camera’s RTSP URL, detection zones, object filters, and recording rules. Frigate’s documentation is extensive, and the community has shared configs for hundreds of camera models.

Viseron

Viseron’s setup is similar in structure — YAML config, single container:

services:
  viseron:
    image: roflcoopter/viseron:3.4.1
    container_name: viseron
    restart: unless-stopped
    privileged: true
    ports:
      - "8888:8888"  # Web UI
    volumes:
      - viseron-config:/config
      - /path/to/recordings:/recordings
    environment:
      - TZ=America/New_York
    # For NVIDIA GPU:
    # runtime: nvidia
    # environment:
    #   - NVIDIA_VISIBLE_DEVICES=all

volumes:
  viseron-config:

Viseron’s YAML config defines cameras, object detectors, and recording components. The config is more modular — each feature is a separate “component” you enable — but less battle-tested. Fewer community examples exist, so you’ll rely more on official docs.

Setup verdict: Similar complexity. Frigate has better documentation and more community examples. Viseron is more modular but has a steeper learning curve due to fewer guides.

Performance and Resource Usage

ScenarioFrigateViseron
Idle (no cameras active)~200 MB RAM, <1% CPU~300 MB RAM, <1% CPU
1 camera, Coral TPU detection~500 MB RAM, 5% CPU~600 MB RAM, 5% CPU
4 cameras, Coral TPU~1 GB RAM, 15% CPU~1.2 GB RAM, 15% CPU
4 cameras, CPU-only detection~1.5 GB RAM, 60-80% CPU~1.8 GB RAM, 70-90% CPU
4 cameras, NVIDIA GPUN/A (decode only)~1 GB RAM, 10% CPU + GPU
Recording storage (1080p, 24/7)~15-20 GB/day per camera~15-20 GB/day per camera

Key difference: Frigate is optimized for Coral TPU and Intel QuickSync — it’s extremely efficient with these accelerators. Viseron’s strength is NVIDIA CUDA, using the GPU for both video decode and AI inference. If you have an NVIDIA GPU, Viseron uses it more effectively. If you have a Coral TPU (or plan to buy one at ~$30), Frigate is more efficient.

Both support sub-stream detection (run AI on a lower-resolution sub-stream while recording the full-resolution main stream), which dramatically reduces CPU usage.

Home Assistant Integration

This is where Frigate dominates.

Frigate + Home Assistant:

  • Dedicated companion integration (HACS or built-in)
  • Camera entities with live view in dashboards
  • MQTT events trigger automations directly (“person detected in driveway”)
  • Notification blueprints with detection snapshots
  • Frigate card for Lovelace (custom card with timeline, event browser)
  • Two-way audio support through HA
  • Media browser integration for recording playback

Viseron + Home Assistant:

  • MQTT sensors for detection events
  • Manual camera entity configuration
  • No dedicated companion integration
  • No custom Lovelace card
  • Automations work but require more manual MQTT topic configuration

If Home Assistant is your smart home hub, Frigate’s integration is significantly more polished. Viseron’s HA support works but feels bolted-on rather than native.

Community and Ecosystem

MetricFrigateViseron
GitHub stars18,000+2,500+
Contributors300+30+
Community configs sharedHundreds (Reddit, HA forums)Dozens
Camera compatibility tested100+ models documentedLimited documentation
YouTube tutorials50+<10
Discord/forum activityVery active (HA community, Reddit)Small Discord server
Documentation qualityExcellent (frigate.video)Good but less comprehensive
Third-party toolsFrigate card, Double Take, notification blueprintsLimited

Frigate’s community is roughly 7x larger. This matters for troubleshooting camera-specific issues, finding optimized configs, and getting help with edge cases. When your specific camera model has a quirk, someone in Frigate’s community has probably documented it.

Use Cases

Choose Frigate If…

  • Home Assistant is your smart home platform
  • You want the largest community and most documentation
  • You have (or plan to buy) a Google Coral TPU
  • You want go2rtc built-in for efficient live streaming
  • Audio detection matters (doorbell, dog bark, car alarm triggers)
  • You want Birdseye multi-camera combined view
  • You prefer the most battle-tested option

Choose Viseron If…

  • You have an NVIDIA GPU and want to use it for inference
  • Face recognition is a priority (Viseron has it built-in)
  • You don’t use Home Assistant and want a standalone NVR
  • License plate recognition is needed
  • You prefer the Hailo-8 AI accelerator over Coral
  • You want a self-contained system without HA dependency

Final Verdict

For Home Assistant users with a Coral TPU, Frigate is the right tool. The integration depth, community size, documentation quality, and ecosystem of companion tools make it the default choice for self-hosted AI surveillance. The 18,000+ GitHub stars and hundreds of community-shared configs mean your specific camera model is probably already documented.

Viseron earns its place for NVIDIA GPU owners and anyone who needs face recognition without adding a separate service. Its standalone web UI is better suited for users who don’t run Home Assistant. But the smaller community (2,500 stars) means more self-reliance when troubleshooting.

If you’re starting fresh: buy a $30 Coral USB Accelerator and run Frigate. The Coral handles detection for 10+ cameras simultaneously at under 1W power draw — it’s the most cost-effective AI inference hardware available.

Frequently Asked Questions

Can I run both Frigate and Viseron?

Technically yes, but there’s no reason to. They serve the same purpose. Pick one based on your hardware (Coral → Frigate, NVIDIA GPU → Viseron) and ecosystem (Home Assistant → Frigate, standalone → Viseron).

Do I need a Coral TPU for Frigate?

No, but it’s strongly recommended. Without a Coral, Frigate uses CPU detection which works for 1-2 cameras but becomes unusable at 4+. A Coral USB Accelerator ($30) handles 10+ cameras simultaneously. OpenVINO on Intel CPUs is the other viable option.

Can Viseron use a Coral TPU?

Yes, Viseron supports Google Coral EdgeTPU. However, Frigate’s Coral integration is more mature and better optimized. If you already own a Coral, Frigate is the better match.

Which handles more cameras?

Both scale similarly. With hardware acceleration, either handles 8-16 cameras on modest hardware (Intel N100 + Coral for Frigate, NVIDIA GPU for Viseron). The bottleneck is recording storage and network bandwidth, not detection processing.

Does Frigate have face recognition?

Not natively. The community project Double Take adds face recognition on top of Frigate using CompreFace or DeepStack backends. Viseron has face recognition built into its core.

Which uses less storage?

Identical for the same recording settings. Both record H.264/H.265 RTSP streams from cameras. Storage depends on resolution, frame rate, and retention policy — typically 15-20 GB per camera per day at 1080p continuous recording. Both support event-only recording to reduce storage.

Comments