Chismoso

Advanced

Getting the best live video

Set up Frigate's go2rtc for WebRTC (port 8555 and candidates), and understand when Chismoso uses MSE or snapshots instead.

Chismoso shows live video in one of three ways and picks the best one that works, so you always see something. With a little setup on the Frigate side you'll get the fastest one, WebRTC, wherever it's available.

The three methods

Method Delay When it's used Needs
WebRTC Lowest (well under a second) Windows and macOS Port 8555 and go2rtc candidates (below)
MSE Low (about a second) Linux, or when WebRTC fails Nothing extra
Snapshots About 1 fps When neither works Nothing

The badge in the camera view (Live · WebRTC, Live · MSE, Snapshots · 1 fps) and the corner of each grid tile tell you which one you're getting.

Setting up WebRTC

WebRTC video flows straight from Frigate's built-in go2rtc to Chismoso. Only the setup handshake goes through Frigate's normal port. For the video itself to arrive, two things must be true.

1. Port 8555 is reachable

go2rtc sends WebRTC video on port 8555, over both TCP and UDP. If Frigate runs in Docker, publish both:

# docker-compose.yml
services:
  frigate:
    ports:
      - "8971:8971"
      - "8555:8555/tcp"
      - "8555:8555/udp"

Also allow 8555 through any firewall between this computer and the Frigate host.

2. go2rtc knows its own address

Inside Docker, go2rtc can't tell which address your computer should use to reach it. Tell it in Frigate's config, with the Frigate host's LAN IP:

go2rtc:
  webrtc:
    candidates:
      - 192.168.1.169:8555   # your Frigate host's LAN IP
      - stun:8555

Restart Frigate after changing it. Open a camera in Chismoso: the badge should now say Live · WebRTC.

Why Linux uses MSE

On Linux, Chismoso uses the system's WebKitGTK web view, which doesn't support WebRTC. So it goes straight to MSE: Chismoso opens go2rtc's MSE stream over Frigate's normal HTTPS port and hands the video to the web view. There's nothing to set up, and the delay is usually around a second.

For smooth video with many cameras on Linux, install hardware decoding.

Away from home

Over a VPN or a remote connection, WebRTC's UDP port is often blocked or unreachable. That's fine: Chismoso falls back to MSE, which only needs the same port you signed in with. If WebRTC takes a while to give up on a slow connection, the badge will switch over on its own.

Grid tiles vs the camera view

  • The grid shows snapshots until you tick Live grid. See Live view.
  • The grid prefers a camera's substream (the second entry in live.streams); the camera view lets you choose. See Substreams.

Frame rates

The fps shown on a tile is measured from the video you're receiving. Frigate's own camera_fps (shown when you hover) is the rate of the detect stream, often just 5 fps, and has nothing to do with how smooth live view is.

Edit this page on GitHub