HTTP Live Streaming

HTTP Live Streaming
Filename extension
.m3u8
Internet media type
application/vnd.apple.mpegurl or audio/mpegurl[1]
Type code.m3u8
Developed byApple Inc.
Initial releaseMay 2009
Extended fromextended M3U
Extended to.m3u8
StandardRFC 8216

HTTP Live Streaming (also known as HLS) is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2022, an annual video industry survey has consistently found it to be the most popular streaming format.[2]

HLS resembles MPEG-DASH in that it works by breaking the overall stream into a sequence of small HTTP-based file downloads, each downloading one short chunk of an overall potentially unbounded transport stream. A list of available streams, encoded at different bit rates, is sent to the client using an extended M3U playlist.[3]

Based on standard HTTP transactions, HTTP Live Streaming can traverse any firewall or proxy server that lets through standard HTTP traffic, unlike UDP-based protocols such as RTP. This also allows content to be offered from conventional HTTP servers and delivered over widely available HTTP-based content delivery networks.[4][5][6] The standard also includes a standard encryption mechanism[7] and secure-key distribution using HTTPS, which together provide a simple DRM system. Later versions of the protocol also provide for trick-mode fast-forward and rewind and for integration of subtitles.

Apple has documented HTTP Live Streaming as an Internet Draft (Individual Submission), the first stage in the process of publishing it as a Request for Comments (RFC). As of December 2015, the authors of that document have requested the RFC Independent Stream Editor (ISE) to publish the document as an informational (non-standard) RFC outside of the IETF consensus process.[8] In August 2017, RFC 8216 was published to describe version 7 of the protocol.[9]

  1. ^ Pantos, R.; May, W. (2017). "Playlists". HTTP Live Streaming. IETF. p. 9. sec. 4. doi:10.17487/RFC8216. ISSN 2070-1721. RFC 8216. Retrieved Jan 15, 2020.
  2. ^ Lederer, Stefan. "2022 Video Developer Report" (PDF). Bitmovin. Retrieved 25 October 2023.
  3. ^ Jordan, Larry (10 June 2013). "The Basics of HTTP Live Streaming". Larry's Blog. Larry Jordan & Associates. Retrieved 18 June 2013.
  4. ^ "MPEG-DASH vs. Apple HLS vs. Smooth Streaming vs. Adobe HDS". Bitmovin. March 29, 2015.
  5. ^ Chen, Songqing; Shen, Bo; Tan, Wai-tian; Wee, Susie; Zhang, Xiaodong (2006-07-09). "A Case for Internet Streaming via Web Servers". 2006 IEEE International Conference on Multimedia and Expo. pp. 2145–2148. doi:10.1109/ICME.2006.262660. eISSN 1945-788X. ISBN 9781424403677. ISSN 1945-7871. S2CID 9202042.
  6. ^ Songqing Chen; Bo Shen; Wee, S.; Xiaodong Zhang (2007-07-23). "SProxy: A Caching Infrastructure to Support Internet Streaming". IEEE Transactions on Multimedia. 9 (5): 1062–1072. CiteSeerX 10.1.1.74.4838. doi:10.1109/TMM.2007.898943. ISSN 1520-9210. S2CID 870854.
  7. ^ Pantos, R. (30 September 2011). "HTTP Live Streaming". Internet Engineering Task Force. Retrieved 18 June 2013.
  8. ^ "History for draft-pantos-http-live-streaming". Retrieved 2017-04-17. Stream changed to ISE from None
  9. ^ Pantos, Roger; May, William (August 2017). HTTP Live Streaming. doi:10.17487/RFC8216. RFC 8216. Retrieved 2017-09-05.