HTTP Live Streaming

From Wikipedia, the free encyclopedia - View original article

HTTP Live Streaming playlist
Filename extension.m3u8
Internet media typeapplication/vnd.apple.mpegurl[1]
Developed byApple Inc.
Initial releaseApril 2014
Type of formatPlaylist
Extended fromextended M3U
Standarddraft 13
 
Jump to: navigation, search
HTTP Live Streaming playlist
Filename extension.m3u8
Internet media typeapplication/vnd.apple.mpegurl[1]
Developed byApple Inc.
Initial releaseApril 2014
Type of formatPlaylist
Extended fromextended M3U
Standarddraft 13

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of their QuickTime, Safari, OS X, and iOS software. It works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an overall potentially unbounded transport stream. As the stream is played, the client may select from a number of different alternate streams containing the same material encoded at a variety of data rates, allowing the streaming session to adapt to the available data rate. At the start of the streaming session, it downloads an extended M3U playlist containing the metadata for the various sub-streams which are available.[2]

An example HLS live feed from a camera pointed at a fish tank with multiple stream encoding qualities
HLS Live Stream Example, feed: http://fish.schou.me/fish.m3u8 and full video player http://fish.schou.me

Since its requests use only standard HTTP transactions, HTTP Live Streaming is capable of traversing any firewall or proxy server that lets through standard HTTP traffic, unlike UDP-based protocols such as RTP. This also allows content to be delivered over widely available CDNs.

HLS also specifies a standard encryption mechanism[3] using AES and a method of secure key distribution using HTTPS with either a device specific realm login or HTTP cookie which together provide a simple DRM system. Later versions of the protocol also provide for trick mode fast-forward and rewind and integration of subtitles. upLynk has also added the AES scrambling and base-64 encoding of the DRM content key with a 128-bit device specific key for registered commercial SWF applications together with a sequential initialization Vector for each chunk to their implementation of the standard.[4]

Apple has documented HTTP Live Streaming as an Internet Draft (Individual Submission), the first stage in the process of submitting it to the IETF as an Informational Request for Comments. However, while Apple has submitted occasional minor updates to the draft, no additional steps appear to have been taken towards IETF standardization.[5]

Architecture[edit]

Http Live Streaming uses a conventional web server to distribute audiovisual content and requires specific software to fit into the proper format transmission in real time.

The service architecture comprises:

Server[edit]

Codify and encapsulates the input video flow in a proper format for the delivery. Then it’s prepared for distribution by segmenting it into different files.

Distributor[edit]

Formed by standard web Server, accepts requests from clients and delivery all the resources needed for streaming.

Client[edit]

Demand and download all the files and resources, assembling them so that they can be presented to the user as a continuous flow video.

Server components[edit]

In the process of intake, the video is coded and segmented to generate video fragments and index file.

Client software[edit]

The client software downloads first the index file through a URL and then the several media files available. The playback software assembles the sequence to allow the continue display to the user.

Scalability and Error protection[edit]

HTTP Live Streaming provides mechanisms to provide a scalable and adaptable to network, allowing playback quality in wireless networks with high bandwidth and low quality playback on 3G networks, where the bandwidth is reduced. HTTP Live Streaming also provides protection against errors, generating alternative different flows video to use them if there are any errors in segment.

Scalability[edit]

To make the system scalable and adaptable to the bandwidth of the network,video flow is coded in different qualities. Thus, depending on the bandwidth and transfer network speed will play the video with varying quality.

To implement this the system must encode the video in different qualities and generate an index file that contains the locations of the different quality levels.

The client software internally manages the different qualities, making requests to the highest possible quality within the bandwidth of the network. Thus always play the video the highest possible quality, viewing lower quality on 3G networks and highest quality in Wi-Fi broadband.

Protection against errors[edit]

Protection against errors works like scalability. In this case is generated a different flows with the same quality video and locations are listed in the index file.

The management of all files is done from the client, so that if it fails the first flow, use the next and successively.

HTTP Live Streaming also allows you to combine the protection of errors and scalability. In this case generates an index file that contains for each bandwidth the alternative flows of the videos.

Server implementations[edit]

Usage[edit]

Supported players and servers[edit]

Clients[edit]

ProductPlatformLive StreamingDRMAs of VersionVendor
Android (native media support)AndroidYesYesMediaPlayer class: 3.0+[15]
Support for HLS streams in the stock browser or Chrome is generally stable from Android 4.1 onwards (with minor issues).
Google
iOS (native media support)iOSYesYes3.0+
HLS streams can be accessed via Safari without the need of any 3rd-party app.
Apple
QuickTime PlayerOS XYesYes10.0+Apple
iTunes (music player)Windows, OS XYesYes10.1+[16]
To play a HLS stream, replace "http://" with "itls://" in the stream URL.
Apple
VLC media playerWindows, OS X, Linux, Android, iOS, Windows PhoneYesNo2.0[17]
Some HLS streams may not playback properly (e.g. missing audio, stuttering).
VideoLAN
XBMC Media Center (home entertainment application)Windows, OS X, Linux, Android, iOSYesPartial12.0 Alpha 5 and later
DRM support requires a monthly/nightly build
XBMC Foundation
MythTV (home entertainment application)Windows, OS X, Linux, FreeBSDYesYes0.26MythTV
3ivx (HLS Player and SDK)Windows 8, Windows Phone 8[18] & Xbox One[19]YesYes2.03ivx
XiiaLiveAndroid, iOSYesYes3.0+[20]
Plays internet radio streams (audio only).
Visual Blasters LLC
Tunein radioAndroid, iOSYesYes3.3+[21]
Plays internet radio streams (audio only).
TuneIn
DicePlayerAndroid 2.2+YesYesDiceplayer 1.0+INISOFT
Amino x4x STBAmino set-top boxesYesYes2.5.2 AminetAminocom.com
HP TouchpadWebOSYesYes3.0.5HP
nangu.TVMotorola STBYesYes2.0nangu.TV
Roku Digital Video PlayerRoku set-top boxesYesYesRoku OS / SDK 2.6Roku
THEOplayer (HLS Player and SDK)HTML5YesPartialOpenTelly
Flowplayer (HLS Player and SDK)Adobe Flash, iOS, AndroidYesYesThe Flash HLS plugin is available from GitHub.[22]Flowplayer Ltd
JW Player (HLS Player and SDK)Adobe Flash, iOS, AndroidYesYesA Premium or Enterprise license is required for HLS support.[23]JW Player
Yospace (HLS Player and SDK)[13]Adobe FlashYesYes2.1Yospace
Onlinelib (HLS Player and SDK)[24]Adobe FlashYesYes2.0Onlinelib.de
VODOBOX (HLS Player and SDK)Adobe Flash, iOS, AndroidYesYesVODOBOX
NexPlayer SDK (OTT multiscreen player)iOS, Android, Windows PhoneYesYesNexStreaming
ffplay/avplayYesPartialFFmpeg/Libav
GPAC (cross-platform media player)YesNo0.5.0Telecom ParisTech inc.

Servers[edit]

ProductTechnologyAs Of VersionVendorNotes
VLC1.2
Unicorn OnceSaaSUnicorn Media
IIS Media Services4.0[11]Microsoft
Antik Media StreamerIngest Module (UDP/HTTP Transport Stream, Backup Stream with auto-switching, stream status monitoring and logging), Stream replication UDP/HTTP, HLS streaming, Video archive with snapshots, Server-side Timeshift, Timezone Shifting with multi-timezones, Stream Encryption using AES and key-rotation (with Antik Key Server)3.0Antik technology
Adobe Media ServerLive and VOD streaming as origin and edge server5.0Adobe
Evostream Media ServerCross-platform including embedded systems such as encoders, IP cameras, DVRs, and more. Supports: Adobe Flash RTMP, RTMPS, LiveFLV, full transcoder for creating lower bitrate streams, HTTP Live Streaming (HLS) for streaming to iPhones, iPads and Androids, HTTP Dynamic Streaming (HDS) for Adobe Air, Microsoft Smooth Streaming (MSS) for Microsoft devices, RTSP with RTP or MPEG-TS, MPEG-TS (unicast/multicast), compatible Live Encoding, strong security for your content ( Verimatrix DRM, HLS AES encryption, Stream Aliasing, Watermarking), built-in clustering mechanism and more.1.6.5EvoStream
MythTV0.25MythTV
MACNETIX VOD-Server3.0MACNETIX
Anevia ViaMotion ServersTranscapsulation: from one input, several outputs
(HLS, MS Smooth Streaming, ADS Flash, MPEG DASH)
Anevia
Packet Ship OverView:Origin ServerCapture from IPTV multicast and chunking to HLS for multi-bandwidth live streams, with AES encryption2.1Packet Ship
nangu.TV Streamerson-the-fly adaptation: content is stored once enabling several outputs
(HLS, MS Smooth Streaming, ADS Flash, MPEG DASH)
nangu.TV
TVersity Media Server1.9TVersityPro Edition only
Helix Universal ServerLive + VOD HLS with Verimatrix DRM integration, ABR, Multi-Resolution, AES encryption15.0+RealNetworksHigh performance HLS (12,000+ concurrent devices)
Wowza Streaming EngineLive and VOD streaming as origin and edge server with DVR, DRM Integration and Transcoding for adaptive delivery. Outputs to MPEG-DASH, HLS, HDS, Smooth Streaming, RTMP, and RTSP2.0+Wowza Media Systems
Unified Streaming PlatformMuxes media content from one unified source to multiple outputs (Smooth Streaming, HDS, HLS and MPEG DASH)Unified Streaming
Flixwagon Platform Video ServerFlixwagon
StreamCoder Live EncoderRealtime video encoder (inputs : DVB/IP stream or video signal). Supports multi-bitrates and multi-languagesEktacom
VODOBOX Live ServerSupports HTTP Live Streaming with multi-bitrates (compliant with iOS, Android and HLS Flash Player)1.0VodoboxLive transcoding from DVBT tuner, IP streams, Microsoft DirectShow video sources (video capture cards, live production software, camera) to mobile devices
Apache HTTP ServerApache Software Foundation
MistserverRTMP to HLS1.1-preDDVTECH
Unreal Media Server9.5Unreal Streaming TechnologiesLatency of live streams can be as low as 2.5 seconds over the Internet
InstaTV Server1.0InstaTVLive transcoding and streaming of broadcasting TV using any Windows compatible digital tuner to mobile devices
lighttpd1.4.x
Nimble StreamerRTMP / UDP MPEG-TS to ABR HLS. MP4 / MP3 to VOD HLS1.0.0-xWMSPanel
Nginx-rtmp-moduleFree module for nginx server with support of HLS live streaming. Compliant with iOS and Android.0.9.xRoman Arutyunyan
Nginx PlusVOD HLS as originNGINX, Inc.
Flussonic Media ServerMulti-platform support for HTTP, RTSP, RTMP, Time Shifting, DVR Functions with Unlimited Rewind Capabilities HLS streaming specific to iOS platform support.3.0+Flussonic, LLC.Supporting a magnitude of features with full HTTP support.
VBrick Distributed Media Engine ("DME")2.0VBrick Systems, Inc.Live and stored HLS. Live can be transmuxed from several input mux including RTP, RTMP, and MPEG-TS using H.264 encoding

Encoders[edit]

ProductTechnologyAs Of VersionVendorNotes
VODOBOX HLS EncoderConvert video files to pre-encoded HLS streams ready to be hosted by Apache/IIS Web servers1.0VodoboxTranscode classic video files (avi, mp4, m2ts, ...) into HLS streams with multi-bitrates for VOD or replay usage.

See also[edit]

References[edit]

  1. ^ Pantos, R.P. (April 2014). "HTTP Live Streaming draft-pantos-http-live-streaming-13". Network Working Group: 1. 
  2. ^ Jordan, Larry (10 June 2013). "The Basics of HTTP Live Streaming". Larry's Blog. Larry Jordan & Associates. Retrieved 18 June 2013. 
  3. ^ Pantos, R. (30 September 2011). "HTTP Live Streaming". Internet Engineering Task Force. Retrieved 18 June 2013. 
  4. ^ "Application keys". Digital rights management (DRM). upLynk Support. Retrieved 18 June 2013. 
  5. ^ "Internet Drafts are not Open Standards". Anne van Kesteren. Retrieved 30 July 2011. 
  6. ^ "Limelight Orchestrate Video Support". Limelight Networks. Retrieved 14 November 2013. 
  7. ^ "Streaming HowTo: Streaming for the iPhone". VideoLAN Wiki. Retrieved 21 May 2011. 
  8. ^ "Android 3.0 Platform Highlights". 
  9. ^ http://www.flashls.org
  10. ^ "webOS 3.0.5 Updates". 
  11. ^ a b "First Look: Microsoft IIS Media Services 4". StreamingMedia.com. Retrieved 30 July 2011. 
  12. ^ "Wowza Unifies Media Streaming, Sets Performance Record, Slashes Costs with Production Launch of Wowza Media Server 2 for Flash, iPhone and Beyond". Wowza Media Systems. Retrieved 25 August 2012. 
  13. ^ a b "HLS Streaming Player and SDK for Flash". Yospace. Retrieved 28 June 2012. 
  14. ^ Blogcritics, November 26, 2010. iPad App Review: SlingPlayer (Retrieved April 14, 2014)
  15. ^ Supported Media Formats | Android Developers
  16. ^ Hints of 'iTunes Live Stream' Service Found in iTunes 10.1 - Mac Rumors
  17. ^ https://trac.videolan.org/vlc/ticket/2943 VLC Ticket #2943 (Support for HTTP Live Streaming as a client)
  18. ^ http://www.3ivx.com/technology/windows/metro/http_live_streaming.html
  19. ^ http://www.3ivx.com/xbox/
  20. ^ XiiaLive v3.0.0 - release notes / General forum / XiiaLive™ - Internet Radio
  21. ^ TuneIn Radio Pro Version History - iOS Store Store Top Apps | App Annie
  22. ^ Flash HLS : Flowplayer
  23. ^ JW Player | About HLS Streaming
  24. ^ "HLS Streaming Player and SDK for Flash". Onlinelib. Retrieved 13 September 2012. 

External links[edit]