How would you like your video served?

While we all enjoy watching videos online, rarely do we think how the video gets streamed to the video player. Is the video sent as a single monolith file by the server that is progressively downloaded and played back by the player? Or is the video sent as small chunks of ‘mini video files’ that are played sequentially to make it look like one seamless playback?

The answer to both those questions is ‘yes’. Because, what I just described above are the two common techniques used in video delivery – namely ‘Progressive Download’ and ‘Adaptive Bitrate Streaming’.

Video delivery via Progressive Download vs. Adaptive Bitrate Streaming

While building an OTT application, it is useful to understand the technology behind both these streaming methodologies and their respective advantages and disadvantages. Choosing either or both could have a significant impact on the performance and usability of your OTT application.

Progressive Download

‘Progressive Download’ playback is similar to how you would play a video in your PC or laptop. Only, the video file is not accessed from the local hard-drive but served from a remote server or (most probably) from a Content Distribution Network (CDN).

The video player does not download the entire video file before playback. It downloads the video file in parts (it relies on the meta-data present in the file header to do this in the right sequence), buffers the downloaded data and plays the buffered data as and when it has enough data.

‘Progressive Download’ had become the mainstay of online video for the last 15 years or so. With the proliferation of high speed internet, better video encoding (I’m talking about H.264 here) and powerful CDNs, ‘Progressive Download’ gives the viewer a virtual buffer-less and seamless viewing experience.

‘Progressive Download’ has its drawbacks.

I. Progressive Download is not suited for ‘live’ streaming – even though this blog primarily deals with VOD; it is the lack of ‘live’ streaming capability that led to alternative technologies to crop up.

II. Progressive Download files can only be encoded in a single resolution – a major drawback. Video players and users cannot choose/switch between resolutions. This is an important prerequisite for the following reasons.

a. Let’s say the video was encoded in 720p resolution suited for PC viewing. But, the user is viewing it on his mobile phone. It’s a waste of bandwidth. What if the user is viewing it on a HD TV or worse a 4K TV, he or she is going to see a low quality video on their screen.

You could mitigate this issue with by creating multiple video files to suit various screens – mobile, PC, TV etc. but Adaptive Bitrate Streaming offers a simpler way of dealing with this issue.

b. What if there is a drop in the net-speed while viewing the video – there is latency in downloading and buffering the video and as a result video playback is staggered. Wouldn’t it be good if the player could switch resolutions to suit the net-speed, 360p perhaps?

Adaptive Bitrate Streaming

Initially, Adaptive Bitrate Streaming technologies where built on top of specialized Streaming Protocols such as RTP with RTSP. Adobe had developed their streaming technology using their proprietary protocol called RTMP, built mainly for their Flash player.

But the trend shifted towards technologies favouring the HTTP protocol over other specialized ones. Dynamic Adaptive Streaming over HTTP (MPEG-DASH), Apple HTTP Live Streaming (HLS), Adobe HTTP Dynamic Streaming (HDS) and Microsoft Smooth Streaming are popular HTTP based Adaptive Bitrate Streaming technologies.

I’ll be comparing MPEG DASH and HLS in a follow up blog. Both Adobe HDS and Microsoft Smooth Streaming are now widely supported.

Adaptive Bitrate Streaming, unlike Progressive Download does not store video as single media file. Adaptive Bitrate Streaming technology involves splitting a video into smaller chunks of (let’s say 10 seconds) videos. A manifest file would initially be sent to the video player instructing the sequence of playback.

Child M3U8 manifest file containing links to all the video chunks in the order of playback

Because the video is stored in chunks, multiple streams of these chunks can be encoded in various resolutions. Video players and users can chose/switch between these various resolutions on the fly while the video is playing. Modern video players are intelligent enough to choose/switch to the right resolution based on net-speed, screen size and other factors.

Master  M3U8 manifest file containing links to all the video chunks in the order of playback

Adaptive Bitrate Streaming has been widely adopted by various video platforms and OTT players over the last few years. HLS and MPEG DASH now constitute a large chunk of the videos streamed online.

Pros and Cons

So which one do you choose? Here are the pros and cons…

Features Progressive Download Adaptive Bitrate Streaming
Transcoding and Deployment Fairly simple to transcode. Usually you generate a single file in the optimal resolution/bitrate or two files in profiles to fit large screens and small mobile screen. A bit more complex as multi video stream must be transcoded into various resolutions/bitrates and manifest files must also be generated for playback.
Storage You are storing one or two files per video. You are storing multiple streams of video in various resolutions.
Storage You are storing one or two files per video. You are storing multiple streams of video in various resolutions.
Bandwidth Usage Less efficient and wastage of bandwidth since entire file is download and all of it may not be utilized. Chunks can be cached at CDN and reused by multiple clients (improving performance and saving bandwidth).
HD, 4K support Yes. But if the user’s net speed dips they will not be able to switch to a lower resolution file. Yes. With lower resolution fallback for low net speed viewing.
Playback Support Across all platforms and devices. ABS is now supported across most platforms and devices. Might have to have a backup MP4 file for platforms that don’t support.
Performance in low net speed With latency since the player won’t switch to a low-resolution file. The player will automatically switch to a low-resolution file in low net speeds.
Content Security It’s not really secure. Media files are stored locally in the temp folder and can be accessed with a little know-how. DRM and Encryption are available for HLS and MPEG DASH.

In Conclusion

Choose Progressive Download if you want a simple, cost effective solution. Adaptive Bitrate Streaming if you are looking for a feature rich solution that includes content security, HD and 4K video support and most importantly the multi resolution/bit-rate switching.

Irrespective of your preference, if you decide to use Ventuno OTT platform, we provide support for both Progressive Download and Adaptive Bitrate Streaming. For information, get in touch with us at info@ventunotech.com.

Arun Mukkath

Add comment

Arun Mukkath