Part 1 of this series discusses the optimal way of delivering progressive video streams by taking advantage of modern, efficient codecs. That approach is ideal for short-form (under 60 seconds) videos and for videos displayed at a low resolution, such as ads and previews. But what if you're delivering longer videos with a higher resolution? No matter that you could offer them as a single file through progressive streaming, your viewers might still run into issues, such as buffering, slow start of playbacks, or even playback failures.

Video is an increasingly important component for websites - whether it’s to inform visitors, enhance user experience or support sales and marketing efforts. But delivering high-quality video at large scale can be quite a challenge. You need to consider encoding, format, bandwidth usage, delivery and the devices on which visitors may be watching the video, to name just a few concerns.

In the early days of the web, the only thing that mattered was getting that content out to users no matter how long it took or what resources it consumed. As a matter of fact, users seemed to understand and were ready to wait till whenever their browser's loading spinner stops and the contents displayed.

Update:
In this post, we clarify that not all browsers natively support HLS or MPEG-DASH, and thus in order to deliver adaptive streaming video to all devices, you should deliver it using a video player that supports your chosen format. In December of 2017, Cloudinary released its own Video Player, which enables you to easily embed a player in your web page that can stream any HLS or MPEG-DASH video. For details, see the Video Player announcement blog post and the Video Player documentation.