ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dynamic Adaptive Streaming over HTTP
    Web/Protocol 2020. 2. 24. 00:00

    1. Overview

    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 HTTP-based file segments, each segment containing 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 sports event.

    2. Description

    2.1 Intuition

    The basic idea of MPEG-DASH is as follows – chop the media file into segments that can be encoded at different bitrates or spatial resolutions. The segments are provided on a Web server and can be downloaded through HTTP standard-compliant GET requests as shown in the figure below where the HTTP Server serves three different qualities, i.e., Low, Medium and Best, chopped into segments of equal length. The adaptation to the bitrate or resolution is done on the client-side for each segment, e.g., the client can switch to a higher bitrate – if bandwidth permits – on a per-segment basis. This has several advantages because the client knows its capabilities, received throughput and the context of the user best.

    In order to describe the temporal and structural relationships between segments, MPEG-DASH introduced the so-called Media Presentation Description (MPD). The MPD is an XML file that represents the different qualities of the media content and the individual segments of each quality with HTTP Uniform Resource Locators (URLs). This structure provides the binding of the segments to the bitrate (resolution, etc.) among others (e.g., start time, duration of segments). As a consequence, each client will first request the MPD that contains the temporal and structural information for the media content and based on that information it will request the individual segments that fit best for its requirements.

    2.2 Pros

    • Reduction of startup delays and buffering/stalls during the video
    • Continued adaptation to the bandwidth situation of the client
    • Client-based streaming logic enabling highest scalability and flexibility
    • Use of existing and cost-effective HTTP-based CDNs, proxies, caches
    • Efficient bypassing of NATs and Firewalls by the usage of HTTP
    • Common Encryption – signaling, delivery & utilization of multiple concurrent DRM schemes from the same file
    • Simple splicing and (targeted) ad insertion
    • Support for efficient trick mode

    2.3 Media Presentation Description (MPD)

    2.3.1 Periods 

    Each of those Periods contains media components such as video components e.g., different view angles or with different codecs, audio components for different languages or with different types of information (e.g., with the director’s comments, etc.), subtitle or caption components, etc. Those components have certain characteristics like the bitrate, frame rate, audio channels, etc. which do not change during one Period.

    2.3.2 AdaptationSets

    Typically media components such as video, audio or subtitles/captions, etc. are arranged in AdaptationSets. Each Period could contain one or more AdaptationSets that enable the grouping of different multimedia components that logically belong together.

    2.3.3 Representations 

    An Adaptation Set consists of a set of Representations containing interchangeable versions of the respective content, e.g., different resolutions, bitrates, etc. Although one single Representation would be enough to provide a playable stream, multiple Representations give the client the possibility to adapt the media stream to its current network conditions and bandwidth requirements and therefore guarantee smooth playback.

    2.3.4 Segments 

    Representations are chopped into Segments to enable the switching between individual Representations during playback. Those Segments are described by a URL and in certain cases by an additional byte range if those segments are stored in a bigger, continuous file. 

    2.3.5 Subsegments 

    Segments may also be subdivided into smaller Subsegments which represent a set of smaller access units in the given Segment. In this case, there is a Segment index available in the Segment describing the presentation time range and byte position of the Subsegments, which may be downloaded by the client in advance to generate the appropriate Subsegment requests using HTTP 1.1 byte range requests.

    3. Reference

    https://bitmovin.com/dynamic-adaptive-streaming-http-mpeg-dash/

    https://www.slideshare.net/schellkenig/dynamic-adaptive-streaming-over-http20

    https://www.researchgate.net/figure/The-overview-of-Dynamic-Adaptive-Streaming-over-HTTP-technique_fig1_316134840

    https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP

    https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP

    'Web > Protocol' 카테고리의 다른 글

    WebSockets vs Long Polling  (0) 2020.02.23
    QUIC  (0) 2020.02.23
    HTTP keepalive(HTTP persistent connection)  (0) 2019.09.28
    Hypertext Transfer Protocol (HTTP)  (0) 2019.08.31
    Stateful and stateless in Protocol  (0) 2019.08.25

    댓글

Designed by Tistory.