Streaming Protocols

HomeBe·at supports multiple streaming protocols for camera feeds. The app automatically detects which protocols are available for each camera and selects the best one.

Protocol Comparison

ProtocolLatencyQualitySetup
WebRTC< 1sHighBuilt-in since HA 2024.11
RTSP< 1sHighDirect connection to camera
HLS5–15sMediumBuilt-in with HA cameras
MJPEG1–2sLowBuilt-in fallback

Automatic Fallback Chain

HomeBe·at uses an automatic fallback chain when a streaming protocol fails:

WebRTC > MJPEG > VLC (RTSP) > HLS > Snapshot

If WebRTC fails to connect (e.g., go2rtc is unavailable or UDP is blocked), the app falls back to MJPEG immediately, while simultaneously attempting to establish a VLC or HLS stream. A badge in the camera view shows which protocol is currently active.

For cameras with a custom RTSP URL (either manually configured or auto-discovered from go2rtc), VLC streams the RTSP feed directly with sub-second latency.

WebRTC

The preferred protocol. Provides sub-second latency with high quality video. Requires go2rtc in Home Assistant (built-in since HA 2024.11). Uses UDP for media transport, so your network must allow UDP traffic between the HA server and your device.

Codec Support

HomeBe·at supports H.264, H.265 (HEVC), VP8, VP9, and AV1 video codecs. The codec is negotiated automatically between go2rtc and the app. H.265 support is particularly beneficial for cameras that stream natively in HEVC (e.g. newer Reolink and UniFi models), providing better quality at lower bitrates.

Quality Levels

Quality control depends on the camera type:

Reolink cameras — Reolink cameras with resolution channels (fluent / clear) use native stream switching — the app connects to the low-resolution fluent entity for Medium quality and the high-resolution clear entity for High quality. No bitrate throttling is needed since each stream is at its native quality. Quality cycles between MQ and HQ only.

Other cameras — Other cameras (including UniFi Protect, whose alternate channel entities don't support WebRTC) use SDP bitrate constraints on the primary entity:

QualityBitrate
Low (LQ)2.5 Mbps
Medium (MQ)5 Mbps
High (HQ)8 Mbps

Cycling the quality badge in the camera view stops and restarts the WebRTC connection. For Reolink cameras this switches between stream entities; for others it applies new SDP constraints.

Multi-Lens Cameras

Cameras with multiple lenses (e.g. Reolink Duo 3 PoE) appear as separate cameras in HomeBe·at, one per lens. Each lens has its own resolution channels and quality cycling. The app automatically groups lenses by device and maps the correct fluent/clear entity to each lens.

MJPEG

Motion JPEG streams a series of JPEG frames over HTTP. It works on any network (no UDP required) but provides lower quality and uses more bandwidth than WebRTC. This is the primary fallback when WebRTC is unavailable.

HLS

HTTP Live Streaming segments video into small chunks delivered over HTTP. It's reliable and works everywhere, but introduces 5–15 seconds of latency due to the segment buffering. Built into Home Assistant for all camera entities.

RTSP (via VLC)

Real-Time Streaming Protocol provides low-latency, high-quality streams. Streamed via the built-in VLC player. Used for custom cameras and for Home Assistant cameras that have an RTSP URL override configured (manually or via go2rtc auto-discovery).

RTSP supports both H.264 and H.265 codecs. Both WebRTC and RTSP now support H.265, so either protocol works well for cameras that use HEVC encoding.

Choosing a Protocol

For most users, the default automatic selection works best. The app picks the lowest-latency protocol available:

  • If you have go2rtc set up — WebRTC (best experience)
  • If WebRTC fails or is unavailable — MJPEG immediately, then upgrades to HLS
  • If you need reliability over latency — HLS (always works, higher delay)

You can override the streaming protocol per camera in the app's settings.