Architecture

Home Assistant NVR: Cameras, Recording, Frigate, and Scrypted

Build a Home Assistant NVR with ONVIF cameras, live streams, clip recording, Frigate or Scrypted, plus clear storage, codec, and security choices.

TardisLabs EditorialPublished August 3, 2026Updated August 3, 202611 min read
OmniNVR event review queue with camera and detection filters on macOS
Current OmniNVR Demo event-review queue with seeded person, motion, sound, animal, and other events.

Short answer: separate orchestration from retention

Home Assistant's Camera integration is a building block supplied by other device integrations. It can expose camera entities to dashboards and automations, play compatible streams, take snapshots, and use camera.record to create a recording of a live feed. That recording action requires the Stream integration, and its output path must be writable and allowed by the Home Assistant file configuration. The Stream integration proxies compatible live video through Home Assistant using HLS or low-latency HLS.

Those documented actions are useful, but they are not the same operating model as a dedicated recorder with continuous footage, storage retention, and a searchable recording timeline. Use Home Assistant as the automation and dashboard layer, then select an NVR when continuous recording or long-term review is required.

Three Home Assistant camera architectures

ArchitectureCamera pathRecording and reviewSetup requirementsBest fit
Home Assistant Camera + StreamCamera integration supplies entities; Stream proxies compatible H.264 or H.265 to HLS/LL-HLSSnapshots, live viewing and action-created recordingsStream integration, a writable allowed output path for camera.record, browser-compatible codec and audioDashboards and camera automations
Frigate + Home AssistantFrigate records and analyzes cameras; its official integration publishes entities to Home AssistantRecordings by month, day, camera and time; object recordings and snapshots in Media BrowserMQTT on the same broker, HACS integration, Frigate URL and media_source for Media BrowserLocal AI and dedicated NVR retention
Scrypted + Home AssistantScrypted receives camera streams and integrates its interface into Home AssistantScrypted NVR Camera and Event Reel cards provide its recording interfaceScrypted custom component through HACS, even when using the Home Assistant add-onLow-latency smart-home camera viewing and Scrypted NVR

Codec support still reaches the viewing client. Home Assistant notes that many browsers do not support H.265 and that PCM audio is not supported by the Stream integration, so an H.265 camera or unsupported audio track can work differently across dashboards and devices. Prefer an H.264 profile with compatible audio when broad client playback matters.

Connect ONVIF cameras correctly

Home Assistant's official ONVIF integration supports ONVIF Profile S conformant devices and requires the FFmpeg integration. Home Assistant can discover a device automatically or accept a manual integration entry. The documentation recommends creating a dedicated standard user on the camera instead of reusing an administrator account.

The integration adds compatible profiles whose video encoding is H.264. If Home Assistant reports “No usable cameras were found,” configure at least one H.264 stream; a practical option is to keep the primary stream in H.265 and set a secondary stream to H.264. Depending on device support, ONVIF can also expose motion and other event sensors, device switches, selectable RTSP transports, and PTZ actions.

Deploy Frigate with its real requirements visible

The Frigate Home Assistant integration requires Home Assistant MQTT to be installed and manually configured. Frigate must enable MQTT and connect to the same broker for many integration entities to work. The integration is installed through HACS, and media_source must be enabled for its Media Browser.

For cameras, Frigate's current hardware guide recommends H.264 video and AAC audio for maximum compatibility with Frigate and Home Assistant. Multiple substreams are useful because detection, live viewing, and recording can use different resolutions without re-encoding. A dedicated detector is recommended for production workloads, but it does not have to be a Google Coral: current documentation supports several detector families and no longer recommends Coral for most new installations.

Home Assistant also needs a reachable Frigate URL. For Frigate on a separate local machine, the official integration guide recommends the authenticated port 8971. Follow its TLS and certificate guidance rather than exposing the unauthenticated internal port to untrusted networks.

Storage, security, and validation checklist

Keep recording retention in the recorder layer so there is one clear owner for deletion, disk limits, segment health, and recovery. Use Home Assistant for automations and status, but verify recordings from the NVR timeline or Media Browser as well as from a dashboard card.

  • Create a dedicated standard ONVIF camera user.
  • Confirm an H.264 profile is available to Home Assistant.
  • Test live video and the camera.record action.
  • For Frigate, verify MQTT entities and Media Browser recordings.
  • Restart Home Assistant, the recorder, and one camera separately.
  • Confirm retention deletes old footage before storage is exhausted.
  • Use an authenticated or private connection between Home Assistant and the recorder.

For protocol planning, read RTSP versus ONVIF. For product-level details, continue with OmniNVR versus Frigate or OmniNVR versus Scrypted NVR.

Frequently asked questions

Can Home Assistant record camera video without Frigate?

Yes. The official Camera integration provides camera.record when the camera and Stream integration support it. Configure Stream, use a writable path allowed by Home Assistant, and test the output. Use a dedicated NVR when you need continuous recording, managed retention, and a recorder-oriented timeline.

Does Frigate require a Google Coral?

No. Frigate supports multiple detector types. Its current hardware guide says Coral is no longer recommended for most new installations, except deployments with especially low power requirements or hardware unable to use alternative accelerators.

Why does Home Assistant ONVIF say no usable cameras were found?

Home Assistant's ONVIF integration looks for an H.264 video profile. Configure at least one camera stream as H.264; you can often keep the main stream as H.265 and use an H.264 secondary stream.

Sources and further reading

Record locally on the Apple device that fits the job.

Mac, iPhone, iPad, and Apple TV all support local recording. Recording modes and storage options can differ by platform and app version.