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.

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
| Architecture | Camera path | Recording and review | Setup requirements | Best fit |
|---|---|---|---|---|
| Home Assistant Camera + Stream | Camera integration supplies entities; Stream proxies compatible H.264 or H.265 to HLS/LL-HLS | Snapshots, live viewing and action-created recordings | Stream integration, a writable allowed output path for camera.record, browser-compatible codec and audio | Dashboards and camera automations |
| Frigate + Home Assistant | Frigate records and analyzes cameras; its official integration publishes entities to Home Assistant | Recordings by month, day, camera and time; object recordings and snapshots in Media Browser | MQTT on the same broker, HACS integration, Frigate URL and media_source for Media Browser | Local AI and dedicated NVR retention |
| Scrypted + Home Assistant | Scrypted receives camera streams and integrates its interface into Home Assistant | Scrypted NVR Camera and Event Reel cards provide its recording interface | Scrypted custom component through HACS, even when using the Home Assistant add-on | Low-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.recordaction. - 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
- Home Assistant — Camera integration
- Home Assistant — record camera feed action
- Home Assistant — Stream integration
- Home Assistant — ONVIF integration
- Frigate — official local AI NVR documentation
- Frigate — official hardware and detector guidance
- Frigate — official Home Assistant integration
- Scrypted — official open-source platform overview
- Scrypted — official Home Assistant integration
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.