Live media spike — LiveKit on EC2

This page exists to measure one number: how much data the server sends per attendee-hour. Every cost figure in the design rests on an estimate of 0.54 GB that nobody has measured. Open this page in several tabs or on several devices, join the same session, and read the headline number below.

Join

Dynacast stops sending layers nobody is displaying. Adaptive stream drops quality for tiles that are small or off screen. Both cut server egress, which is the whole cost story — so measure with them on and again with them off.

The measurement

GB per attendee-hour design assumes 0.54
Cost / attendee-hour at $0.114/GB Sydney egress
Monthly at 4,000 hrs $200 limit is the test
Participants 0 the number above scales with this
Download now what the server is sending us
Upload now our camera going up once

Server egress per attendee-hour is this browser's download rate held for an hour. That is the figure the cost model needs. It rises with the number of people on camera, so always read it together with the participant count.

Controls

Participants

Tracks

DirWhoKindLayer ResolutionFPSBitrateCodec
not connected

Token claims — the three design properties, visible

join to see the decoded token

Check three things here. room starts with the workspace id, so two tenants cannot collide. roomCreate is false, so a member cannot make a room. exp is 60 seconds after nbf, because the token is a handoff and not a session. The room is fixed inside the token, so this page cannot ask to join a different one — that is the isolation boundary working.

Negative test

auto_create: false is set on the server. This asks for a token without creating the room first. It should fail. If it succeeds, a member can create rooms and the design's second security property does not hold.

Log