Knowledge Base

MPEG-DASH (Dynamic Adaptive Streaming over HTTP) is one of the adaptive streaming standards introduced for the delivery of video streams to users on different platforms through a common and unified standard.

A Brief History of Streaming

In the past, in order to watch a video online, it was necessary to download a video file completely, causing too much delay in viewing the video content. As a result, the idea of streaming was developed.
In streaming, dividing the video files into smaller segments enables users to start playing the video without the need for downloading the entire file. The remaining segments of the file are then gradually downloaded when the file is being played. Therefore, the delay at the beginning of streaming is minimized.
Between 1990’s - 2000 most of the Internet streams were delivered to end users over the user datagram protocol (UDP). This resulted in some problems such as the loss of packets during transfer and the blockage of UDP packets by firewalls.
These disadvantages led to the advent of the Adaptive Bitrate (ABR) streaming technologies in 2002. These technologies utilize HTTP and TCP (transmission control protocol) to deliver the video content to the end users, solving two major problems of:

  • The need for a separate stream server
  • Packet loss and packet blockage by firewalls

HDS, HLS, and Microsoft Smooth Streaming are three ABR streaming technologies, each introduced by different companies. These technologies employ specific methods and formats for streaming. This means that a device should support the relevant protocol to receive streams through each of these methods. For instance, some platforms only support HDS and some others only support HLS. This led to the idea of developing a standard method that supports all of platforms regardless of their type.

In 2009, MPEG declared an announcement for the introduction of a standard project for HTTP streaming for the first time. Two years later, MPEG developed the project by cooperating with certain standard groups such as the Third Generation Partnership Project (3GPP) and various companies such as Microsoft and Netflix. Finally, their extensive collaboration resulted in the introduction of MPEG-DASH in 2012.

MPEG-DASH: Structure and Performance

Like other adaptive streaming techniques, different versions of a video file are generated with different resolutions in MPEG-DASH. Then, each of these different versions is divided into smaller parts called segments. The details of these different versions are stored in a file called media presentation description (MPD). The following figure shows different components of the MPEG-DASH technique:

Media Presentationon HTTP ServerDASH ClientSegmentMedia Presentation DescriptionResources Located by HTTP-URLsHTTP/1.1DASH Control EngineMedia EnginesHTTP Access ClientOn-time HTTPRequests to Segments

When a video stream is being played, the MPD file is downloaded with the user’s player. The player analyzes the file content to download an appropriate version, which suits the Internet connection, and then, starts playing it. If any changes occur in the bandwidth when the file is being played, the player switches to the version matching the new status and avoids stopping the video.

The MPD file has a hierarchical structure. In other words, an MPD file consists of one or more periods, each of which includes information related to different video contents such as different codecs, audio files of different languages (if any), and subtitles. These different components are placed in AdaptationSets. Each period can consist of one or more AdaptationSets used for grouping different and relevant components. For instance, the components of the same codec, language, bitrate, etc. are located in one AdaptationSet. Each AdaptationSet includes representations containing different bitrates for the relevant content. The presence of only one representation is sufficient for playing the video content, however, the presence of different representations helps the player to continue streaming by switching to other versions in case any changes such as decline in the bandwidth occur. At the same time, each representation is divided into a few segments of the same length (in terms of duration). The following diagram shows the graphic schema of this hierarchical structure.

PeriodPeriodMPDAdaptation Setid =as-1Adaptation Setid=as-2Adaptation Setid=as-nSubsetid=ss-1Subsetid=ss-2Representation100 KbitPeriodRepresentation100 KbitRepresentation200 KbitAdaptation SetContainsid=as-1Containsid=as-4SubsetInit

ArvanCloud and Full Compatibility with MPEG-DASH

Being fully compatible with MPEG-DASH, ArvanCloud eliminates any concerns for incompatibility with video streams on different platforms because DASH is an independent codec of all the technologies and standards combined. Thus, MPEG-DASH streams are supported on all devices in an integrated way to reduce technical complexities and expenses.