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 (0for Main Profile,1for High Profile,2for Professional Profile).LL: A two-digit decimal string representing the target level (e.g.,00for Level 2.0,08for Level 4.0,19for Level 6.3).T: A one-character flag for the tier (Mfor Main Tier,Hfor High Tier).DD: A two-digit decimal string for the bit depth (08for 8-bit,10for 10-bit,12for 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 targetsurn:mpeg:dash:profile:isoff-live:2011or CMAF-compatible profiles such asurn: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.widthandheight: 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 theftypandmoovboxes.media: Points to the media fragments containingmoofandmdatboxes.
ISOBMFF Encapsulation Specifics
Fragmented AV1 segments must conform to the AOMedia AV1-ISOBMFF mapping specifications:
- Initialization Segment: Contains the
moovbox with the sample description (stsd). Inside thestsd, anav01sample entry must include anav1C(AV1 Configuration) box containing theAV1CodecConfigurationRecord. This record conveys basic decoder configuration information, including sequence headers. - Media Segments: Each segment contains one or more
movie fragments (
moofandmdat). 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
av1Cconfiguration record of the initialization segment. - Manifest signaling can explicitly declare SAP types using the
startWithSAP="1"attribute in the<AdaptationSet>or<Representation>tags.