HLS (HTTP Live Streaming) is a way of delivering video over ordinary web servers. The video is cut into short media segments, and a text playlist tells the player which segments to download and in what order. Apple, which created the protocol, describes it this way: HLS lets you deploy content using ordinary web servers and content delivery networks, and it is designed for reliability and dynamically adapts to network conditions by optimizing playback for the available speed of wired and wireless connections.
The protocol is written down in RFC 8216, published in August 2017. The RFC is labelled Informational, which means it is not an Internet Standards Track document; it was published to help different implementations work together. This page describes version 7 of the protocol, which is the version that RFC covers.
Because every request is a normal HTTP request, HLS works with the large-scale HTTP caching infrastructure that CDNs already provide; the RFC lists compatibility with that infrastructure as one of the protocol's goals.
The RFC says HLS allows a receiver to adapt the bit rate of the media to the current network conditions in order to maintain uninterrupted playback at the best possible quality. A Master Playlist makes this possible: each Variant Stream declares its peak BANDWIDTH in bits per second, and clients should switch between Variant Streams to adapt to network conditions. A viewer on a fast connection gets the high version; the same viewer on a weak connection is moved to a lower one without restarting the video.
This is the Media Playlist example from the RFC. It is plain text:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.tsThe first line, #EXTM3U, identifies the format. #EXT-X-TARGETDURATION:10 says every segment is 10 seconds long or less, and each #EXTINF line gives the duration of the segment that follows. The file extension is normally .m3u8; see what is an M3U8 file for a line-by-line walk-through.
The same format covers both. In an on-demand (video on demand, VOD) playlist the list of segments is complete and the playlist ends with #EXT-X-ENDLIST, which the RFC defines as indicating that no more Media Segments will be added. A live playlist keeps changing as new segments are published, and the player keeps reloading it. The optional #EXT-X-PLAYLIST-TYPE tag can be EVENT (segments are only added at the end) or VOD (the playlist cannot change). Apple also publishes a separate guide to low-latency HLS; this page does not cover it.
HLS is a way to deliver video to viewers. RTMP and SRT are commonly used to ingest: to send a live stream from your encoder to a server. A typical live workflow uses both, with RTMP or SRT on the way in and HLS on the way out. Multistream Platform accepts RTMP and SRT from your encoder and relays the stream to platforms such as YouTube, Twitch, Facebook and Kick; the platforms then deliver it to their own viewers. See RTMP vs SRT for the ingest side.
If you have an HLS link and want to know whether it plays in a browser, paste it into the free HLS player. It plays the stream with hls.js (or the browser's native HLS support) and explains common failures such as missing CORS headers, mixed content and 404 errors in plain words. The online video player also detects MP4 and DASH links.
Try it with Multistream Platform. Send one RTMP or SRT stream and relay it to YouTube, Twitch, Facebook, Kick, TikTok and custom endpoints. Start on the free Starter plan (2 channels, 20 streaming hours a month) and see the pricing page for paid plans.
Platform figures were checked on October 5, 2026. Platforms change their recommendations, so confirm against the current documentation before you go live.
The text playlist HLS players read: media vs master playlists, line by line, and how to play an m3u8 link.
Read the guideHow an encoder publishes a stream with a server URL and key, the handshake, and RTMP vs RTMPS.
Read the guideHow the two ingest protocols differ, when to choose each and how they behave on unreliable networks.
Read the guideBring your live, hosted, and pre-recorded streams into one platform.