Hybrid delivery

Live when you start it

WebRTC Stage + Synced HLS Audience

A few people talk live on stage over WebRTC while a large audience watches the same moment over HLS — the setup behind town halls, launches and live shows.
  • Active WebRTC stage
  • Passive HLS cohort
  • Clock and transport experiments
Free · no account · runs in this browser
Nothing starts until you press something. You can run the whole thing as a guest — no account, no setup, and any room you launch expires on its own. Just opening this page creates no room, no session and no charges.
Your path through this room

Try it in 3 moves

0 of 3
  1. Join the stage

    Real-time WebRTC, under a second of delay.

  2. Move the audience

    Play or seek the HLS cohort and watch it trail the stage.

  3. Promote someone

    They switch from watching to sending, mid-session.

Premium React reference · hybrid delivery lab

WebRTC Stage + Synced HLS Audience

Keep the host and two guests conversational while a passive cohort follows one versioned program clock.

Guest-ready custom reference

Guest-ready WebRTC stage

Guest room closed
Guest room closedNo room, media, HLS manifest, or credential is active.

Everyone on stage talks in real time. A separate stream carries the same picture to a large watch-only audience.

  • Guests join a private room that closes when you leave.
  • Video and audio stay inside this panel.
  • No sign-in, no saved data, nothing stored after you leave.
STAGE MODEL1 HOST + 2 OF 2 GUEST SEATSCOHORT COMMAND v0PROGRAM 02:00

Conversational path

Active WebRTC stage

max 2 active guests
HHostWebRTC publisher + consumerfixed active

Scaled delivery path

Passive synchronized audience

HLS delivery · watch only
V1live alignedV2live alignedV3live alignedV4live alignedV5live alignedV6live aligned
PROGRAM TIME02:00follow-live · command v0
DEFAULT HLSEXPERIMENT off
01Host + active guestsTalking in real time
→
02MediaSFUCarries the live audio and video
→
03Stream outOne feed for a large audience
→
04ViewersWatch a few seconds behind

Ready to try. Nothing is running yet — no room, no camera, no stream.

What this walkthrough shows

How a room splits into a small live stage and a large watching audience: who can speak, how many fit on stage, what the host can change mid-session, and where the switch between instant WebRTC and scaled HLS happens.

What stays illustrative

The seat and cohort diagrams explain capacity and commands. The WebRTC room, cameras, microphones, guest links, HLS feed and watch links in the live panel above are real and expire with the room.

Add a watch-only stream for a big audience

The guest room above is the default. A Studio/profile or BYO integration may inject a separately authorized member-HLS adapter; it never changes the room boundary or grants a participant end authority.

Operators: run a saved 15-minute session

The stage above needs no account and keeps nothing. A saved session is the signed-in variant: it is recorded on our servers, expires in 15 minutes, and can be scrubbed on demand.

Requires a signed-in account.
For developers: how the stream is put together

The premium surface, deterministic playback lab, roles, evidence, and teardown all resolve from the same frozen scenario.

Hybrid real-time and egress pattern - guide-only

Technical workbench · WebRTC Stage + Synced HLS Audience

A host and up to two active guests talk over WebRTC while passive viewers consume clock-aligned HLS renditions and follow a server-authoritative live-edge or DVR playhead.

  1. 1Start with

    one host, at most two active guests, and a larger passive audience with an explicit latency and DVR policy

  2. 2Use MediaSFU primitives

    room lifecycle, role-scoped publishing, active participant presence, WebRTC consume state, and observed media events

  3. 3Get

    a hybrid stage where active speakers remain conversational and passive viewers receive synchronized egress playback

  4. 4Refine with

    HLS or CMAF egress, program-time alignment, authoritative cohort commands, drift telemetry, AB comparison, and cleanup adapters

Build translation

Start with X → MediaSFU primitives Y → outcome Z

Start withHost plus two active guests→MediaSFU primitivesroom-create-v1 + room-join-v1 + participant roles→OutcomeExactly three permitted publishers can be represented on the live stage

Refine: Bind server-owned admission, active-capacity, and promotion policy.

Start withActive-to-active conversation→MediaSFU primitivesWebRTC publish and consume state→OutcomeThe active trio can consume one another with conversational latency

Refine: Bind network-quality policy and prove media in isolated browsers.

Start withPassive audience playback→MediaSFU primitivesobserved active media state→OutcomeEach active source has an explicit egress intent without pretending the browser creates HLS

Refine: Bind aligned HLS or CMAF renditions, manifests, storage, and delivery.

Start withSeek everyone together→MediaSFU primitivesapplication state beside room events→OutcomeA versioned cohort playhead can coordinate passive viewers without seeking the live speakers

Refine: Bind a server-authoritative clock, command sequence, drift budget, and DVR window.

Start withHLS versus WebRTC experiment→MediaSFU primitivesrole and consume intent→OutcomeA bounded passive cohort may be assigned receive-only WebRTC for comparison

Refine: Bind deterministic cohort assignment, capacity limits, QoE metrics, and rollback.

Role lens

Who owns each decision?

Topology

The room and its deliberate gaps

Active WebRTC stagehost plus at most two active guests
MediaSFU WebRTC fabricpublish and consume lifecycle
Aligned HLS egressunbound rendition and manifest adapter
Passive audience cohortlive-edge or DVR playback policy
Cohort clock authorityunbound versioned playhead and command log
Comparison proof harnessunbound drift, QoE, and cleanup evidence

Control inventory

Controls are states, not simulated actions

Active slots 1 + 2adapter required

Server policy must admit at most two active guests and demote or reject excess requests.

Owner: role authority
Active WebRTC mediainstalled sdk

Projects publish and consume readiness for the active trio; the guide requests no media.

Owner: installed SDK
Live edge / DVR modeadapter required

Selects whether the passive cohort follows live edge or may use a bounded rewind window.

Owner: egress and playback policy
Play / pause / seek cohortadapter required

Creates a versioned command for passive viewers only; active speakers stay live.

Owner: clock authority
HLS / receive-only WebRTC cohortadapter required

Assigns a bounded experiment cohort before join and never flips a viewer silently.

Owner: experiment authority

Interactive protocol proof

Active WebRTC stage + synchronized passive audience

Local deterministic model · no media or egress
Active stage stays live
HostWebRTC publisher
Guest AWebRTC publisher
Guest BWebRTC publisher
Authoritative command v0follow-live · 120.0s
hls-viewer-ahls118.2sawaiting command
hls-viewer-bhls121.1sawaiting command
webrtc-observerreceive-only-webrtc120.2sawaiting command

Issue a local command to inspect monotonic versioning, drift correction, and the active-stage invariant.

This is a protocol model, not simulated playback. A real run must inject admission, HLS/CMAF egress, shared-clock, QoE, and teardown adapters and replace every local projection with observed evidence.

Implementation workbench

application

Host application: Declare stage, audience, and timeline policy

Do: Choose active capacity, passive transport, latency target, live-edge or DVR semantics, rights, and retention before enabling controls.

Then: The guide exposes no room, manifest, media locator, assignment, or durable viewer value.

Evidence: Reviewed hybrid-session policy

Recovery: Stop before admission when any authority or rights boundary is unavailable.