Real-time Systems

The media and transport layer that moves a frame from the host to your screen in a few milliseconds.

Section
08 / 14
Read
2 min

Everything on this page runs against a clock. At 165 Hz a frame has 6.1 ms to be captured, encoded, carried, decoded and painted, and each of these projects takes a slice of that budget.

Media

FFmpegmedia engine

FFmpeg handles encoding and decoding on the host, with hardware paths for NVENC, QuickSync, AMF and VideoToolbox, and H.264, HEVC and AV1 where the hardware and the browser both agree.

Opusaudio

Low latency audio in both directions, for the session sound and for voice in a room.

Transport

WebRTC

WebRTC for one to one sessions. ICE finds the shortest path, DTLS-SRTP encrypts it, and a TURN relay steps in only when the network refuses a direct route.

QUIC and Media over QUIC

QUIC with TLS 1.3 built in, carrying Media over QUIC for rooms. One publish, many subscribers, and no head of line blocking between them.

Why two transports

SessionTransportReason
One viewerWebRTCShortest possible path, direct where the network allows
A roomMedia over QUICFan out through a relay, so a slow viewer stalls only their own picture
LAN or VPNMedia over QUIC directNo relay hop at all when the browser can reach the host

Input

Binary input codecwire

Keyboard, mouse and gamepad events travel as a compact binary format shared byte for byte between the host and the browser, so input never waits on a text parser.

ViGEmBuswindows

ViGEmBus presents a virtual Xbox controller to games and carries rumble back.

Kernel input filterwindows

Delivers keyboard and mouse events at the device level, which is what raw input titles expect.

Which transport a session uses, and why