Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 2: Conformance and reference software

ISO/IEC 23009-2:2017 specifies the conformance and reference software implementing the normative clauses of ISO/IEC 23009‑1, that is test vectors comprising media presentation descriptions, segments, and combinations thereof that conform or do not conform to the normative clauses of ISO/IEC 23009‑1 and corresponding software modules.

Technologies de l'information — Diffusion en flux adaptatif dynamique sur HTTP (DASH) — Partie 2: Conformité et logiciel de référence

General Information

Status
Withdrawn
Publication Date
22-Oct-2017
Withdrawal Date
22-Oct-2017
Current Stage
9599 - Withdrawal of International Standard
Completion Date
07-Sep-2020
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 23009-2:2017 - Information technology -- Dynamic adaptive streaming over HTTP (DASH)
English language
70 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 23009-2
Second edition
2017-10
Information technology — Dynamic
adaptive streaming over HTTP
(DASH) —
Part 2:
Conformance and reference software
Technologies de l'information — Diffusion en flux adaptatif
dynamique sur HTTP (DASH) —
Partie 2: Conformité et logiciel de référence
Reference number
ISO/IEC 23009-2:2017(E)
©
ISO/IEC 2017

---------------------- Page: 1 ----------------------
ISO/IEC 23009-2:2017(E)

COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2017, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO/IEC 2017 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 23009-2:2017(E)

Contents Page
Foreword .iv
Introduction .vi
1 Scope . 1
2 Normative references . 1
3 Terms, definitions, symbols and abbreviated terms . 1
4 Media presentation conformance. 1
4.1 Overview . 1
4.2 Software tools . 2
5 MPD conformance . 2
5.1 General . 2
5.2 Static MPD conformance . 3
5.3 Dynamic MPD conformance . 4
5.3.1 General. 4
5.3.2 Background and requirements . 4
5.3.3 Dynamic conformance software design . 6
6 Segment conformance . 7
6.1 Overview . 7
6.2 Representation conformance . 8
6.2.1 ISO base media file format. 8
6.2.2 MPEG-2 transport stream . 9
6.3 Adaptation set conformance .12
6.3.1 ISO base media file format.12
6.3.2 MPEG-2 transport stream .14
6.4 Dynamic media presentation conformance .15
7 Profile specific conformance .15
7.1 ISO base media file format on demand profile .15
7.2 ISO base media file format live profile .15
7.3 ISO base media file format main profile .15
7.4 MPEG-2 transport stream simple profile .16
8 Conforming test vectors .16
9 Conformance software for ISO/IEC 23009-4 .16
9.1 General .16
9.2 Design limitations and assumptions .16
9.3 Usage.17
Annex A (normative) MPD conformance checking .18
Annex B (normative) Test vectors .58
Annex C (normative) DASH access engine reference software .61
Annex D (informative) Sample software .63
Annex E (informative) Dynamic media presentation emulator .66
Annex F (informative) Coverage of DASH features .67
Bibliography .70
© ISO/IEC 2017 – All rights reserved iii

---------------------- Page: 3 ----------------------
ISO/IEC 23009-2:2017(E)

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical
activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
work. In the field of information technology, ISO and IEC have established a joint technical committee,
ISO/IEC JTC 1.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for
the different types of document should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject
of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent
rights. Details of any patent rights identified during the development of the document will be in the
Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation on the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the
World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see the following
URL: www.iso.org/iso/foreword.html.
This document was prepared by Joint Techncial Committee ISO/IEC JTC 1, Information technology, SC 29,
Coding of audio, picture, multimedia and hypermedia information.
This second edition cancels and replaces the first edition (ISO/IEC 23009-2:2014), which has been
technically revised.
The main changes compared to the previous edition are as follows:
a) Conformance and reference software to cover all the features of ISO/IEC 23009-1:2014, including:
— Dynamic MPD conformance;
— Updates to MPEG-2 TS validator include:
— Added tests for:
— PES packet validity (complete access units);
— SAP types when the video stream is MPEG-4 AVC;
— Single segment index and representation indexes;
— Subsegment indexes and subsegment validity;
— Initialization segment information;
— System-level tests of common encryption;
— Bitstream switching segment;
— Segment alignment if @segmentAlignment is true;
— Subsegment alignment if @subsegmentAlignment is true;
iv © ISO/IEC 2017 – All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 23009-2:2017(E)

— Simple profile tests.
— Changes made to usability:
— The conformance checker runs against an MPD and all of its segments at once;
— The build system has been replaced with Autotools.
b) Test vectors to cover the features of ISO/IEC 23009-1:2014.
c) Feature list and coverage for ISO/IEC 23009-1:2014 is provided in Annex F.
A list of all parts in the ISO/IEC 23009 series can be found on the ISO website.
© ISO/IEC 2017 – All rights reserved v

---------------------- Page: 5 ----------------------
ISO/IEC 23009-2:2017(E)

Introduction
The conformance and reference software of ISO/IEC 23009 serves three main purposes:
— validation of the written specification of the parts of ISO/IEC 23009;
— clarification of the written specification of the parts of ISO/IEC 23009;
— conformance testing for checking interoperability for the various applications against the reference
software which aims to be compliant with ISO/IEC 23009.
vi © ISO/IEC 2017 – All rights reserved

---------------------- Page: 6 ----------------------
INTERNATIONAL STANDARD ISO/IEC 23009-2:2017(E)
Information technology — Dynamic adaptive streaming
over HTTP (DASH) —
Part 2:
Conformance and reference software
1 Scope
This document specifies the conformance and reference software implementing the normative clauses
of ISO/IEC 23009-1, that is test vectors comprising media presentation descriptions, segments, and
combinations thereof that conform or do not conform to the normative clauses of ISO/IEC 23009-1 and
corresponding software modules.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies. For
undated references, the latest edition of the referenced document (including any amendments) applies.
ISO/IEC 19757-3, Information technology — Document Schema Definition Languages (DSDL) — Part 3:
Rule-based validation — Schematron
ISO/IEC 23009-1:2014, Information technology — Dynamic adaptive streaming over HTTP (DASH) —
Part 1: Media presentation description and segment formats
3 Terms, definitions, symbols and abbreviated terms
For the purpose of this document, the terms, definitions, symbols and abbreviated terms given in
ISO/IEC 23009-1 apply.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
— IEC Electropedia: available at http://www.electropedia.org/
— ISO Online browsing platform: available at http://www.iso.org/obp
4 Media presentation conformance
4.1 Overview
A media presentation conforming to ISO/IEC 23009-1 obeys the rules for the media presentation
description (MPD) and the segments referenced within the MPD. To verify the conformance of a media
presentation, the following steps need to be completed:
— the conformance of the MPD according to Clause 5.
— the conformance of the segments, which includes the conformance of individual segments and
representations, as well as the conformance of representations that are jointly provided in
adaptation sets and periods. For details, refer to Clause 6.
The process of MPD and segment conformance checking is shown in Figure 1.
© ISO/IEC 2017 – All rights reserved 1

---------------------- Page: 7 ----------------------
ISO/IEC 23009-2:2017(E)

Figure 1 — MPD and segment validation
MPD + segment validator: gets as an input the MPD and segments referenced from within the MPD
and performs the MPD and segment validation according to the rules defined in Annex B. On success,
the output is an OK report; otherwise, an error message is provided.
4.2 Software tools
The following software tools are included:
— MPD conformance software;
— ISO BMFF segment validator;
— MPEG-2 TS segment validator;
— Conformance software for dynamic services.
All software tools are available through the MPEG SVN accessible via http://wg11.sc29.org/svn/
repos/MPEG-DASH/ (requires username/password which can be obtained through the ISO/IEC JTC1
SC 29 mirror committee of each member country). A snapshot of the software is also available in http://
standards.iso.org/ittf/PubliclyAvailableStandards/.
Additional supplamental software packages which may be used as sample DASH clients, sample
segmentor and web-based conformace service are listed in Annex D.
5 MPD conformance
5.1 General
This clause specifies the MPD conformance checking and corresponding software modules which
comprise the three steps depicted in Figure 2. Detailed means to perform MPD conformance checking
are provided in Annex A.
2 © ISO/IEC 2017 – All rights reserved

---------------------- Page: 8 ----------------------
ISO/IEC 23009-2:2017(E)

Figure 2 — MPD conformance checking
[10]
Step 1 (XLink Resolver): gets as an input an MPD document and resolves all W3C XLINK attributes
as defined in ISO/IEC 23009-1. If an error occurs, the corresponding error message shall be provided;
otherwise, the XLink resolved MPD document is provided. The details for this step of the MPD
conformance checking are defined in A.2.
Step 2 (XML Validator): gets as an input an XLink-resolved MPD document and performs XML
[11]
validation (i.e. well-formed and valid) against the MPD schema defined in W3C XML and W3C XML
[12]
SCHEMA. If an error occurs, the corresponding error message shall be provided; otherwise, the
XLink-resolved and schema-validated MPD document is provided. The details for this step of the MPD
conformance checking are defined in A.3.
Step 3 (Schematron Validator): gets as an input an XLink-resolved and schema-validated MPD
document and performs Schematron validation as defined in ISO/IEC 19757-3 according to the rules
defined in A.4.2. If an error occurs, the corresponding error message shall be provided; otherwise, the
XLink-resolved, schema-validated, and Schematron-validated MPD document is provided. The details
for this step of the MPD conformance checking are defined in A.4
The following command may be used to validate an MPD document with the chain depicted in Figure 2.
[3]
This requires Apache Ant .
ant run –Dinput=ʺfiletovalidate.mpdʺ

The program outputs a message for each step. If an error occurs during one step, the following steps are
not executed.
All conformance tools are available through the MPEG SVN and MPEG Conformance repository
accessible via http://wg11.sc29.org/svn/repos/MPEG-DASH/ (requires username/password which can
be obtained through the ISO/IEC JTC 1 SC 29 mirror committee of each member country). A snapshot of
the tools is also available in http://standards.iso.org/ittf/PubliclyAvailableStandards/.
5.2 Static MPD conformance
An MPD with MPD@type=ʺstaticʺ shall comply with the rules in 5.1.
In addition, the availability of all resources in the MPD during the MPD@availabilityStartTime
and the MPD@availabilityEndTime shall be checked. A function remoteFileExists($url)
may be executed for each segment that is documented in the MPD. This function shall return true for all
Segments in the MPD during the time interval defined by the MPD@availabilityStartTime and the
© ISO/IEC 2017 – All rights reserved 3

---------------------- Page: 9 ----------------------
ISO/IEC 23009-2:2017(E)

MPD@availabilityEndTime. The following snippet shows an example for the remoteFileExists
function written in PHP.
  function remoteFileExists($url) {
    $curl = curl_init($url);

     //don't fetch the actual page, you only want to check the
    connection is ok curl_setopt($curl, CURLOPT_NOBODY, true);

     //do request
     $result = curl_exec($curl);

     $ret = false;

     //if request did not fail
     if ($result !== false) {
       //if request was ok, check response code
       $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

       if ($statusCode == 200) {
       $ret = true;
       }
     }

       curl_close($curl);

       return $ret;
    }
5.3 Dynamic MPD conformance
5.3.1 General
To ensure that servers offering a dynamic DASH media presentation adhere to the timing requirements
and that clients are able to properly consume the dynamic presentation without observing unavailable
segments, the DASH conformance software is extended to include and address media presentations with
MPD@type=ʹdynamicʹ. In 5.3, the requirements which go beyond those for static DASH conformance
are listed and a functional description of the conformance software implementation is provided.
[1]
The document is aligned with the guidelines for live services as documented in ISO/IEC/TR 23009-3 .
5.3.2 Background and requirements
5.3.2.1 MPD-specific checks
Clients make use of the information in an MPD. Based on an MPD that is fetched at a certain fetch time
FT the client can determine the following information:
a) At any time, WT where WT ≥ FT, a client can determine:
1) the latest available period on the server, denoted by its Period start time PS*;
2) the segment availability start time of any segment at position k within the Period, denoted as
SAST(k);
3) the position of the latest segment that is available on server in the Period, referred to as k*;
4) the URL of the latest segment that is available within this Period;
5) the time when to fetch a new MPD based on the current presentation time, or more specifically,
the greatest segment position k' within this Period that can be constructed by this MPD;
6) the media presentation time within the Representation that synchronizes closest to the live
edge, MPTL;
4 © ISO/IEC 2017 – All rights reserved

---------------------- Page: 10 ----------------------
ISO/IEC 23009-2:2017(E)

7) the media presentation time within the Representation that synchronizes to other clients, MPTS.
b) At any time, WT, all segments with availability start time at or before WT and availability end time
at or before WT are accessible.
c) An updated MPD is made available on time, taking into account the minimum update period (MUP)
of the MPD. Note that by not updating the MPD, the existing MPD is validated for another MUP time.
Detailed equations to derive segment availability times are provided in ISO/IEC 23009-1 and ISO/IEC/
[1]
TR 23009-3 . When providing an MPD, the content author ensures that the segment availability times
can be derived.
5.3.2.2 MPD times
In order to use the same concepts with different timing and addressing schemes, the following values
are introduced according to ISO/IEC 23009-1:
— the position of the segment in the Period denoted as k with k=1,2,.;
— the MPD start time of the segment at position k, referred to as MST(k);
— the MPD duration of a segment at position k, referred to as MD(k).
Assuming that the wall-clock time at the client is denoted as WT, the client can derive the following
information.
5.3.2.3 General derivation
Using these times, the values from above can be derived as follows.
— The latest Period is the Period for which AST + PS + MD(1) ≤ WT where AST is the value of the MPD@
availabilityStartTime and PS is the PeriodStart as defined in ISO/IEC 23009-1.
— The segment availability start time is obtained as
SAST(k) = AST + PS + MST(k) + MD(k)
— Within this Period, the latest segment available on the server is the segment at the position k* which
results in the greatest value for SAST(k*) and at the same time is smaller than WT.
— The address of the latest segment can be derived using the position information k*. The exact value
depends on the addressing method.
— Within this Period, the greatest segment position k' that can be constructed by this MPD is the one
that results in the greatest value for SAST(k') and at the same time is smaller than FT + MUP.
The media presentation time in a Period is determined for each Representation as the presentation
time value of the media segments minus the value of the @presentationTimeOffset, if present, for
each Representation.
It is further assumed that a segment at position k has an assigned earliest media presentation time EPT(k).
5.3.2.4 Requirements
When receiving an MPD, the DASH client is guaranteed that:
— Each segment at position k in this Period is available prior to the sum of its earliest presentation
time and its duration; SAST(k) ≤ EPT(k) + MD(k).
— If each segment with segment number k is delivered starting at SAST(k) over a constant bitrate channel
with bitrate equal to the value of the @bandwidth attribute, then each sample with presentation
time PT shall be available at the client by the time given by PT + (AST + PS) + MBT + MD(k).
© ISO/IEC 2017 – All rights reserved 5

---------------------- Page: 11 ----------------------
ISO/IEC 23009-2:2017(E)

— Each segment in this Period shall be available at least until SAST(k) + TSB + MD(k).
— The MPD can be used to construct and request segments until media time FT + MUP. The greatest
segment position k' that can be constructed by this MPD shall be the one that results in the greatest
value for SAST(k') and at the same time is smaller than FT + MUP. Note that the latest segment may
be significantly shorter in duration than MD(k).
In addition, updates of the MPD shall be consistent according to ISO/IEC 23009-1:2014, 5.4.
5.3.3 Dynamic conformance software design
5.3.3.1 Overview
The implementation of the conformance software for dynamic services requires the implementation of
the requirements in 5.3.2.4. The process is split into two parts:
— the creation of a data set by recording/monitoring a dynamic service;
— the actual conformance checks implementing the checks of the requirements.
5.3.3.2 Data set creation
Two different cases are considered depending on the access bandwidth to the server.
In case 1, it is assumed that the conformance checker is operating with a very high (infinite) access
bandwidth and minimal delay. Then the initial part is as follows.
a) Download and store the MPD, and record the fetch time FT of the MPD.
b) Determine the following information.
1) The smallest segment availability start time greater than FT of any Segment in any
Representation referred to as SAST .
min
2) The URLs of all segments available at SAST . If multiple segments are available at the same
min
time, determine all of them.
c) For all segments with segment availability, end time greater than FT and smaller than SAST ,
min
generate the URL, issue an HTTP HEAD request, and record the HTTP header.
d) At time SAST issue HTTP GET requests for all segments that become available at this time,
min
record the HTTP headers and store the segments.
e) Go to a) and download the next MPD at FT = SAST .
min
f) Continue the process until manually stopped or the media presentation is ended.
In case 2, if the bandwidth connection is restricted, apply the following.
a) Download and store the MPD, and record the fetch time FT of the MPD.
b) Determine the following information.
1) The smallest segment availability start time greater than FT of any segment in any
Representation referred to as SAST .
min
2) The URLs of all segments available at SAST . If multiple segments are available at the same
min
time, determine all of them.
c) For all segments with segment availability end time greater than FT and smaller than SAST ,
min
generate the URL, issue an HTTP HEAD request, and record the HTTP headers.
6 © ISO/IEC 2017 – All rights reserved

---------------------- Page: 12 ----------------------
ISO/IEC 23009-2:2017(E)

d) For selected representations, issue an HTTP GET for segments that are available at this time.
e) At time SAST issue HTTP HEAD for all segments that become available at this time and record
min
the HTTP headers.
f) Go to a) and download the next MPD at FT = SAST .
min
g) Continue the process until manually stopped or the media presentation is ended.
This initial operation results in a data set as follows:
a) a sequence of MPDs, each with a FT;
b) a set of Segment URLs with associated:
1) SAST;
2) fetch time for segment availability start time request (typically SAST);
3) HTTP headers for segment availability start time request;
4) segment availability end time (SAET);
5) fetch time for segment availability end time request (typically just slightly before the SAET);
6) HTTP headers for segment availability end time request;
c) at least for a selected set of representations, the corresponding segments.
From the sequence of the MPDs, a single new MPD can be generated with MPD@type=static that
includes all segments.
5.3.3.3 Conformance checks
The conformance checks operate on the stored data set and include the following checks:
— the correctness of the sequence of MPDs as documented in ISO/IEC 23009-1:2014, 5.4.
— all MPD timing aspects and segment availability times as documented in ISO/IEC 23009-1:2014, 5.3.
— the static conformance checks using the single MPD according to 5.2.
6 Segment conformance
6.1 Overview
Segment conformance requirements verify that the segments offered in the MPD conform to the DASH
specification.
This includes the conformance requirements for:
— segments offered within one representation (for details, refer to 6.2);
— representations offered within one adaptation set (for details, refer to 6.3);
— segments offered in a dynamic media presentation (for details, refer to 6.4).
All conformance tools are available through the MPEG SVN and MPEG conformance repository
accessible via http://wg11.sc29.org/svn/repos/MPEG-DASH/ (requires username/password which can
be obtained through the ISO/IEC JTC 1 SC 29 mirror committee of each member country). A snapshot of
the tools is also available in http://standards.iso.org/ittf/PubliclyAvailableStandards/.
© ISO/IEC 2017 – All rights reserved 7

---------------------- Page: 13 ----------------------
ISO/IE
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.