Streaming Settings - homebridge-plugins/homebridge-eufy-security GitHub Wiki

Streaming

Node.js Compatibility Warning: Certain Node.js versions break livestream/P2P functionality. See Node.js Compatibility for details.

Contents


General Information

Eufy cameras support two streaming modes:

  • P2P Streaming — referred to as 'Local Livestreams' by the plugin
  • RTSP Streaming — only available on some devices
Local Livestream (P2P) RTSP Stream
Availability All cameras Only some devices
Activation None required Must be enabled in the Eufy app + plugin settings
Limitations Only one camera per homebase can stream at a time Not available on all devices. May interfere with HKSV.

You can follow this guide to enable RTSP. The app may claim a NAS is required, but RTSP can generally be activated without one.

Enabling Cameras

Set up cameras using the configuration wizard in Homebridge UI. Click on settings and log in with your eufy credentials. Click on any device to access its settings.

See also: Device Settings

Most cameras load as motion sensors by default. You must enable camera mode in the device settings. Doorbells are always recognized as cameras.

The Streaming Process

When you stream from a camera through HomeKit:

  1. The plugin requests the video/audio stream from the camera (P2P) or the RTSP URL
  2. FFmpeg encodes the input into a format suitable for HomeKit
  3. The encoded stream is sent to your Apple device (iPhone, iPad, Apple TV, etc.)

Video encoding is resource-intensive. If your hardware isn't powerful enough, some features may not be available.

By default, the plugin uses the libx264 H.264 encoder and tries to match the parameters requested by the HomeKit controller. For less powerful hardware, choose a preset:

Presets

Select presets in the device config UI under 'Advanced Video Config'. Presets only affect video processing (not audio).

  • No Preset (default): Encodes with libx264 to match the requested resolution, FPS, and bitrate.

  • Copy: Forwards the video data to HomeKit without re-encoding. Great performance and quality, but some users report frame skipping due to high bitrate. Try reducing stream quality in the Eufy app if this happens. Video and audio run as separate FFmpeg processes for faster start times.

  • Performance: Reduces resolution and FPS to lower the encoding workload. Good for Raspberry Pi and similar hardware. Video and audio run as separate FFmpeg processes.

  • Custom: Mix and match settings for your specific setup.

Advanced Video Config Settings Explained

Setting Description
ffmpeg debug Write FFmpeg debug messages to the Homebridge log. Useful when FFmpeg crashes, but generates a lot of output.
Separate processes for video and audio Split encoding onto separate processes. Can improve performance, but may cause issues on some systems.
readRate Encode at realtime speed. Can usually be ignored for streaming.
vcodec Video codec. Default: libx264. Set to copy to skip re-encoding.
acodec Audio codec. Default: libfdk_aac. Changing this will likely break audio.
videoFilter Custom FFmpeg video filters (-filter:v).
encoderOptions Additional codec options. Default for libx264: -preset ultrafast -tune zerolatency.
probeSize Size of data analyzed to detect stream information.
analyzeDuration Microseconds analyzed to probe input. Higher values = more latency.
maxStreams Maximum concurrent streams. Default: 2.
maxWidth / maxHeight Maximum output resolution.
Force crop to requested resolution Crops to match the requested aspect ratio (e.g., 4:3 doorbell → 16:9 HomeKit).
fps Frames per second.
bitrate Video bitrate. Default: whatever HomeKit requests.

For streaming problems, see Common Issues — Streaming.