Skip to content

Stream Settings

phit edited this page Jun 30, 2026 · 2 revisions

Stream Settings

The Stream settings section in the camera form (click ▼ Stream settings to expand) lets you configure how Vigilatus gets the video feed.

Stream Protocol

At the top of the expanded section is a Stream protocol selector:

Protocol When to use
RTSP (default) Standard wired/Wi-Fi Tapo cameras with an always-on RTSP server. Exposes the RTSP and Camera Account fields described below.
HTTP Media Session Battery- and solar-powered cameras (and other models that don't expose RTSP). See Option C below.

When HTTP Media Session is selected, the RTSP/proxy/Camera-Account fields are hidden — they aren't needed.

Option A: Direct Camera RTSP (Camera Account)

Stream directly from the camera's built-in RTSP server. This is the simplest option if you don't run a proxy.

  1. In the Tapo mobile app, go to Camera Settings → Advanced Settings → Camera Account and create a username/password
  2. In Vigilatus, expand Stream settings and fill in:
Field Description
Camera Account username The username you set in the Tapo app
Camera Account password The password you set in the Tapo app

Leave the External RTSP source URL empty. Vigilatus will connect to rtsp://<camera-ip>:554/stream1 using these credentials.

Note: If you don't set Camera Account credentials, Vigilatus falls back to using the API password for RTSP as well.

Option B: External RTSP Proxy

If you run an RTSP proxy (e.g. go2rtc, mediamtx, Frigate, etc.), point Vigilatus at the proxy instead of directly at the camera.

Field Description Example
External RTSP source URL Full RTSP URL of the proxy stream rtsp://proxy.local:8554/front-door
Proxy RTSP username Auth username for the proxy (if required) viewer
Proxy RTSP password Auth password for the proxy (if required)

When an external RTSP URL is set, Vigilatus will use it instead of connecting directly to the camera. The API credentials (Tapo API username/password) are still needed for features like recording download and camera status queries.

Option C: HTTP Media Session

For cameras that don't run an RTSP server — typically battery- and solar-powered models — select HTTP Media Session as the stream protocol. This streams the live feed directly over the Tapo HTTP protocol (port 8800) using your Tapo API password.

  • No RTSP credentials, proxy, or Camera Account needed — only the Tapo API username/password from the main form.
  • On first connection Vigilatus auto-detects the camera's password hash method (MD5 or SHA-256) and remembers the working one for faster reconnects.
  • To save battery, snapshots for HTTP cameras refresh less often (about every 2 minutes), and snapshot polling pauses while the live stream is running.

Tip: If a battery camera connects for recordings but the live view never starts on RTSP, switch its stream protocol to HTTP Media Session.

How Streaming Works

Vigilatus uses ffmpeg under the hood to transcode the RTSP stream into HLS (HTTP Live Streaming) segments served from a local HTTP server on 127.0.0.1. The video player in the app then plays the HLS stream. This approach avoids browser RTSP limitations and works reliably across platforms.

Which Option Should I Use?

Scenario Recommended
Single camera, simple setup Option A (Camera Account)
Battery / solar camera (no RTSP) Option C (HTTP Media Session)
Multiple apps sharing one stream Option B (RTSP Proxy)
Camera behind a different VLAN/subnet with proxy Option B (RTSP Proxy)
Frigate / go2rtc already running Option B (RTSP Proxy)

Clone this wiki locally