Performance & Quality
Waylo is designed to feel responsive across everything from a LAN to a cross-country WAN link. Two per-session controls — frame rate and quality — plus the codec in use determine the experience.
Frame rate and quality
Set both on the login screen, or change them mid-session from the toolbar's ⚙️ row (the change applies immediately to all connected clients and is remembered).
| Frame rate | Suggested for |
|---|---|
| 10 FPS | VPN / constrained links |
| 15 FPS | Balanced (default) |
| 20 FPS | LAN |
| 30 FPS | Max smoothness |
| Quality | Approx. bandwidth (MJPEG @ 1080p/15fps) |
|---|---|
| Low | ~1.2 Mbps |
| Med | ~2.5 Mbps |
| High | ~4 Mbps |
| Max | ~8 Mbps |
With H.264 (below), a mostly static desktop uses far less than the MJPEG figures — often ~0.3–1.5 Mbps during active use — because only changes are sent.
Codec: H.264 vs MJPEG
- H.264 (preferred) uses inter-frame compression, so idle regions cost almost nothing and text stays sharp while scrolling. It needs a hardware or software H.264 encoder on the host and a WebCodecs-capable browser.
- MJPEG (fallback) sends a full JPEG each frame — simpler and universally supported, but much heavier on bandwidth.
Waylo picks H.264 automatically when it can and falls back to MJPEG otherwise; you don't configure this. See Video Pipeline for how it works.
Lower the resolution
Capturing at a smaller size cuts bandwidth and encoder load:
waylo --width=1280 --height=720
Reduced effects
The reduced-effects toggle disables GNOME's animations for the session, which lowers the amount of screen change the encoder has to send and makes a constrained link feel snappier. Waylo restores your animation setting when the session ends (the restore marker is stamped with the owning process so it only affects sessions it started).
Tuning by link type
- LAN — 20–30 FPS, High/Max quality; H.264 will keep bandwidth reasonable.
- VPN — 15 FPS, Med quality is a good balance.
- WAN / high latency — 10–15 FPS, Low/Med, and enable reduced effects. Waylo is used in practice over cross-country links (~45 ms RTT) and stays usable there; the H.264 path's low idle bandwidth helps most on constrained links.
If the picture is smooth but bandwidth is high, confirm you're on H.264 (a host
without an H.264 encoder falls back to MJPEG). Installing the GStreamer bad
plugin set — for vah264enc / x264enc / openh264enc — enables it.