
HLS vs WebRTC comes down to delay versus reach. HLS serves cached files through any CDN and plays almost everywhere, with 20 to 45 seconds of delay. WebRTC gets video to your viewer in under a second, but every viewer needs a live connection through a media server.
TL;DR:
Updated Oct 19, 2026: replaced two outdated lines saying AIOZ Stream's live streaming hadn't shipped, added its documented live path, Low Latency Mode (Beta) and DASH output for on-demand video, added a decision table and a cost-per-viewer diagram, and shortened the opening.
HLS breaks a stream into short segments and serves them over ordinary HTTP. Any CDN can cache those files, and any modern browser or media player can request them. The same model makes HLS slow, because your player buffers several segments before it starts, and every layer between origin and viewer adds its own delay.
WebRTC skips segments and caching entirely. It sends media over a real-time connection, which keeps latency in the hundreds of milliseconds. A live connection can't be cached, though, so a large audience means routing every viewer through an SFU instead of a CDN edge. The SFU receives each sender's stream once and forwards a copy to every viewer, so its bandwidth grows with each person who joins. STUN and TURN servers solve a separate problem: they help two devices behind different routers and firewalls find a path to each other. HLS never needs them, because it doesn't connect peers.

Mux's developer guide puts standard HLS at 20 to 45 seconds glass-to-glass with 6 to 10 second segments, before transcoding or CDN time. It puts LL-HLS at 2 to 4 seconds at scale and WebRTC at 100 to 500 ms. Wowza's comparison adds the reach side: HLS plays back on almost any device, app or browser, while WebRTC reaches fewer than 50 viewers without a custom CDN or a video platform behind it.
Most of the HLS delay is the player's starting point, not the network. RFC 8216 tells clients not to start less than three target durations from the live edge, which is 18 seconds with 6-second segments. Our glass-to-glass latency guide breaks the rest of the delay into seven stages and shows how to measure it yourself. For DASH, RTMP and SRT in the same latency picture, see how the main streaming protocols compare.
LL-HLS splits segments into small parts and lets your player request a part before it finishes encoding. That pulls latency down to a few seconds while keeping HTTP delivery and CDN caching. Mux describes it as low enough for most live use cases, including sports, live commerce, news and events, without WebRTC's signaling and STUN/TURN work. Our LL-HLS explainer covers partial segments, preload hints and blocking playlist reloads.
"WebRTC doesn't scale" describes a cost curve, not a hard wall. When you add a viewer to an HLS broadcast, the marginal cost is close to zero once the segment sits in a nearby cache, because the same file just gets served again. When you add a viewer to a WebRTC broadcast, the SFU takes on a new forwarding job for as long as that viewer stays connected.
So WebRTC at scale means provisioning servers ahead of your audience, while HLS mostly means pointing more traffic at content the CDN already holds. That's why large interactive events often split the two: hosts and guests talk over WebRTC, and the much larger audience watches an HLS copy of the same feed.
Start from how tightly your viewers' reactions must line up with what's on screen. Audience size matters less than it looks: a ten-person live auction still needs WebRTC, while a million-viewer product launch runs fine on LL-HLS.
| Your use case | Delay you can accept | Pick | Why |
|---|---|---|---|
| On-demand video, replays | Any | HLS (or DASH) | Nobody shares a live moment, so caching and reach win |
| Large broadcast: launches, talks, most sports | Several seconds or more | HLS or LL-HLS | Delay reads as normal broadcast lag; CDN economics scale |
| Live chat, watch parties, polls | 2 to 5 seconds | LL-HLS | Viewers shouldn't feel behind chat |
| Auctions, betting, co-host stages, calls | Under 1 second | WebRTC | Even one second makes actions look out of sync |
| Interactive stage with a big audience | Mixed | WebRTC stage, HLS audience | Low delay where people talk, caching where people watch |
A useful test: if a few seconds of delay would look like normal broadcast lag, LL-HLS covers it. If even one second would make two people's actions look out of sync, you're in WebRTC territory.
We deliver on-demand video over HTTP. When you create a video, each quality you request sets type to hls or dash, and the documented response returns both an hls_url and a dash_url. The video API reference lists mpegts or mp4 containers for HLS and fmp4 for DASH. Here's a request body built from those documented fields:
POST https://api.aiozstream.network/api/media/create
{
"title": "My Video",
"type": "video",
"qualities": [
{ "resolution": "1080p", "type": "hls", "container_type": "mpegts" },
{ "resolution": "720p", "type": "dash", "container_type": "fmp4" }
]
}Live streaming is shipped and documented as well. You send video from OBS Studio or PRISM Live Studio over RTMP, and each session returns an HLS playback URL, a player URL and an embed code. For interactive broadcasts such as Q&A, auctions or gaming, the Viewing and Sharing guide describes a Low Latency Mode (Beta) that reduces the delay between you and your audience.
What the docs don't cover yet: a latency figure for either live mode, and a WebRTC ingest or playback path. The docs' HLS vs WebRTC concept page sketches a hybrid design with an SFU, but the live setup guides and API reference document RTMP in and HLS out only. Next step: create a session with the Create Livestream guide, then measure the delay you get.
Does AIOZ Stream support WebRTC?
Not as a documented feature. The live API and setup guides document RTMP ingest and HLS playback, with a Low Latency Mode (Beta) for interactive streams; on-demand video is delivered as HLS or DASH.
Why is HLS so much slower than WebRTC?
An HLS player starts several segments behind the live edge and fetches each one over HTTP, so caching layers add delay too. WebRTC sends media over a continuous real-time connection with no segments to wait for.
Is Low-Latency HLS as fast as WebRTC?
No. LL-HLS reaches about 2 to 5 seconds, while WebRTC reaches 100 to 500 ms, which is fast enough for most broadcasts but not for auctions or two-way conversation.
Why can't WebRTC scale through a CDN like HLS does?
WebRTC sends a live connection instead of cacheable HTTP files, so each viewer must be served by an SFU or media server rather than by a CDN edge that holds a copy.
Does the choice matter for video on demand?
Barely, because on-demand viewers aren't watching the same moment together. HLS or DASH reach and caching make them the practical choice for that case.
What does a Selective Forwarding Unit do?
It sits between WebRTC participants, receives each person's stream once and forwards it to everyone who needs it. That per-viewer forwarding is the cost HLS avoids by serving cached files.

Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

Learn how a stream key differs from a streaming session on AIOZ Stream, what each one stores, and what to preconfigure before you go live. Docs-based guide.