Using HLS and MPEG DASH for Flexible Streaming Videos

on 18 May 2017 Apple HTTP Live Streaming, CLOUD, HLS, HTML5, JMETER, MPEG-DASH, VIDEO and Tags: , , , , with 0 comments
HLS Streaming

Using HLS and MPEG DASH for Flexible Streaming Videos

Guest post by Gilad Maayan (Cloudinary)

Everyday users watch videos from their phones, tablets, and computers, taking a few moments of their day to learn, to shop, and to be entertained. How many times has that buffering icon caused a user to give up? Time is valuable and people are busy.

Offering video on a site is a great way to increase traffic. However, if the videos take too long to buffer, users will go to another site. Luckily, there is a simple way to improve video performance, adaptive bitrate streaming. This video delivery technique adjusts the quality of a video stream for peak performance no matter where or what device is being used. Adaptive streaming detects the bandwidth and CPU capacity of the device and adjusts the streaming rate and video quality appropriately.

HLS (HTTP Live Streaming) and MPEG-DASH (Dynamic Adaptive Streaming over HTTP) are two popular adaptive bitrate streaming formats. These formats require outputting each video multiple times at different quality settings and a set of additional control files.

HLS Video Streaming

The HLS protocol, created by Apple, plays within the Safari browser on any Apple OS and within iOS. Any apps in the Apple AppStore are required to deliver streaming videos in this protocol. MPEG-DASH is an internationally supported protocol intended to standardize video streaming. Not natively supported on iOS, devices require a JavaScript library or an MPEG-DASH supported player for streaming video.

For example, a user begins playing a video while connected to Wi-Fi. To play immediately, the video starts with a smaller 640×360 representation while buffering. After a few seconds, the user expands to full screen and the player delivers the 1280×720 representation for higher resolution. The user can also manually switch to the 1920×1080 representation through the resolution selection box in the player. Then the user walks from his office to his car. He switches the player resolution to automatic. The client recognizes a drop in network performance and the player reverts to 640×360 play.

The R&D lab CableLabs assisted in the development of the MPEG DASH specification and supports the open process involved in creating this ISO standard. Its platform agnostic specification potentially increases the audience. However, the lack of native Apple and HTML5 support can cause issues for users. Apple continues to enhance the HLS standard, which sits solidly on HTTP, thus traversing firewalls and proxy servers are simpler. HLS also has a standard encryption mechanism working with HTTP cookies for simple digital rights management. Currently, HLS is supported on the majority of devices and browsers through JavaScript or natively. HLS is often the default format, given that Apple devices are so popular.

With all these considerations, creating streaming video can be complex. Outsourcing the video format process into adaptive streaming can be costly. However, there are available solutions that can simplify the process of creating streaming video. For example, Cloudinary‘s adaptive streaming profile functionality automates the generation of all the required video and master files, while its predefined streaming profiles deliver fully packaged .m3u8 or .mpd files to use with HLS or MPEG-DASH players.

About the author:

Gilad works as Developer Relations at Cloudinary.

Cloudinary offers a SAAS for Image And Video Management In The Cloud. It is the image back-end for web and mobile developers. An end-to-end solution for all image-related needs.

About UbikLoadPack :

Ubik Load Pack Streaming Solution features