MPEG-DASH Playback
The BBC provides renditions of live streams using the MPEG Dynamic Adaptive Streaming over HTTP protocol, specifically the DVB profile of MPEG DASH defined in ETSI TS 103 285. The DVB profile restricts options in many cases where the core DASH specification is more open, and also adds the specification of client behaviours in some cases that the core specification leaves undefined.
The BBC further constrains client behaviours in the following ways:
Multiple ‘adaptation sets’
A DASH media presentation descriptor uses an ‘adaptation set’ structure to define a set of ‘representations’ that a client may switch between if implementing dynamic bitrate switching during playback. If more than one adaptation set is present with a given content type (i.e. contentType="audio"
), clients should not switch between adaptation sets dynamically during playback. When multiple adaptation sets with a given content type are present, at playback start, a client should therefore implement logic to avoid adaptation sets containing representations inappropriate for the playback environment (e.g. below the level of quality expected by the listener / above the level of bandwidth supported by the class of network connection). If multiple adaptation sets with the same content type are present and some of those adaptation sets lack a Role element with schemeIdUri="urn:mpeg:dash:role:2011"
and value="main"
, then clients should prefer to start playback with adaptation sets which do include such a Role element. Clients are expected to automatically identify and avoid adaptation sets (and representations) that they are not capable of consuming (e.g. due to lack of codec support).
Multiple BaseURL elements
A DASH media presentation descriptor may contain BaseURL elements defining additional URL elements to be used in constructing the URLs to retrieve media segments. When multiple BaseURL elements are present in an MPD, clients must use the algorithm described in ETSI TS 103 285 for BaseURL selection, so that the BBC may signal its current policies with respect to sharing traffic between CDN partners. The BBC reserves the right to change CDN traffic routing policies for MPEG DASH distribution with no other notification than changes to published media presentation descriptors. See ETSI TS 103 285, section 10.8.2.
Media Presentation Descriptor reloading
When an MPD includes a minimumUpdatePeriod
attribute, clients should not reload the MPD from BBC servers more frequently than the given value, unless called for by explicit signalling within media segments.
Live edge determination
For live streams, determination of the live edge (youngest media segment that a client may successfully request) is to be performed in terms of the availabilityStartTime attribute, together with knowledge of the current UTC time. Where the playback client’s clock cannot be assumed to be reasonably closely synchronized to UTC, the time source indicated by the <UTCTiming>
element with the media presentation description should be used to determine the offset between the client’s clock and UTC, and this offset included in the calculation of the live edge, per ETSI TS 103 285, section 4.7.3
HTTP Redirects
Clients must support HTTP redirects, in accordance with RFC 3986. Particular note should be made of section 5.1.3, which states:
If no base URI is embedded and the representation is not encapsulated
within some other entity, then, if a URI was used to retrieve the
representation, that URI shall be considered the base URI. Note that
if the retrieval was the result of a redirected request, the last URI
used (i.e., the URI that resulted in the actual retrieval of the
representation) is the base URI.
HTTP Keep-Alive
Clients must support the HTTP Keep-Alive protocol where multiple HTTP objects are to be retrieved from the same TCP connection.