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.
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.
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.
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.
- Ubik Load Pack is a JMeter based solution that allows you to load test Video Streaming servers delivering videos through HLS, MPEG-DASH or Smooth Streaming.
- Follow us on Twitter and StackOverflow.
- Follow Apache JMeter on Twitter
- Handy checklist for ensuring User Experience when delivering Video Streams at Large Scale 4 February 2019
- Reporting feature in JMeter 17 January 2019
- Shift left your performance tests with JMeter and Maven 15 January 2019