Progressive download

Last updated

A progressive download is the transfer of digital media files from a server to a client, typically using the HTTP protocol when initiated from a computer. The consumer may begin playback of the media before the download is complete. The key difference between streaming media and progressive download is in how the digital media data is received and stored by the end user device that is accessing the digital media.

Contents

A media player that is capable of progressive download playback relies on meta data located in the header of the file to be intact and a local buffer of the digital media file as it is downloaded from a web server. At the point in which a specified amount of data becomes available to the local playback device, the media will begin to play. This specified amount of buffer is embedded into the file by the producer of the content in the encoder settings and is reinforced by additional buffer settings imposed by the media player.

History

Initially the digital media file type known as JPEG was the first visual media to render a progressive visual display as the digital media was downloaded and actually referred to as a progressive download. The distinction between the technical behavior of progressive download as opposed to the common or commercial use of the term progressive download to describe that behavior was not documented and there is a good deal of question regarding the origin of the term versus the origin of the technical implementation. Apple in reference to their QuickTime media player employed the term Fast Start [1] in 1997, to describe what was commercially referred to as progressive download playback of encoded digital media content.

HTTP progressive download versus streaming media

The end user experience is similar to streaming media, however the file is downloaded to a physical drive on the end user's device; the file is typically stored in the temporary directory of the associated web browser if the medium was embedded into a web page or is diverted to a storage directory that is set in the preferences of the media player used for playback. The file will stutter or stop playback if the rate of playback exceeds the rate at which the file is downloaded. The file will begin to play again after further download.

This fast start playback is the result of moving the meta data from the end of the digital media file to the front, this move of the meta data gave the media player all the information it required to begin playback as the file was still being downloaded. Prior to that change, the meta data summary was located at the end of a media file and the entire file would need to be downloaded in order for the meta data to be read and the player begin playback. [2]

HTTP Pseudo-streaming (or progressive download), similar to streaming media or HTTP Live Streaming, also supports adaptive bitrate streaming. The disadvantage of HTTP Pseudo-streaming over streaming media is reduced security, since HTTP is easier to sniff compared to RTMP, along with long loading times when seeking larger videos. [3]

Optimization for HTTP Pseudo-streaming

The MP4 files consist of chunks of data, called atoms. These atoms stores information like subtitles, etc. The special atom, called moov atom is responsible for storing information regarding how to play the video like dimensions, frames per second and such which is important to begin playing a video on HTML5 Video player. [4] But atoms can appear in any order, so web servers like Nginx spends some CPU, memory and disk I/O to find the moov atom so that HTML5 Video based clients can start playing the video. To optimize for HTTP Pseudo-streaming, it's important to move the moov atom to the beginning, so that web servers like Nginx optimize for faster pseudo-streaming resulting in playing of playbacks without having to wait for the entire file to be arrived or scanned. [5]

ffmpeg -i sample_input.mp4 -movflags faststart -acodec copy -vcodec copy sample_output.mp4

By doing this optimization, we effectively prevent web servers, like nginx, from spending relative amount of computation in finding the moov atom hence increasing the playback performance on HTML5 Video based client. [5] [4]

Seeking

Initially, the file is played from the beginning. A user may wish to point to a part of the file which haven't been downloaded yet. This capability is called seeking [7] and it makes possible to download and start playing any part of the media file. That is often referred to as pseudo-streaming.

For Flash video seeking requires a list of seek points in the media file metadata. These points are offsets in the video (both in seconds and bytes) at which a new key frame starts. A web server or a media server which handles the download, must support seek points in query string of requests for downloading data.

For other types of media files such as MP4 or MKV, web servers must be capable of handling a special offset parameter. The offset parameter name differs for various servers so it must be specified in player settings.

Some servers support seeking via additional modules only, they are specified below. Seeking parameter names are written in italic.

ServerFlash seekingMP4 seeking
Apache HTTP Server mod_h264 start
mod_flvx start
mod_h264 starttime
lighttpd start mod_h264 starttime
Nginx http_flv_module start http_mp4_module start
Nimble Streamer startstart

See also

Related Research Articles

QuickTime Extensible multimedia framework by Apple Inc.

QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. Created in 1991, the latest Mac version, QuickTime X, is available for Mac OS X Snow Leopard up to macOS Mojave. Apple ceased support for the Windows version of QuickTime in 2016, and ceased support for QuickTime 7 on macOS in 2018.

The Real Time Streaming Protocol (RTSP) is an application-level network protocol designed for multiplexing and packetizing multimedia transport streams over a suitable transport protocol. RTSP is used in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between endpoints. Clients of media servers issue commands such as play, record and pause, to facilitate real-time control of the media streaming from the server to a client or from a client to the server.

Streaming media Multimedia delivery method

Streaming media is multimedia that is delivered and consumed in a continuous manner from a source, with little or no intermediate storage in network elements. Streaming refers to the delivery method of content, rather than the content itself.

Windows Media Player Media player and media library application by Microsoft

Windows Media Player (WMP) is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices. Editions of Windows Media Player were also released for classic Mac OS, Mac OS X and Solaris but development of these has since been discontinued.

RealAudio, or also spelled as Real Audio is a proprietary audio format developed by RealNetworks and first released in April 1995. It uses a variety of audio codecs, ranging from low-bitrate formats that can be used over dialup modems, to high-fidelity formats for music. It can also be used as a streaming audio format, that is played at the same time as it is downloaded. In the past, many internet radio stations used RealAudio to stream their programming over the internet in real time. In recent years, however, the format has become less common and has given way to more popular audio formats. RealAudio was heavily used by the BBC websites until 2009, though it was discontinued due to its declining use. BBC World Service, the last of the BBC websites to use RealAudio, discontinued its use in March 2011.

Advanced Systems Format File format

Advanced Systems Format is Microsoft's proprietary digital audio/digital video container format, especially meant for streaming media. ASF is part of the Media Foundation framework.

VLC media player Free and open-source media player and streaming media server

VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.

A container format or metafile is a file format that allows multiple data streams to be embedded into a single file, usually along with metadata for identifying and further detailing those streams. Notable examples of container formats include archive files and formats used for multimedia playback. Among the earliest cross-platform container formats were Distinguished Encoding Rules and the 1985 Interchange File Format.

Alluvium is open source peercasting software developed by the Foundation for Decentralization Research, first released in 2003. It comprises three components, Core, Media Player, and Server. Alluvium allows video and audio programming to be broadcast over the Internet using swarming technology. It is powered by Onion Networks' Swarmcast, and is notable for its incorporation of server-side time-based playlists, and client software which examines those playlists and begins streaming content from the server(and available peers) per that schedule, simplifying the creation of continuous-broadcast video and audio.

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

MPEG-4 Part 14 MP4; digital format for storing video and audio

MPEG-4 Part 14 or MP4 is a digital multimedia container format most commonly used to store video and audio, but it can also be used to store other data such as subtitles and still images. Like most modern container formats, it allows streaming over the Internet. The only filename extension for MPEG-4 Part 14 files as defined by the specification is .mp4. MPEG-4 Part 14 is a standard specified as a part of MPEG-4.

Byte serving

Byte serving is the process introduced in HTTP protocol 1.1 of sending only a portion of a message from a server to a client. Byte serving begins when an HTTP server advertises its willingness to serve partial requests using the Accept-Ranges response header. A client then requests a specific part of a file from the server using the Range request header. If the range is valid, the server sends it to the client with a 206 Partial Content status code and a Content-Range header listing the range sent. If the range is invalid, the server responds with a 416 Requested Range Not Satisfiable status code.

HTTP Live Streaming is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2019, an annual video industry survey has consistently found it to be the most popular streaming format.

RTMPDump is a free software project dedicated to develop a toolkit for RTMP streams. The package includes three programs, rtmpdump, rtmpsrv and rtmpsuck.

The Helix Universal Media Server was a product developed by RealNetworks and originates from the first streaming media server originally developed by Progressive Networks in 1994. It supported a variety of streaming media delivery transports including MPEG-DASH RTMP (flash), RTSP (standard), HTTP Live Streaming (HLS), Microsoft Silverlight and HTTP Progressive Download enabling mobile phone OS and PC OS media client delivery.

Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Live Streaming (HLS) solution, MPEG-DASH works by breaking the content into a sequence of small segments, which are served over HTTP. Each segment contains a short interval of playback time of content that is potentially many hours in duration, such as a movie or the live broadcast of a sport event. The content is made available at a variety of different bit rates, i.e., alternative segments encoded at different bit rates covering aligned short intervals of playback time. While the content is being played back by an MPEG-DASH client, the client uses a bit rate adaptation (ABR) algorithm to automatically select the segment with the highest bit rate possible that can be downloaded in time for playback without causing stalls or re-buffering events in the playback. The current MPEG-DASH reference client dash.js offers both buffer-based (BOLA) and hybrid (DYNAMIC) bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with few stalls or re-buffering events.

HTML5 Audio is a subject of the HTML5 specification, incorporating audio input, playback, and synthesis, as well as speech to text, in the browser.

Citrio

Citrio is an adware web browser developed by Catalina Group Ltd. and distributed by Epom Ad Server. Citrio is available for Windows and Mac OS X. Citrio has a download manager that includes Bittorrent support, a video downloader, a media player and a proxy switcher. Citrio is based on the open source Chromium web browser project, which makes it compatible with all extensions, apps and themes from Chrome Web Store.

Nimble Streamer is a freeware media server developed by WMSPanel company currently known as Softvelum, LLC. The server is used for streaming of live and on-demand video and audio to desktop computers, mobile devices, internet-connected TV sets, IPTV set-top boxes and other network-connected devices. Its first stable version 1.0.0-1 was released on October, 21st, 2013, with a number of preliminary versions done before that. The release cycle is intensive and introduces a new version every week or less. Nimble Streamer was the finalist in Streaming Media European Readers' Choice Awards for 2016 as the Best Streaming Innovation and for 2021 as Hardware/software Server.

References

  1. QuickTime Streaming Server 4.1 (PDF), archived from the original (PDF) on 2011-07-06, retrieved 2010-09-21, Two methods are commonly used to deliver media over the web for real-time viewing: progressive download (Fast Start) and real-time streaming.
  2. Understanding the MPEG-4 movie atom , retrieved 2015-07-17
  3. Peter Luk. "Video Delivery: HTTP Pseudo-Streaming".
  4. 1 2 Billy Hoffman (2016). "Optimizing MP4 Video for faster streaming".
  5. 1 2 "Module ngx_http_mp4_module".
  6. "FFmpeg Formats Documentation".
  7. Pseudo Streaming in Flash , retrieved 2015-07-17