`
`90
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`timeShiftBufferDepth
`
`baseURL
`ProgramInformation
`
`morelnformationURL
`
`Title
`
`Source
`
`Copyright
`
`Period
`start
`
`segmentAlignmentFlag
`
`bitstreamSwitchingFlag
`
`SegmentlnfoDefault
`
`duration
`baseURL
`sourceUrlTemplatePeriod
`
`Representation
`
`bandwidth
`
`width
`
`height
`
`tang
`
`mimeType
`
`A
`
`A
`E
`
`A
`
`E
`
`E
`
`E
`
`E
`A
`
`A
`
`A
`
`E
`
`A
`A
`A
`
`E
`
`A
`
`A
`
`A
`
`A
`
`A
`
`0,1
`
`0,1
`
`0,1
`
`0,1
`
`I ... N
`
`U, I
`
`I ..N
`
`O
`
`O
`O
`
`O
`
`O
`
`O
`
`O
`
`M
`M
`
`O
`
`Default: false
`
`O
`
`Default: false
`
`U
`
`O
`O
`O
`
`M
`
`M
`
`O
`
`O
`
`O
`
`M
`
`smooth playout provided that each
`Representation is delivered at or above the
`value of its bandwidth attribute.
`Indicates the duration of the time shifting
`buffer that is available for a live
`presentation. When not present, the value
`is unknown. If present for on-demand
`services, this attribute shall be ignored by
`the client.
`Base URL on MPD level
`Provides descriptive information about the
`ro ram
`This attribute contains an absolute URL
`which provides more information about
`the Media Presentation
`Maybe used to provide a title for the
`Media Presentation
`May be used to provide information about
`the original source (for example content
`rovider of the Media Presentation.
`May be used to provide a copyright
`statement for the Media Presentation.
`Provides the information of a Period
`Provides the accurate start time of the
`Period relative to the value of the attribute
`availabilitySraK tfine of the Media
`Presentation.
`When True, indicates that all start and end
`times of media components of any
`particular media type are temporally
`aligned in all Segments across all
`Re resentations in this Period.
`When True, indicates that the result of the
`splicing on a bitstream level of any two
`time-sequential Media Segments within a
`Period from any two different
`Representations containing the same
`media types complies to the Media
`Se meet format.
`Provides default Segment information
`about Segment durations and, optionally,
`URL construction.
`Default duration of Media Se ments
`Base URL on Period level
`The source string providing the URL
`tem late on eriod level.
`This element contains a description of a
`Re resentation.
`The minimum bandwidth of a hypothetical
`constant bitrate channel in bits per second
`(bps) over which the representation can be
`delivered such that a client, after buffering
`for exactly minBu/j"erTime can be assured
`of having enough data for continuous
`la out.
`Specifies the horizontal resolution of the
`video media type in an alternative
`Re resentation, counted in ixels.
`Specifies the vertical resolution of the
`video media type in an alternative
`Re resentation, counted in ixels.
`Declares the language codes) for this
`Representation according to RFC 5646
`[106].
`Note, multiple language codes maybe
`declared when e.g. the audio and the sub-
`title are of different lan ua es.
`Gives the MIME type of the Initialisation
`Segment, if present; if the Initialisation
`Segment is not present it provides the
`MQviE type of the first Media Segment.
`Where applicable, this MIME type
`includes the codec parameters for all
`media types. The codec parameters also
`include the profile and level information
`where a
`licable.
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`91
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`OD
`
`Default: 0
`OD
`
`Default: False
`O
`
`U, I
`
`O
`
`For 3GP files, the MIME type is provided
`according to RFC 4281 [ 107].
`Specifies the group to which this
`Representation is assigned.
`
`When True, indicates that all Segments in
`the Representation start with a rendom
`access oint
`Provides a quality ranking of the
`Representation relative to other
`Representations in the Period. Lower
`values represent higher quality content. IF
`not resent then the nankin is undefined.
`This element provides information about
`the use of content protection for the
`segments of this representation.
`
`When not present the content is not
`encrypted or DRM protected.
`
`group
`
`startWithRAP
`
`qualityRanking
`
`ContcntYrotecHon
`
`Schemelnformation
`
`schemeldUri
`
`TrickMode
`
`alternatePlayoutRate
`
`Se mentlnfo
`duration
`
`baseURL
`InitialisationSeEmentURl.
`
`sourceURL
`range
`
`UrlTemplate
`
`sourceURL
`
`id
`
`A
`
`A
`
`A
`
`1:
`
`E
`
`A
`
`E
`
`A
`
`E
`A
`
`A
`E
`
`A
`A
`
`E
`
`A
`
`A
`
`0,1
`
`0, 1
`
`I
`
`0, 1
`
`0, 1
`
`O
`
`O
`
`O
`
`O
`
`CM
`
`This element gives the information about
`the used content protection scheme. The
`element can be extended to provide more
`schemes ecific information.
`Provides an absolute URL to identify the
`scl~e~iie. The definition of this element is
`specific to the scheme employed for
`content rotection.
`Provides the information for trick mode. It
`also indicates that the Representation may
`be used as a trick mode Re resentation.
`Specities the maximum playout rate as a
`multiple of the regular playout rate, which
`this Representation supports with the same
`decoder profile and level requirements as
`the normal
`la out rate.
`Provides Se ment access information.
`[f present, gives the constant approximate
`segment duration. The attribute must be
`present in case duration is not present on
`Must be
`Period level and the Representation
`present in
`contains more than one Media Segment. If
`case duration
`is not present
`the Representation contains more only one
`Media Segment, then this attribute may
`on period
`level and the
`not be present.
`Representatio All Segments within this Segmentlnfo
`n contains
`element have the same duistion unless it is
`more than one
`the last Segment within the Period, which
`Media
`could be significantly shorter.
`Se ment.
`O
`n
`
`Base URL on Re resentation level
`This element references the Initialisation
`Segment. if not present each Media
`Se ment is self-contained.
`7'he source strin
`the URL
`rovidin
`The byte renge restricting the above URL.
`[f not present, the resources referenced in
`the sourceURL are unrestricted. The
`format of the string shall comply with the
`format ass ecified in section 12.2.4.1.
`The presence of this element specifies that
`a template construction process for Media
`Segments is applied. 7'he element includes
`attributes to generate a Segment list for
`the Representation associated with this
`element.
`7'he source string providing the template.
`This attribute and the id attribute are
`mutual) exclusive.
`An attribute containing a unique ID for
`this specific Representation within the
`Period.
`This attribute and the sourceURL attribute
`are mutually exclusive.
`
`M
`O
`
`CM
`Must be
`present if the
`Url element is
`not present.
`
`O
`
`CM
`Must be
`present if the
`souroeUrlTe
`mplatePeriod
`attribute is
`resent
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`92
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`star[Indcx
`
`endlndex
`
`Url
`
`souroeURL
`range
`
`A
`
`A
`
`E
`
`A
`A
`
`0 . ..N
`
`OD
`default: 1
`
`O
`
`The index of the first accessible Media
`Segment in this Representation. In case of
`on-demand services or in case the first
`Media Segment of the Representation is
`accessible, then this value shall not be
`resent or shall be set to 1.
`The index of the last accessible Media
`Segment in this Representation. If not
`resent the endlnder is unknown.
`Provides a set of explicit URL(s) for
`CM
`Must be
`Segments.
`present if the Note: The URL element may contain a
`UrlTemplate
`byte range.
`element is not
`resent.
`M
`O
`
`The source strin
`the URL
`rovidin
`The byte range restricting the above URL.
`If not present, the resources referenced in
`the sourceURL are unrestricted. The
`format of the string shall comply with the
`format ass ecified in section 12.2.4.1
`
`12.2.5.3
`
`Media Presentation Description Schema
`
`The XML schema for the MPD in section 12.2.5.2 is as follows:
`
`<?acml version="1.0" encoding="UTF-B"?>
`cxs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009'~
`attributeFormDefault="unqualified"
`elementFormDefault="qualified"
`xmins:xs="http://www.w3.org/2001/XMLSchema"
`xmins="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
`<xs:annotation>
`<xs:appinfo>Media Presentation Description</xs:appinfo>
`<xs:documentation xml:lang="en">
`This Schema defines 3GPP Media Presentation Description!
`</xs:documentation>
`</xs:annotation> c!-- MPD: main element -->
`<xs:element name="MPD" type="MPDtype"/>
`
`<!-- MPD Type --n
`<xs:complexType name="MPDtype">
`<xs:sequence>
`<xs:element minOccurs="0" name="ProgramInformation" type="ProgramInformationType"/>
`<xs:element maxOccurs="unbounded" name="Period" type="PeriodType"/>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`c/xs:sequence>
`<xs:attribute default="OnDemand" name="type" type="PresentationType"/>
`<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
`<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
`<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
`<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration°/>
`<xs:attribute name="minBufferTime" type="xs:duration° use="required"/>
`<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
`<xs:attribute name="baseIIrl" type="xs:anyURI"/~
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`c!-- Type of presentation - live or on-demand -->
`<xs:simpleType name="PresentationType">
`<xs:restriction base="xs:string">
`<xs:enumeration value="OnDemand"/>
`<xs:enumeration value="Live"/>
`</xs:restriction>
`</xs:simpleType>
`
`<!-- Period of a presentation --~
`<xs:complexType name="PeriodType"~
`<xs:sequence>
`<xs:element minOccurs="0" name="SegmentInfoDefault" type="SegmentInfoDefaultType"/>
`<xs:element maxOccurs="unbounded" name="Representation" type="RepresentationType"/>
`<xs:any namespace="##other" processContents="lax~~ minOccurs="0" maxOccurs="unbounded"/>
`c/xs:sequence~
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`93
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`cxs:attribute name="start" type="xs:duration"/>
`<xs:attribute default="false" name="segmentAlignmentFlag" type="xs:boolean"J>
`<xs:attribute default="false" name="bitStreamSwitchingFlag" type="xs:boolean°/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`<!-- Program information for a presentation -->
`<xs:complexType name="ProgramInformationType">
`<xs:sequence>
`<xs:element minOccurs="0" name="Title" type="xs:string"/>
`<xs:element minOccurs="0" name="Source" type="xs:string"/>
`<xs:element minOccurs="0" name="Copyright" type="xs:string"/>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="moreInformationURL" type="xs:anyURI"/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`<!-- Default Segment access information -->
`<xs:complexType name="SegmentInfoDefaultType">
`<xs:sequence>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="baseURL~~ type="xs:anyURI"/>
`<xs:attribute name="duration" type="xs:duration"/>
`<xs:attribute name="sourceUrlTemplatePeriod" type="xs:string~~/>
`<xs:anyAttribute namespace="##other" processContents="lax'/>
`</xs:complexType>
`
`c!-- A Representation of the presentation content for a specific Period -->
`<xc:complexTypc name-~'ReprecentationType~~>
`<xs:sequence>
`~xs:element name="SegmentInfo" type="SegmentInfoType"/>
`<xs:element minOccurs="0" name="ContentProtection" type="ContentProtectionType"/>
`<xs:element minOccurs="0" name="TrickMode" type="TrickModeType"/>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`c/xs:sequence>
`<xs:attribute name="bandwidth" type="xs:unsignedInt" use="required"/>
`<xs:attribute default="0" name="group" type="xs:unsignedlnt"/>
`<xs:attribute name="width" type="xs:unsignedInt"/>
`<xs:attribute name="height" type="xs:unsignedInt"/>
`<xs:attribute name="lang" type="xs:string"/>
`<xs:attribute name="mimeType" type="xs:string" use="required"/>
`<xs:attribute default="false" name="startWithRAP" type="xs:boolean"/>
`<xs:attribute name="qualityRanking" type="xs:unsignedInt"/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`<!-- Segment access information -->
`<xs:complexType name="SegmentlnfoType">
`<xs:sequence>
`<xs:element minOccurs="0" name="InitialisationSegmentURL" type="UrlType"/>
`<xs:choice>
`~xs:element minOccurs="0" name="UrlTemplate" type="UrlTemplateType"/>
`<xs:sequence>
`<xs:element maxOccurs="unbounded" name="Url° type="UrlType"/>
`<xs:any namespace="##other" processContents="lax" minOccurs="0"
`maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:any namespace="##other" processContents="lax~~ minOccurs="0"
`maxOccurs="unbounded"/>
`</xs:choice>
`</xs:sequence>
`<xs:attribute name="baseURL" type="xs:anyURI"/>
`<xs:attribute name="duration" type="xs:duration"/>
`<xs:anyAttribute namespace="##other~~ processContents="lax"/>
`</xs:complexType>
`
`<!-- A Segment URL -->
`<xs:complexType name="UrlType">
`<xs:sequence>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="sourceURL" type="xs:anyURI" use="required"/>
`~xs:attribute name="range" type="xs:string"/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`94
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`<!-- A URL template -->
`<xs:complexType name="UrlTemplateType">
`<xs:sequence>
`<xs:any namespace="##other" processContents="laic" minOccurs=~~0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="sourceURL" type="xs:anyURI"/>
`<xs:attribute name="id" type="xs:string"/>
`<xs:attribute default="1" name="startIndex~~ type="xs:unsignedInt"/>
`<xs:attribute name="endlndex" type="xs:unsignedInt"/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`<!-- Gives information about the content protection -->
`cxs:complexType name="ContentProtectionType">
`<xs:sequence>
`<xs:element minOccurs="0" name="SchemeInformation" type="xs:string"/>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="schemeIdUri" type="xs:anyURI"/>
`<xs:anyAttribute namespace="##other" processContents="lax'/>
`</xs:complexType>
`
`<!-- Gives information about trick mode -->
`<xs:complexType name="TrickModeType">
`<xs:sequence>
`<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
`</xs:sequence>
`<xs:attribute name="alternatePlayoutRate" type="xs:string"/>
`<xs:anyAttribute namespace="##other" processContents="lax"/>
`</xs:complexType>
`
`xs:schema>
`
`An example for a valid MPD is as follows:
`
`<?xml version="1.0" encoding="UTF-8"?>
`<MPD
`type="Live"
`baseUrl="http://www.example.com"
`minimumUpdatePeriodMPD="PT20S"
`minBufferTime="PT10S"
`mediaPresentationDuration="PT2H"
`availabilityStartTime="2010-04-01T09:30:47Z~'
`availabilityEndTime="2010-04-07T09:30:47Z~~
`timeShiftBufferDepth="PT30M"
`xsi:schemaLocation="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009 3GPP-MPD-rl.xsd"
`xmins:xsi="http://www.w3.org/2001/XMLSchema-instance"
`xmins="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
`<ProgramInformation moreInformationURL="http://www.example.com">
`<Title>Example</Title>
`</ProgramInformation>
`<Period start="PT0S">
`<Representation
`mimeType="video/3gpp; codecs=s263, samr"
`bandwidth="256000">
`<SegmentInfo duration="PT10S" baseURL=~'repl/">
`<InitialisationSegmentURL sourceURL=~~seg-init.3gp"/>
`<Url sourceURL="seg-1.3gp"/>
`<Url sourceURL="seg-2.3gp"/>
`<Url sourceURL=~~seg-3.3gp"/>
`</SegmentInfo>
`</Representation>
`<Representation
`mimeType="video/3gpp; codecs=mp4v.20.9, mp4a.E1"
`bandwidth="128000">
`<SegmentInfo duration="PT10S" baseURL="rep2/">
`<InitialisationSegmentURL sourceURL="seg-init.3gp"/>
`<Url sourceURL="seg-1.3gp"/>
`<Url sourceURL="seg-2.3gp"/>
`<Url sourceURL=~'seg-3.3gp"/>
`</SegmentInfo>
`</Representation>
`c/Period>
`<Period start="PT30S">
`<SegmentInfoDefault
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`95
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`duration="PT10S"
`sourceUrlTemplatePeriod="http://example.com/$Representationld$/$Index$.3gp"/>
`<Representation
`mimeType="video/3gpp; codecs=mp4v.20.9, mp4a.E1"
`bandwidth="256000">
`<SegmentInfo>
`<UrlTemplate id="1"/>
`</SegmentInfo>
`</Representation>
`<Representation
`mimeType="video/3gpp; codecs=mp4v.20.9, mp4a.E1"
`bandwidth="128000">
`<SegmentInfo>
`<UrlTemplate id="2"/>
`</SegmentInfo>
`</Representation>
`c/Period
`PD>
`
`12.2.5.4
`
`Media Presentation Description Updates
`The MPD may be changed during the Media Presentation.
`If the attribute minimarmUpdatePeriodMPD is provided then the client dcrivcs the next time to check whether the MPD
`has been updated on the server, referred to as CheckTime, as the sum of the time when the previous update of the MPD
`was requested and the minimum UpdatePeriodMPD.
`If the mirzinsunsUpdatePe~~iodNfPD is i~ot proviaea, external means may be used to deduce the CheckTime of the MYll,
`if applicable.
`
`If the MPD is changed, then the changes to the MPD must be such that the updated MPD is compatible with the
`previous MPD in the following sense: An example client using the segment list generation process as provided in
`section 12.6.3 would generate an identically functional Segment List from the updated MPD for any time up to the
`CheckTime of the previous MPD as it would have done from the previous MPD. The requirement ensures that
`1. clients may immediately begin using the new MPD without synchronisation with the old MPD, since it is
`compatible with the old MPD before the update time; and
`the update time needs not be synchronised with the time at which the actual change to the MPD takes
`place: i.e. changes to the MPD may be advertised in advance.
`
`2,
`
`12.3 Protocols
`Adaptive HTTP-Streaming Clients shall comply with clients as specified in RFC2616 [17].
`HTTP-Streaming Servers shall comply with servers as specified in RFC2616 [17].
`HTTP-Streaming Clients is expected to use the HTTP GET method or the partial GET method, as specified in RFC2616
`[ 17], section 9.3, to retrieve Initialisation Segments or parts thereof and Media Segments or parts thereof.
`
`12.4 Usage of 3GPP File Format
`
`12.4.1
`
`Instantiation of 3GPP Adaptive HTTP Streaming
`The Media Presentation framework as introduced in section 12.2 is instantiated in this section using the 3GP File
`Format as specified in [50]. This instantiation is referred to as'3GPP Adaptive HTTP Streaming'. A 3GPP Adaptive
`HTTP Streaming service is described by an MPD as specified in section 12.2.5. The MIME type of the MPD shall be
`'video/vnd.3gpp.mpd'. The mimeType attribute of each Representation shall be provided according to RFC 4281 [107]
`and Annex A of TS 26.244 [50]. Segment Types and Formats according to 12.4.2 shall be used.
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`96
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`12.4.2 Segment Types and Formats
`
`Segment Types
`12.4.2.1
`3GPP Adaptive HTTP Streaming defines a Segment format that is used in the delivery of media data over HTTP. A
`Segment shall contain one or more boxes in accordance with the boxed structure of the ISO-base media file format
`[ 104].
`Three different Segment types are defined for 3GPP adaptive HTTP streaming.
`Initialisation Segment with a MIME type as defined in Annex A of TS 26.244 [50] .
`1.
`2. Media Segment with a MIME type 'video/vnd.3gpp.segment' if accessed through a URL without byte
`ranges or as defined in Annex A of TS 26.244 [50] if accessed through a URL with byte ranges.
`3. Self-Initialising Media Segment with a MIME type as defined in Annex A of TS 26.244 [50] .
`NOTE: the MIME type for Media Segments is defined in Annex A.1.4 of TS 26.244 [50].
`
`•
`
`For 3GPP adaptive HTTP streaming the following applies:
`• In all cases for which a Representation contains more than one Media Segment, the following applies:
`The Initialisation Segment as defined in section 12.4.2.2 shall be present. The Initialisation Segment
`shall be available to the HTTP Streaming Client before any Media Segment is processed within the
`Representation.
`• Media Segments shall not be self-initialising. The Media Segment format is defined in section
`12.4.2.3.
`• In case a Representation contains only a single Media Segment, then either one of the following two options is
`used:
`1. An Initialisation Segment as defined in section 12.4.2.2 and one Media Segment as defined in section
`12.4.2.3.
`
`2. One Self-Initialising Media Segment as defined in section 12.4.2.4.
`
`Initialisation Segment Format
`12.4.2.2
`The Initialisation Segment is conformant with the 3GPP file format, adaptive streaming profile and shall be branded as
`'3gh9'.
`The Initialisation Segment consists of the 'ftyp' box, the 'moov' box, and optionally the 'pdin' box. The 'moov' box
`contains no samples (i.e. the entry count in the 'stts', 'stsc', and 'stco' boxes shall be set to 0) and is then very small in
`size. This reduces the start-up time significantly as the Initialisation Segment needs to be downloaded before any Media
`Segment can be processed.
`The 'mvex' box shall be contained in the 'moov' box to indicate that the client has to expect movie fragments. The
`'mvex' box also sets default values for the tracks and samples of the following movie fragments.
`The Initialisation Segment provides the client with the metadata that describes the media content. The client uses the
`information in the'moov' box to identify the available media components and their characteristics.
`The Initialisation Segment shall not contain any'moof or'mdat' boxes.
`
`Media Segment Format
`12.4.2.3
`The following constraints shall apply to a Media Segment conforming to Media Segment Format for 3GPP adaptive
`HTTP streaming:
`
`•
`
`Each Media Segment may contain an "stye" box.
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`97
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`• Each Media Segment contains one or more whole self-contained movie fragments. A whole, self-
`contained movie fragment is a movie fragment ("moof') box and a media data ("mdat")box that
`contains all the media samples referenced by the track runs in the movie fragment box.
`• Each "moof' box shall contain at least one track fragment.
`• The "moof' boxes shall use movie-fragment relative addressing. Absolute byte-offsets shall not be
`used. In a movie fragment, the durations by which each track extends should be as close to equal as
`practical. In particular, as movie fragments are accumulated, the track durations should remain close to
`each other and there should be no 'drift'.
`
`• Each "traF' box may contain a "tfad" box.
`• Each Media Segment may contain one or more "sidx" boxes. If present, the first "sidx" box shall be
`placed before any "moof' box and the subsegment documented by the first Segment Index box shall be
`the entire segment.
`
`12.4.2.4
`
`Self-Initialising Media Segment Format
`The following constraints shall apply to a Media Segment conforming to Self-Initialising Media Segment Format for
`3GPP adaptive HTTP strcaming:
`
`• The Self-Initialising Media Segment shall comply to the 3GP Adaptive-Streaming profile as specified in
`TS 26.244 [50].
`
`• Movie fragment ("moof') boxes may be present
`
`• Each "moot' box, if present, shall contain at least one track fragment.
`• The "moot' boxes, if present, shall use movie-fragment relative addressing. Absolute byte-offsets shall not
`be used. In a movie fragment, the durations by which each track extends should be as close to equal as
`practical. In particular, as movie fragments are accumulated, the track durations should remain close to
`each other and there should be no 'drift'.
`
`• Each "traF' box, if present, may contain a "tfad" box.
`• ASelf-Initialising Media Segment may contain one or more "sidx" boxes. If present, the first "sidx" box
`shall be placed before any "moot' box and the subsegment documented by the first "sidx" shall be the
`entire Media Segment.
`
`12.4.3 Usage on Server and Client
`3GPP Adaptive HTTP-Streaming uses 3GP files according to the 3GP Adaptive-Streaming profile as specified in TS
`26.244 [50]. Content may be prepared as 3GP files according to the 3GP Adaptive-Streaming profile. Initialisation
`Segments and Media Segments may be generated by segmenting such 3GP files. Segment Index "sidx" boxes may be
`pre-contained in 3GP files or may be generated during the segmentation process. Clients may store a concatenation of a
`received Initialisation Segment and a sequence of Media Segments to create a compliant 3GP file according to the
`Adaptive Streaming profile without accessing any media samples.
`NOTE: as specified in TS 26.244, the MPD may be linked or embedded in the "meta" box of the "moov" box. This
`enables clients to access the MPD from a 3GP file that was made available from other means than 3GPP
`Adaptive HTTP Streaming (e.g. progressive download).
`
`12.5 Media Codecs
`For HTTP-Streaming clients supporting a particular continuous media type, the corresponding media decoders are
`specified in section 7.2 for speech, 7.3 for audio, 7.4 for video and 7.9 for timed text.
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`98
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`12.6 Client Behaviour
`
`12.6.1
`
`Introduction
`
`The information on client behaviour is purely informative and does not imply any normative procedures on client
`implementations.
`
`12.6.2 Overview
`
`A 3GPP Adaptive HTTP Streaming client is guided by the information provided in the MPD. It is assumed that the
`client has access to the MPD. An example client behaviour is introduced. For providing a continuous streaming service
`to the user:
`
`I . The client parses the MPD and creates a list of accessible Segments for each Representation for the actual
`client-local time NOW taking into account the procedures specified in section 12.6.3.
`
`2. The client selects one or multiple Representations based on the information in the Representation attributes
`and other information, e.g. available bandwidth and client capabilities. Representations assigned to group 0
`are presented without any other Representation. Representations assigned to a non-zero group are typically
`presented in combination with Representations from groups other than their own, not including the group 0.
`For each Representation, the client acquires the Initialisation Segment, if present, and the Media Segments
`of the selected Representations.
`
`3. The client accesses the content by requesting Segments or byte ranges of Segments. The client requests the
`Media Segment of the selected Representation by using the generated Segment list.
`
`4. The client buffers media of at least minBu,~'erTime duration before starting the presentation. Once the
`presentation has started, the client continues consuming the media content by continuously requesting
`Media Segments or parts of Media Segments taking into account the MPD update and construction
`procedures in clause 12.6.3. The client may switch Representations taking into account updated MPD
`information and/or updated information from its environment, e.g. change of available bandwidth. With
`any request for a Media Segment containing a random access point, the client may switch to a different
`Representation.
`
`In the following a brief overview on Segment list generation, seeking, support for trick modes and switching
`Representations are provided.
`
`12.6.3 Segment List Generation
`
`12.6.3.1 General
`
`Assume that the HTTP-streaming client has access to an MPD. This section describes how a client may generate a
`Segment list as shown in Table 12.3 from an MPD at a specific client-local time NOW. In this descriprion, the term
`NOW is used to refer to 'the current value of the clock at the reference client when performing the construction of an
`MPD Instance from an MPD'. A client that is not synchronised with a HTTP Streaming server, which is in turn
`synchronised to UTC, may experience issues in accessing segments due to availability. HTTP Streaming clients should
`synchronize their clocks to a globally accurate time standard.
`
`Table 12.3 Segment List
`
`Parameter Name
`Se ments
`InitialisationSe ment
`URL
`
`MediaSe ment
`startTime
`
`Cardinali
`I
`0, 1
`1
`
`1 ... N
`1
`
`URL
`
`1
`
`Descrl lion
`Provides the Se ment URL list.
`Describes the Initialisation Se ment. [f not resent each Media Se ment is self-initialisin .
`The URL where to access the Initialisation Segment (the client would restrict the URL with a
`b to ran ~c if one is rovided in the MPD).
`ents.
`Describes the accessible Media Se
`1'he approximate start time of the Media Segment in the Period relative to the start time of
`Period. To obtain the start time of the Media Segment in the Media Presentation, the start
`time of the Period needs to be added for On-Demand services. For live services, in addition
`also the value o£the availabili StartTime attribute needs to be added.
`The URL where to access the Media Segment (the client would restrict the URL with a byte
`ran e if one is rovided in the MPD .
`
`ETSI
`
`
`
`3GPP TS 26.234 version 9.3.0 Release 9
`
`99
`
`ETSI TS 126 234 V9.3.0 (2010-06)
`
`Each Segmentlnfo element is used to generate a list of accessible Segments for each Representation.
`
`The following rules apply for SegmentlnfoDefault elements or Segmentlnfo elements in a MPD:
`
`•
`
`•
`
`•
`
`•
`
`The client uses URI reference resolution as discussed in section 12.2.4.2.1. If the MPD is known to be
`supplied using a URL and over a suitable protocol, that URL establishes a base URL for the segments
`URLs within the MPD. There may be a baseURL attribute on MPD level or in the SegmentlnfoDefault
`element on Period level or the Segmentinfo element. If the baseURL attribute supplied at any level is
`absolute, it gives the base URL for the levels below it. Otherwise the base URL for levels below it is
`formed from the base URL of the higher level composed with the value of the baseURL attribute.
`Normal URL composition may be used, using relative URLs, which are composed against a base URL.
`The composition of a relative URL with an effective base URL is done using normal URL Reference
`Resolution (see RFC 3986 [60], section 5.2).
`
`If the Segmentlnfo element contains a URLtemplate element, then the procedures in section 12.6.3.2 are
`used to generate a list of Media Segments.
`
`If the Segmentlnfo element contains one or more Url elements providing a set of explicit URL(s) for
`Media Segments, then the procedures in section 12.6.3.3 are used to generate a list of Media Segments.
`
`If the type attribute of the MPn is hive, then the restrictions on Media Segment Lists as provided in
`section 12.6.3.4.4 need to be taken into account.
`
`The client should only request Segments that are included in the segment list at time instant NnW.
`
`12.6.3.2 Template-based Generation of Media Segment List
`
`If the Segmentlnfo element contains a URLtemp[ate element, then the procedures in this section are used to generate a
`list of Media Segment parameters, i.e. segment URLs and start times, and no byte ranges are associated with the URLs.
`
`The Segment information for a Representation is obtained by combining the Segmentlnfo element with the
`SegmentlnfoDefault element on Period level. The duration attribute of the Segmentlnfo element overrides the same
`attribute of the SegmentlnfoDefaultelement on Period level.
`
`Assume that the Period duration is defined as PeriodDuration. For any Period in the MPD except for the last one, the
`PeriodDuration is obtained as the time difference between the start attribute of the next Period and the start attribute of
`the current Period. For the last Period in the MPD, the PeriodDuration is obtained as the time difference between the
`CheckTime as defined in section 12.2.5.4 or the end time of the Media Presentation and the UTC start time of the
`current Period.
`
`If the Segmentlnfo Element contains a sourceURL attribute, then this UrlTemplate is used as the valid UrlTemplate for
`this Representation. Otherwise, the sourceUrlTemplatePeriod attribute is present, and the URLtemplate element
`contains an id attribute; in this case the $RepresentationlD$ identifier in the sot~rceUrlTemplatePeriod attribute is
`replaced by the value of the id attribute and the result string is used as the sourceURL attribute in the UrlTemplate
`element that is valid for the current Representation.
`
`Assume that Media Segments within a Representation have been assigned consecutive indices i=1,2,3...., i.e. the first
`Medi