-->

Rabu, 05 September 2018

VIDEO Archives > Ubik Ingénierie
src: www.ubik-ingenierie.com

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime, Safari, OS X, and iOS software. Client implementations are also available in Microsoft Edge, Firefox and some versions of Google Chrome. Support is widespread in streaming media servers.

HLS resembles MPEG-DASH in that 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. A list of available streams, encoded at different bit rates, is sent to the client using an extended M3U playlist.

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. The standard also includes a standard encryption mechanism 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. August 2017, RFC8216 was published to describe version 7 of the protocol.


Video HTTP Live Streaming



Architecture

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
Codify and encapsulate the input video flow in a proper format for the delivery. Then it is prepared for distribution by segmenting it into different files. In the process of intake, the video is encoded and segmented to generate video fragments and index file.
  • Encoder: codify video files in H.264 format and audio in AAC, MP3, AC-3 or EC-3. This is encapsulated by MPEG-2 Transport Stream to carry it.
  • Segmenter: divides the MPEG-2 TS file into fragments of equal length, kept as .ts files. It also creates an index file that contains references of the fragmented files, saved as .m3u8.
Distributor
Formed by a standard web server, accepts requests from clients and delivers all the resources (.m3u8 playlist file and .ts segment files) needed for streaming.
Client
Request and download all the files and resources, assembling them so that they can be presented to the user as a continuous flow video. 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 continued display to the user.

Maps HTTP Live Streaming



Features

HTTP Live Streaming provides mechanisms for players to adapt to unreliable network conditions without causing user-visible playback stalling. For example, on an unreliable wireless network, HLS allows the player to use a lower quality video, thus reducing bandwidth usage. HLS videos can be made highly available by providing multiple servers for the same video, allowing the player to swap seamlessly if one of the servers fails.

Adaptability

To enable a player to adapt to the bandwidth of the network, the original video is encoded in several distinct quality levels. The server serves an index, called a "master playlist", of these encodings, called "variant streams". The player can then choose between the variant streams during playback, changing back and forth seamlessly as network conditions change.

Availability

The master playlist can list duplicate variant streams that have the same level of quality but are hosted by different servers. This enables the player to swap to a different server for a given bitrate if one of the servers fails. This grants a degree of high availability to serving streams.

This can be combined with adaptability by listing multiple variant streams for each distinct quality level.

Using fragmented MP4

On WWDC2016 Apple announced the inclusion of byte-range addressing for fragmented MP4 files, or fMP4, allowing content to be played in HLS without the need to multiplex it into MPEG-2 Transport Stream. The industry considered this as a step towards compatibility between HLS and MPEG-DASH.


Agama adds support for Apple HTTP Live Streaming - TvTechnology
src: www.tvtechnology.com


Server implementations

  • Adobe Media Server supports HLS for iOS devices (HLS) and Protected HTTP Live Streaming (PHLS).
  • Akamai supports HLS for live and on-demand streams.
  • Amazon CloudFront supports HLS for on-demand streams.
  • bitmovin provides the cloud transcoding service bitcodin.com, which supports HLS for on-demand and live streaming.
  • CDNetworks supports HLS for live and on-demand streams.
  • Cisco Systems: Supports full end to end delivery for Live/TSTV/VOD/HLS and Cloud DVR services.
  • Cloudflare supports HLS for live and on-demand streams.
  • EdgeCast Networks supports cross-device streaming using HLS.
  • Edgeware: Supports full end to end delivery for Live/TSTV/VOD/HLS.
  • Helix Universal Server from RealNetworks supports iPhone OS 3.0 and later for live and on-demand HTTP Live or On-Demand streaming of H.264 and AAC content to iPhone, iPad and iPod.
  • IIS Media Services from Microsoft supports live and on-demand Smooth Streaming and HTTP Live Streaming.
  • Level 3 supports HLS live and on-demand streams.
  • Limelight Networks supports HLS for some accounts.
  • Nginx with the nginx-rtmp-module supports HLS in live mode. Commercial version Nginx Plus also supports HLS/HDS VOD.
  • Nimble Streamer supports HLS in live and VOD mode.
  • Tata Communications CDN supports HLS for live and on-demand streams.
  • TVersity supports HLS in conjunction with on-the-fly transcoding for playback of any video content on iOS devices.
  • Unified Origin supports HLS in live and VOD mode.
  • Unreal Media Server supports low latency HLS as of version 9.5.
  • Ustream supports HLS delivery of live broadcasts. The ingested stream is re-transcoded if the original audio and video codec falls outside HLS requirements.
  • VLC Media Player supports HLS for serving live and on-demand streams as of version 2.0.
  • Wowza Streaming Engine from Wowza Media Systems supports HLS and encrypted HLS for live (with DVR) and on-demand streaming.

HTTP Live Streaming - KeyCDN Support
src: cdn.keycdn.com


Usage

  • Adobe Systems demonstrated an update to its Adobe Flash Media Server product supporting HTTP Live Streaming at the NAB Show in April 2011.
  • Apple Inc. used this on September 1, 2010 to stream its iPod Keynote event live over the internet, and on October 20, 2010 to stream its 'Back to the Mac' Keynote event live over the Internet.
  • Google added HTTP Live Streaming support in Android 3.0 (Honeycomb).
  • Helix Universal Server from RealNetworks supports iPhone OS 3.0 and later for live and on-demand HTTP Live or On-Demand streaming of H.264 and AAC content to iPhone, iPad and iPod initial release April 2010, latest release November 2012.
  • flashls is an open-source Adobe Flash/Adobe AIR plugin that provides HTTP Live Streaming support for Chromeless Flash/Air Player, Flowplayer, Video.js, mediaelement.js and Open Source Media Framework 2.0.
  • HP added HTTP Live Streaming support in webOS 3.0.5.
  • Microsoft added support for HTTP Live Streaming in EdgeHTML rendering engine in Windows 10 in 2015.
  • Microsoft added support for HTTP Live Streaming in IIS Media Services 4.0.
  • Yospace added HTTP Live Streaming support in Yospace HLS Player and SDK for flash version 1.0.
  • Sling Media added HTTP Live Streaming support to its Slingboxes and its SlingPlayer apps.
  • In 2014/15, the BBC introduced HLS-AAC streams for its live internet radio and on-demand audio services, and supports those streams with its iPlayer Radio clients.
  • hls.js implements HLS in MSE compatible browsers; ability to read ID3 from video pid.
  • hasplayer.js implements HLS in MSE compatible browsers.

Creating HTTP Live Streaming Video is just a click away... - YouTube
src: i.ytimg.com


Supported players and servers

HTTP Live Streaming is natively supported in the following operating systems: Windows 10 (Microsoft Edge), OS X 10.6+ (Safari and QuickTime), iOS 3.0+ (Safari), and Android 4.1+ (Google Chrome).

Clients

Servers

Live Encoders

VOD encoders


Apple HTTP Live Streaming Archives > Ubik Ingénierie
src: www.ubik-ingenierie.com


See also

  • Adaptive bitrate streaming
  • Dynamic Adaptive Streaming over HTTP

Which Video Streaming Protocol Should You Use?
src: d2x3rgjr0n9rv4.cloudfront.net


References

Source of article : Wikipedia