StreamLive Pro

What is HLS? HTTP Live Streaming explained

What is HLS: the way most players deliver live video to viewers, as short files in an .m3u8 playlist. How it differs from RTMP, why it adds delay, and its role here.

Updated · 5 min read

HLS, HTTP Live Streaming, is a way of delivering video to viewers over ordinary web servers. The stream is cut into short media files, and a playlist file with the extension .m3u8 lists them. A player downloads the playlist, fetches the pieces one after another, and plays them in order. Apple, which created it, describes HLS as working with "ordinary web servers and content delivery networks" and adapting "to network conditions by optimizing playback for the available speed" (Apple Developer: HTTP Live Streaming, checked 5 November 2026).

HLS is the watching side of a live stream. It is how a player receives video, not how an encoder sends it. Shorter definitions of related terms are in the Live streaming glossary: the terms you will meet.

How HLS works

  1. The server receives the live stream from the encoder, usually over RTMP or SRT. See What is an ingest server in live streaming?.
  2. It cuts the stream into segments, short files of a few seconds each, often in several qualities at once.
  3. It writes a playlist (.m3u8) that lists the latest segments of each quality, and updates it as new ones are made.
  4. Players fetch the playlist and the segments over plain HTTPS, through a CDN, like any other files on the web.
  5. The player switches quality up or down as the viewer's connection changes. This is adaptive bitrate.

HLS next to RTMP

RTMP / RTMPSHLS
DirectionFrom an encoder into a serverFrom a server out to viewers
Who starts itThe encoder pushesThe player pulls
TransportA long-lived connectionMany small HTTPS downloads
Scales to large audiencesNot by itselfYes, through CDNs
Typical addressrtmp:// or rtmps:// with a keyhttps://... .m3u8
DelayLowUsually several seconds or more

That is why the two usually appear together: an encoder sends RTMP in, and the platform sends HLS out.

Why HLS adds delay

A player cannot show a segment before it is complete, and players usually keep a few segments in hand so playback does not stall. With segments a few seconds long, the viewer ends up some seconds behind the camera. Low-Latency HLS (LL-HLS) cuts the segments into smaller parts to shrink that gap. Cloudflare Stream, for example, says its built-in player uses LL-HLS when possible, with the setting in beta, and recommends a keyframe interval of 4 to 8 seconds for standard HLS playback and 2 to 4 seconds for LL-HLS (Cloudflare Stream: Start a live stream, checked 5 November 2026). More on delay: What is stream latency, and where does the delay come from?. Keyframes: What is a keyframe interval, and why set it to 2?.

Where HLS shows up in StreamLive Pro

In your own web player. A broadcast can also be watched on StreamLive Pro's own watch page and embedded player. That player plays the broadcast over HLS in the viewer's browser. You do not handle the .m3u8 address yourself.

Not as a destination. Broadcasts leave StreamLive Pro over RTMP, RTMPS or SRT only. An HLS address saved as a destination is refused with "WHIP and HLS destinations are not supported yet", because an HLS link is something a player reads from, not something an encoder can push into: Destination not supported": WHIP and HLS destinations.

Not as a way in. Encoders send to StreamLive Pro over RTMP, RTMPS, SRT or WHIP (beta), not HLS.

What you wantWhat the .m3u8 link is forWhat to ask for instead
Send your broadcast to their platformIt is their viewers' address, not an ingestAn RTMP, RTMPS or SRT ingest address and a key
Show their stream inside your liveIt is a source a player can readPlay it in a player or a capture tool; StreamLive Pro does not take HLS sources
Watch the broadcastThat is exactly what it is forOpen it in a player that supports HLS

Adding a destination by address: Stream to a custom RTMP or SRT server.

What is inside an .m3u8 playlist

An HLS playlist is a short text file. A live playlist usually starts with a line that marks it as HLS, then gives the target length of each segment, a running sequence number, and the names of the latest few segments, each with its exact duration. Every few seconds the server rewrites the file: the oldest segment drops off the top and a new one is added at the bottom. A master playlist sits above it and lists one such playlist per quality, for example 1080p, 720p and 480p, with the bitrate of each. The player reads the master list first and picks a quality, then keeps re-reading the playlist of that quality for as long as the live runs.

That design is why HLS spreads so easily: every piece is an ordinary file with an ordinary web address, so any CDN can cache it and hand it to thousands of viewers near them.

Common mistakes with HLS

Terms around HLS

TermMeaning
.m3u8The playlist file of an HLS stream
SegmentOne short media file in the playlist
Adaptive bitrate (ABR)The player picks the quality that fits the viewer's connection
LL-HLSLow-Latency HLS, with smaller parts for less delay
DASHA similar segment-based delivery format, not from Apple
CDNA network of servers that hands the segments to viewers near them

Frequently asked questions

What is HLS in simple words?

A way to deliver video to viewers as short files listed in a playlist. Players download the pieces one by one and switch quality to fit the connection.

Is HLS the same as RTMP?

No. RTMP sends a stream from an encoder into a server. HLS delivers the stream from a server to viewers.

Can I add an .m3u8 link as a destination in StreamLive Pro?

No. Destinations go out over RTMP, RTMPS or SRT. Ask the service for an RTMP or SRT ingest address and key.

Why is HLS delayed compared to the camera?

The player waits for whole segments and keeps a few in hand. Low-Latency HLS uses smaller parts to reduce the gap.

Does StreamLive Pro use HLS?

Yes, for viewers of its own watch page and embedded player. Not for receiving or sending broadcasts.

Keep reading

Live streaming glossary: the terms you will meet

A live streaming glossary in plain words: stream key, RTMP, SRT, bitrate, multistream, Preview and Program, ISO, captions, reframe. Where each shows up in StreamLive Pro.

How to stream on Bilibili Live with a stream key

Stream on Bilibili Live from your browser: start a live in your Bilibili room, copy the server and fresh key into the Bilibili Live card, then go live.

How to go live on Dailymotion with a stream key

Go live on Dailymotion: get live enabled on your account, create a live stream in Dailymotion Studio, and paste its stream URL and key into StreamLive Pro.

How to stream on DLive with your stream key

Stream on DLive from your browser: copy the key from your DLive dashboard, paste it into the DLive card in StreamLive Pro, and go live alone or with other networks.

Want to try it? 7-day trial, no credit card.

Start free
Mobile app Home Help Center Guides PrivacyTermsAccessibility