DASH Manifest Specifications for Streaming AV1 Content

This article outlines the technical specifications and guidelines for streaming fragmented AV1 video content using the Dynamic Adaptive Streaming over HTTP (DASH) protocol. It details the required Media Presentation Description (MPD) parameters, codec parameter signaling, ISO Base Media File Format (ISOBMFF) encapsulation standards, and segment alignment principles defined by the Alliance for Open Media (AOMedia) and the DASH Industry Forum (DASH-IF).

Codec Parameter Signaling

In an MPEG-DASH manifest, AV1 video is signaled using the codecs attribute within the <AdaptationSet> or <Representation> elements. The codec identifier must follow the formal AOMedia parameter scheme, structured as:

codecs="av01.P.LLT.DD"

The fields represent:

  • av01: The 4-character code (FourCC) identifying the AV1 video codec.
  • P: The profile level (0 for Main Profile, 1 for High Profile, 2 for Professional Profile).
  • LL: A two-digit decimal string representing the target level (e.g., 00 for Level 2.0, 08 for Level 4.0, 19 for Level 6.3).
  • T: A one-character flag for the tier (M for Main Tier, H for High Tier).
  • DD: A two-digit decimal string for the bit depth (08 for 8-bit, 10 for 10-bit, 12 for 12-bit).

Optional extended parameters can be appended for color characteristics, such as monochrome status, chroma subsampling, and color primaries: codecs="av01.P.LLT.DD.M.CCC.cp.tc.mc.F"

MIME Type and Container Format

AV1 in DASH is transported using fragmented MP4 (fMP4) containers compatible with the Common Media Application Format (CMAF).

  • MIME Type: Must be set to mimeType="video/mp4".
  • Profiles: The root <MPD> tag typically targets urn:mpeg:dash:profile:isoff-live:2011 or CMAF-compatible profiles such as urn:mpeg:dash:profile:cmaf:2019.

Manifest Hierarchy and Elements

AdaptationSet

The <AdaptationSet> groups representations of the same media content. Key attributes include:

  • contentType="video"
  • mimeType="video/mp4"
  • codecs: Set at the adaptation set level if uniform, or overridden at the representation level if profiles or bit depths vary.
  • subsegmentAlignment="true": Recommended to ensure segments across representations align at the sample level for seamless switching.

Representation

Each <Representation> element specifies unique stream characteristics:

  • id: Unique identifier for the bitrate variant.
  • bandwidth: Media bitrate in bits per second.
  • width and height: Resolution of the video.
  • frameRate: Temporal resolution (e.g., 30, 60, 30000/1001).

Segmentation (SegmentTemplate)

DASH streams with AV1 primarily use <SegmentTemplate> to dynamically construct segment URLs:

  • initialization: Points to the initialization segment containing the ftyp and moov boxes.
  • media: Points to the media fragments containing moof and mdat boxes.

ISOBMFF Encapsulation Specifics

Fragmented AV1 segments must conform to the AOMedia AV1-ISOBMFF mapping specifications:

  • Initialization Segment: Contains the moov box with the sample description (stsd). Inside the stsd, an av01 sample entry must include an av1C (AV1 Configuration) box containing the AV1CodecConfigurationRecord. This record conveys basic decoder configuration information, including sequence headers.
  • Media Segments: Each segment contains one or more movie fragments (moof and mdat). Video frames are encapsulated as Open Bitstream Units (OBUs).
  • Temporal Delimitation: Samples must contain complete Temporal Units, bounded by Temporal Delimiter OBUs.

Random Access Points (RAP)

For adaptive switching, each fragment must begin with a Random Access Point (SAP type 1 or 2):

  • The first sample of an independent segment must be an AV1 Key Frame.
  • The sample must include a Sequence Header OBU or reference a Sequence Header present in the av1C configuration record of the initialization segment.
  • Manifest signaling can explicitly declare SAP types using the startWithSAP="1" attribute in the <AdaptationSet> or <Representation> tags.