0 Shares 256 Views

HTTP Live Streaming

Introduction To HTTP Live Streaming

HTTP Live Streaming img1

What Is HTTP Live Streaming (HLS)?

HLS (HTTP live streaming) is one of the most widely used video streaming protocols. Although live streaming is included in its name, it can be used for both video-on-demand content (VOD) and live broadcast streams.

HTTP Live Streaming (HLS) breaks down video files into smaller downloadable HTTP files and delivers them using the HTTP protocol. HLS has numerous benefits. One of them, and perhaps the most important, is that all Internet-connected devices support HTTP, making it simpler to implement than streaming protocols that require the use of specialized servers.

HLS, a media streaming standard developed by Apple and released in 2009, is widely used today.

Key Benefits of HTTP Live Streaming

The main reasons for its widespread use can be summarized with the following items.

  • HLS is not a streaming protocol that requires the use of dedicated HTTP servers, as all devices that can connect to the Internet support the HTTP protocol. Compared to other streaming protocols, it can be easily implemented on servers.
  • Unlike other streaming formats, HLS is compatible with a wide range of devices and firewalls.
  • HLS provides users with an uninterrupted streaming experience by adapting video quality depending on network conditions. The technology behind this feature is the adaptation of the bit rate according to the network conditions called “Adaptive bitrate video delivery”. In this way, users can watch broadcasts without interruption even if connection speeds temporarily decrease.
  • This protocol includes a number of other key benefits, including embedded closed captions, synchronized playback of multiple streams, good advertising standards support, DRM support, and more.
  • Because of the fact that the transmission takes place over HTTP, it can be easily transmitted over firewalls.
  • HLS also supports user authentication and media passwords.

HLS working mechanism

Let’s explain the working mechanism of the HLS protocol through an example scenario.

An online television broadcast is intended to be delivered to end-users in 1080p and 480p qualities using the HLS protocol. Let’s explain the process of producing the publication and delivering it to the end-user, step by step, with the following scenario:

1-) A broadcast is produced on the server device where the broadcast to be delivered to the end-user will be produced or the existing broadcast will be distributed.

2-) The produced broadcast is encoded by the server. The HLS protocol uses the H.264 or H.265 extension format.

During the encoding process, the broadcast is divided into small parts and each part is encoded according to predetermined parameters such as the specified quality and duration.

In our example, the bitrate representing 1080p and 720p qualities to be transferred to the user is encoded according to the width and height parameters (scale) and the sound quality of the broadcasts.

HLS image2

During this process, an index file is prepared for the user, which holds these qualities and the list of encoded broadcast tracks.

An example of the master playlist where all the qualities are kept is as follows.

  1. #EXTM3U
  2. #EXT-X-VERSION:3
  3. #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_low",NAME="audio_0",DEFAULT=YES,LANGUAGE="TR",URI="stream_0/chunklist.m3u8"
  4. #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_high",NAME="audio_1",DEFAULT=YES,LANGUAGE="TR-high",URI="stream_1/chunklist.m3u8"
  5. #EXT-X-STREAM-INF:BANDWIDTH=70400,CODECS="mp4a.40.2",AUDIO="group_audio_low"
  6. example_stream_0/chunklist.m3u8
  7. #EXT-X-STREAM-INF:BANDWIDTH=140800,CODECS="mp4a.40.2",AUDIO="group_audio_high"
  8. example_stream_1/chunklist.m3u8
  9. #EXT-X-STREAM-INF:BANDWIDTH=2270400,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="group_audio_low"
  10. example_stream_2/chunklist.m3u8
  11. #EXT-X-STREAM-INF:BANDWIDTH=4540800,RESOLUTION=1920x1080,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="group_audio_high"
  12. example_stream_3/chunklist.m3u8

An example index file of one of the qualities is as follows. As it should be noted, this file contains the version in which the segments are encoded, the duration of each particle, and their order.

  1. #EXTM3U
  2. #EXT-X-VERSION:3
  3. #EXT-X-TARGETDURATION:5
  4. #EXTINF:5.000000,
  5. media002.ts
  6. #EXTINF:5.000000,
  7. media003.ts
  8. #EXTINF:5.000000,
  9. media004.ts
  10. #EXTINF:5.000000,
  11. media005.ts
  12. #EXTINF:5.000000,
  13. media006.ts
  14. #EXTINF:5.000000,
  15. media007.ts

In fact, when the user changes the quality from 720p to 1080p while watching the broadcast, he requests the media parts of 1080p quality in the background from the server.

HTTP Live Streaming img3

HTTP Live Streaming img4

In summary, at the end of this step, each part of the segmented broadcast is encoded in accordance with the format used by the HLS protocol. An index file containing the names of the encoded parts is created.

3-) The media files, which are encoded and ready to be delivered to the end-user via HTTP, are kept at the origin where the end-users can access the files. The most effective way is to utilize the CDN service.

This is because the CDN service brings these files closer to users so that users who are dispersed in different geographical locations can watch the broadcast and obtain media files.

For example, when a user in Dubai wants to watch a broadcast from Turkey, he/she will lose time and effort by moving through the network indirectly.

For this reason, it is a very effective method to choose the CDN service, which brings the broadcast streams closer to the users and delivers them to the end-users quite quickly by caching.

Browsers and Devices that Support HLS

The HLS streaming protocol is also widely supported across multiple devices and browsers.

In the beginning, it was limited to iOS devices like iPhones, iPads, and the iPod Touch, but HLS is now supported by the following devices and browsers:

  • All Google Chrome browsers
  • Safari
  • Microsoft Edge
  • iOS devices
  • Android devices
  • Linux devices
  • Microsoft devices
  • macOS platforms

It means that HLS is a nearly universal protocol.

 

Receiving the (HLS PUSH) broadcast sent with the HLS protocol:

Broadcasts sent with the HLS protocol can be pulled from their source and served to end-users.

The main point here is that the HLS broadcast sent over HTTP (PUSH) is received and served again. In this way, end users in different geographical locations can watch broadcasts from their closest points.

In the HLS protocol, it was explained above that the broadcasts are encoded after being segmented and sent over HTTP.

Webdav protocol is one of the most effective methods that can be used to take the broadcasts from the source (PULL) and serve them to the user.

Thanks to the Webdav protocol developed by the IETF (Internet Engineering Task Force), the HLS broadcast from the broadcaster can be given to users over HTTP without using additional protocols.

In this way, broadcasters save cost + resources (server, storage, infrastructure) and provide their users with uninterrupted, fast, and high-definition streams.

Conclusion 

In live streaming, the server receives a raw and uncompressed video and compresses it using an encoder and the H.264 codec, converting it into the MPEG-2 Transport Streams format.

HLS is the most widely used streaming protocol for playback today. It is high-quality and robust. It is no longer an option for all streamers to be familiar with this protocol. Even if they don’t understand all of the technical details, they should be familiar with it.

Get in touch with us to learn more about HTTP Live Streaming Solutions in CDN and how Medianova can help you deliver the best online experiences.

You may be interested

The Ultimate CDN (Content Delivery Network) Guide
CDN
5437 views
CDN
5437 views

The Ultimate CDN (Content Delivery Network) Guide

Nadia Benslimane - August 3, 2020

The Ultimate CDN Guide- Everything About Content Delivery Network You probably know what CDN (Content Delivery Network) stands for. You may also be aware of its full definition,…

The Essential CDN Glossary
CDN
9767 views
CDN
9767 views

The Essential CDN Glossary

Nadia Benslimane - November 21, 2019

Why Have We Decided To Create a CDN Glossary? Whether you are new to the world of CDN, or have been involved in it for years, there…

All You Need to Know About Round-Trip Time
CDN
234 views
CDN
234 views

All You Need to Know About Round-Trip Time

Gizay Yalçın - October 20, 2021

What exactly is RTT?  Round-trip time (RTT) is a networking metric that measures in milliseconds the time it takes for a data packet to be sent and…

SD-WAN in CDNs
CDN
261 views
CDN
261 views

SD-WAN in CDNs

Gizay Yalçın - October 20, 2021

Why Does Your Business Need SD-WAN in CDNs? What is SD-WAN? As the name implies, a software-defined wide area network (SD-WAN) is a virtual wide area network…

Health Check Backup Origin
CDN
234 views
CDN
234 views

Health Check Backup Origin

Nilgün Ünsal - October 17, 2021

ORIGIN SERVER AND LATENCY ON ORIGIN SERVER In a nutshell, the term "origin server" is used on behalf of the original content owner that responds to incoming…

Most from this category

The Ultimate CDN (Content Delivery Network) Guide
CDN
5437 views
5437 views

The Ultimate CDN (Content Delivery Network) Guide

Nadia Benslimane - August 3, 2020
The Essential CDN Glossary
CDN
9767 views
9767 views

The Essential CDN Glossary

Nadia Benslimane - November 21, 2019
DDoS Attack Trends in 2021
CDN
448 views
448 views

DDoS Attack Trends in 2021

Elif Ak - October 17, 2021
Web Application Firewall
Uncategorized
28 views
28 views

Web Application Firewall

Aykut Teker - September 30, 2021
Web Application Firewall
CDN
600 views
600 views

Web Application Firewall

Aykut Teker - September 29, 2021
SERVICE MESH vs. API GATEWAY
Technology
2138 views
2138 views

SERVICE MESH vs. API GATEWAY

medianova - August 24, 2021