DASH qualification checklist

Akamai uses the following test cases to qualify DASH ingest.

DASH qualification tests
Test Description
Basic streams test Check that the MPD file is downloadable.

Verify that the MPD@type attribute is present and its value is dynamic (and not static).

DASH spec conformance Verify that the @publishTime and @availabilityStartTime attributes are present. According to the spec, for @type=dynamic, these attributes must be present. Check if the @minimumUpdatePeriod attribute is present.
Error recovery test. Verify if the streams reconnect successfully to the same entry point.
Error recovery test (failover to a different entrypoint). Verify if the transition to the secondary entry point is seamless.
GOP size and key-frame interval GOP size and key-frame interval across representations/bitrates must be same.
HTTP request type Verify that the HTTP Request Type for the segments is either PUT or POST.
Long duration publish Verify playback and analyze the stream publish after 48 hours of publish.
MPD@availabilityStartTime is constant Verify that the value of the attribute MPD@availabilityStartTime does not change during the course of publish.
MPD file update interval Check that the MPD file is not uploaded too frequently and too less frequently. An update interval of about 30 seconds is optimal. For details, refer to Posting URLs.
Playback Verify playback on DASH players. For details, refer to Playback URLs (DASH)
Segment names Verify that the segment names in the URL are according to the ones advertised in the MPD file.

Verify the initialization attribute or segment has the keyword init.

Verify that the other values are per the Spec. For example:
  • The initialization attribute shall not have the $Number$ identifier.
  • The initialization attribute shall not have the $Time$ identifier.
  • The Representation tag shall have the id attribute.
  • The Representation@id attiribute shall not have both $Number$ and $Time$ at the same time.
  • The Representation tag shall have the bandwidth attribute.
  • The SegmentTimeline element shall have S tags, and the S tag shall have at least the d attribute.
  • The SegmentTemplate tag shall have the initialization attribute.
Segment numbering Check that the segment numbering is not close to (2 ^32)-1.
Segment retry and retry interval on 5xx response Trigger a 5xx response to the encoder by modifying the delivery-hostname for the stream-id.

Trigger a 5xx response by modifying the forward target host, and verify encoder behavior.

Segment upload interval Verify that the segment upload interval is almost equal to the advertised values.
Stream alignment Check that the timestamps across representations and bitrates are aligned.
User-Agent string Verify that the Encoder is sending a valid User-Agent string.

Encoders must include a User-Agent header which provides information about brand name, version number, and build number in all posts.