#6 Concept Series : What is the difference between Progressive Download, RTMP Streaming and Adaptive Streaming
Online video delivery has a rich and eventful history and is fast becoming the medium of convenience for masses to get entertained. Today, online video delivery is far more predictable than ever in its history of over two decades. While concerns and areas of improvement are aplenty, the days of spinning wheels waiting for video to start playing are largely gone. This journey was neither short nor easy and continues to witness technology and infrastructure upgrades.
Online Video exists in form of live streaming and Video on Demand (VOD) and has multiple consumption points. Some of these popular interfaces include Desktop (PC), Smart TV, Mobile web, Mobile Applications, ipad, gaming consoles and IP connected media players connecting to TV. OTT (Over the Top) video is growing rapidly and OTT pay TV revenue is soon expected to surpass USD 10 Billion mark. Although OTT is still not ready for prime time it is not far when it will pose tough challenges to traditional media and have a noticeable share in overall media revenues. HBO has gone direct and DISH launched SLING TV, an OTT based service for $20 a month. It is only a matter of time when major broadcast networks will launch lite versions of their offerings to win back millennials, cord-cutters and non-cable consumers.
Online Video Delivery Background
Rewind few years and the only mode for content playback was to download the complete file which meant waiting for several minutes based on the connection speed before viewing could be possible. But in last 5 few years, online video has taken a major leap with service providers having a critical task to ensure seamless viewing experience for its subscribers. This mission gets more complex with network variations, shared nature of internet pipe, variations in device capability and more. Currently, three key technologies namely progressive download, RTMP/RTSP streaming and adaptive streaming fill all segments of online video delivery. The three video delivery models are technically different but are equally popular based on the nature of end use. Let us understand the difference between them.
An evolution to simple download was server based delivery over HTTP where, as the file is sufficiently downloaded (or buffered) on client machine, it can be played back. This basic version is called Progressive Download. Download of content happens sequentially (linear) and hence skipping ahead is not allowed. Progressive download was a significant improvement from earlier simple download where users could not play until entire file was not downloaded. Progressive download gave feeling of streaming and reduced waiting time for playback. It is easy to implement, requires no special web servers and content gets downloaded over standard HTTP over TCP. It works on universal browser port and media-players begin to video playback as soon as minimum file is downloaded. But progressive download presents concerns with security due to local caching of downloaded content, absence of monitoring and quality adjustment, restriction of linear playback (i.e. inability to jump ahead unless that portion is already download) and amount of wasted bandwidth for non-viewed content.
A content delivery mechanism using specialized streaming servers (e.g. Flash media Server, Wowza etc.) over RTMP (Real Time Messaging Protocol) or RTSP (Real time streaming protocol) streaming protocols. It offers content security by transferring chunks of media which get instantly consumed by the media player without any local caching. It supports streaming of live content (i.e. streaming content as it is getting generated or captured) and being stateful connected protocol, server can detect environment changes and make transfer speed decisions to improve user experience. It enables fast forward and rewind of video and saves bandwidth by downloading content just in time. The technology takes advantage of delivery over UDP protocol (with TCP rollover) and can achieve much faster transfer rates. It further uses trick modes by providing initial burst of content data to immediately start playback.
Most popular form of video streaming with benefits of quality switching and ease of delivery over HTTP. It aggregates segments of multi-bit encoded videos (typically 5 -10 sec each) which are indexed and referenced by the client using a manifest file. This manifest file contains index of chunks and their location. Client downloads the manifest file and periodically requests for highest quality of video which its environment can support using manifest lookup. The flexibility to switch video segments based on CPU availability, network conditions etc. ensures un-interrupted playback. The technology can successfully manage combination of device (low and high performance) and network (slow and fast) conditions to get best viewing experience. E.g. every few seconds client can evaluate its environment and if network connection is good, it requests/receives high bitrate stream and if connection speed drops, degrades to a lower bit-rate content while ensuring continuous playback. There are three established adaptive streaming technologies available today, these are Adobe’s HDS (HTTP Dynamic Streaming), Apple’s HLS (HTTP Live Streaming) and Microsoft’s Smooth Streaming and an emerging specification from MPEG standards body, MPEG DASH.
|Progressive Download||Streaming||Adaptive Streaming|
|Basic Definition||Clients request for file using HTTP GET and server sends entire file over HTTP as |
fast as possible in best case delivery. It works similar to how content (images, text) gets downloaded in a normal web browser using repeated HTTP GET.
|Clients and server maintain a persistent control and data connection. Server transfers chunks of data based on clients (player) request. Just in Time transfer of data||Content is encoded for multiple bit rates, an index file (manifest) created with chunk naming and location details. Client periodically reviews capability and requests best suited chunk from available list. An intelligent and flexible HTTP GET|
|Transport Protocol / |
|HTTP over TCP (port 80)|
No special consideration, works over HTTP using normal web server
|RTMP (1395) , RTSP over TCP/UDP, RTMPe (encrypted)|
Requires special provisioning for ports
|Can work over simple HTTP server over TCP|
|Monitoring & Control||No monitoring and control. One way connection|
Downloads content as quickly as possible without any monitoring or control
|Stateful data and control connection. Server based monitoring and control||Efficient monitoring and control. Client can switch low or high bit-rate stream based on client and network environment|
|Media Storage||File is download and stored in temporary directory.||Media player requests and receives file fragments, plays and discards them.||Media player requests and receives file fragments, plays and discards|
|Client/Server Requirement||No special client or Server requirements. Any web server with the correct MIME types/Content Handlers, etc. will deliver progressive media. E.g. Apache HTTP server||Streaming server like Adobe Flash Media Server, Wowza, Red5. Corresponding Client Player||No special Server Requirements e.g. Apache HTTP Server can delivery HLS. Client player which understands manifest /chunking model|
|Key Benefits||Easy to Setup|
No special licenses required.
Since local copy exists, enables watching over without downloading again
Ensures quality of video is maintained although there could be delays based on network bandwidth
An excellent technique for serving high quality video to user on slower network connections
|Can access any part of video without waiting for entire file download|
Support real-time broadcasting.
Added security as streaming video has no local caching
Download happens based on playback. Throttles download based on amount of video played. Prevents wastage of bandwidth.
|High flexibility to change video quality on the fly. Depending on network bandwidth and CPU conditions, client can request/receive a higher or lower quality stream.|
CDNs can cache content reducing network delays and higher performance.
An intelligent and adaptable streaming technology for all environments. Can successfully manage combination of device (low and high performance) and network (slow and fast) conditions
|Behavior in slow connection||Long wait before content made available. Can still enjoy high quality content||Wait before content becomes available. Publisher may provide options to choose content quality||A slow connection will force users to watch low quality content only|
|Pre-processing Requirements||No special processing||Server manages reading / sending chunks of data||Requires content to be encoded for multiple-bit-rates. Requires manifest lookup to determine which segment to request|
|Content Security||Content is stored locally in temporary folder. Less secure||No temporary storage and hence more secure. Although stream capture software can||DRM integration available for specific adaptive streaming technologies|
|Bandwidth Usage||Less efficient and wastage of bandwidth since entire file is download and all may not be played||More efficient as downloads only part of file actually being watched||Chucks can be cached at CDN and reused by multiple clients (improving performance and saving bandwidth|
|Disadvantages||Bandwidth is wasted on data which is downloaded but not watched. |
Stream quality depends on the video file that is being downloaded and can’t be changed mid-stream
Cannot jump ahead to in timeline and need to wait before download is complete. Fast Forward possible only for downloaded content
Significant waiting time to start the play
|Adds significant cost and complexity for setup and operations|
Requires special network configuration for port enabling (RTMP/RTSP) which are often blocked by corporate firewalls
RTSP is not widely supported by servers and CDNs.
|Lack of standardization. Not fully supported on many platforms. Apple HLS is the most popular format . Possibility of having DASH as the common standard in future. Requirements to have multiple encoded version requiring additional content processing and storage|
|Video Play at a timeline / location||Cannot jump ahead in timeline. Linear in nature||Possible to jump ahead in timeline||Possible to go to future point in timeline and request/receive segments for playback|
|Example of Online Video Platforms||YouTube, Vimeo||Hulu||BBC, Netflix, HBO GO|
|Additional Information||Psuedo future seek enabled using range requests (support in FLV). Generally deployed with of multiple versions of content (e.g mobile quality, low resolution SD, HD etc.) and to stream a version base on client request||UDP as preferred model for video delivery with TCP as fallback||Chunk boundaries (when aligned with ad breaks) represent opportunities for targeted advertising insertion for live streams.|
All video delivery technologies are widely used today and each has its own unique benefits and challenges. Decision to select a particular video delivery mode largely depends on the requirements, budget, nature of content, network conditions among others.