E.2 Hybrid Service Offering with Unicast Fallback
26.3473GPPApplication Programming Interface and URLMultimedia Broadcast/Multicast Service (MBMS)Release 17TS
E.2.1 Description
A sportscaster distributes a DASH-over MBMS service using the HEVC 720p HD signal over MBMS broadcast as it is aware that most of the devices are able to decode this content. The sportscasters’ announcement track of the game in English is broadcast as well.
In addition the sportscaster delivers one or more program elements exclusively over the unicast bearer. As an example, an MBMS User Service comprising DASH-formatted streaming content for a live football game is broadcast in the Los Angeles metropolitan area, in which there is a significant Hispanic population. The sportscasters’ announcement track of the game in English is broadcast, whereas the Spanish version of the announcement track is solely delivered over unicast.
In addition, the broadcaster has access to the content also in HDR and offers the content using the newly defined HDR FullHD profile as defined in Rel-15 of TS26.116 over unicast, offered in the same DASH-formatted service offering.
At the same time, the sportscaster also enables unicast fallback if the UE is out service coverage. For this purpose, a unified MPD is offered that contains all components of the service and provides also resources for broadcast distribution and unicast fallback.
The sportscaster desires that devices use the broadcast offered Representations in the following cases:
1) the client is in broadcast coverage and the user selects the HEVC 720p HD representation (coming over broadcast),
2) the client is in broadcast coverage and the user selects the English language (coming over broadcast)
3) the client is in broadcast coverage and the client is only capable to use HEVC 720p, but not the HDR FullHD profile.
E.2.2 Assumed MBMS User Service Description Signalling
In the User Service Description Signalling, the USDB contains the r12:appService element as part of the USD that contains the following information:
<r12:appService appServiceDescriptionURI="http://www.example.com/MPD2.mpd" mimeType="application/dash+xml;profiles=urn:3GPP:PSS:profile:DASH10">
</r12:appService>
In addition, the MBMS receiver has access to r12:broadcastAppService and r12:unicastAppService element as follows:
<r12:broadcastAppService>
<r12:basePattern>http://example.com/bc</r12:basePattern>
</r12:broadcastAppService>
<r12:unicastAppService>
<r12:basePattern>http://example.com/uc</r12:basePattern>
</r12:unicastAppService>
<r15:supplementaryUnicastAppService>
<r15:basePattern>http://example.com/suc</r15:basePattern>
</r15:supplemenaryUnicastAppService>
E.2.3 Assumed DASH MPD
It is assumed that the MPD referenced as http://www.example.com/MPD2.mpd in the User Service Description contains the following information:
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
type="dynamic" minimumUpdatePeriod="PT10s"
timeShiftBufferDepth="PT600S"
minBufferTime="PT2S"
profiles="urn:3GPP:PSS:profile:DASH10"
publishTime="2014-10-17T17:17:05Z"
availabilityStartTime="2014-10-17T17:17:05Z">
<Location>http://www.example.com/MPD2.mpd</Location>
<Period id="1" start="PT0S">
<SegmentTemplate media="./$RepresentationID$/$Number$.m4s" initialization="$RepresentationID$-init.mp4"/>
<!– Video 720p –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.1.2.L93.B0" startWithSAP="1" maxWidth="1280" maxHeight="720" frameRate="30" profile="urn:3GPP:video:op:h265-720p-HD">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="v2048" bandwidth="2048000">
<BaseURL> http://example.com/bc</BaseURL>
</Representation>
<Representation id="v1024" bandwidth="1024000"/>
<Representation id="v512" bandwidth="512000"/>
<Representation id="v128" bandwidth="128000"/>
</AdaptationSet>
<!– Video HDR –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.2.4.L113.B0" startWithSAP="1" maxWidth="1920" maxHeight="1080" frameRate="30" profile="urn:3GPP:video:op:h265-Full-HD-HDR">
<BaseURL> http://example.com/suc</BaseURL>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="8M" bandwidth="8192000">
<Representation id="6M" bandwidth="6144000"/>
<Representation id="4M" bandwidth="4096000"/>
<Representation id="2M" bandwidth="2048000"/>
</AdaptationSet>
<!– Audio English –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="en">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<BaseURL> http://example.com/bc</BaseURL>
</Representation>
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
<!– Audio Spanish –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="es">
<BaseURL> http://example.com/suc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
</Period>
</MPD>
E.2.4 MBMS Client acting as DASH Server
It is assumed now that the MBMS client acts as DASH Server. In this case the MBMS client offers the MPD at a localhost URL as http://localhost/MPD2.mpd. The MBMS client acts as a partial proxy, i.e. only the MPD is proxied through the MBMS client.
In broadcast coverage, the MBMS client of offers the MPD such that only broadcast related Base URLs and supplemental Base URLs are available. It also rewrites the URLs and makes sure that the update period is frequent in order to make the DASH client aware of potential changes. The changed information is highlighted in bold and strikethrough compared to the MPD above:
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
type="dynamic" minimumUpdatePeriod="0"
timeShiftBufferDepth="PT600S"
minBufferTime="PT2S"
profiles="urn:3GPP:PSS:profile:DASH10"
publishTime="2014-10-17T17:17:05Z"
availabilityStartTime="2014-10-17T17:17:05Z">
<Location>http://localhost/MPD2.mpd</Location>
<Period id="1" start="PT0S">
<SegmentTemplate media="./$RepresentationID$/$Number$.m4s" initialization="$RepresentationID$-init.mp4"/>
<!– Video 720p –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.1.2.L93.B0" startWithSAP="1" maxWidth="1280" maxHeight="720" frameRate="30" profile="urn:3GPP:video:op:h265-720p-HD">
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="v2048" bandwidth="2048000">
<BaseURL>http://localhost</BaseURL>
</Representation>
</AdaptationSet>
<!– Video HDR –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.2.4.L113.B0" startWithSAP="1" maxWidth="1920" maxHeight="1080" frameRate="30" profile="urn:3GPP:video:op:h265-Full-HD-HDR">
<BaseURL> http://example.com/suc</BaseURL>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="8M" bandwidth="8192000">
<Representation id="6M" bandwidth="6144000"/>
<Representation id="4M" bandwidth="4096000"/>
<Representation id="2M" bandwidth="2048000"/>
</AdaptationSet>
<!– Audio English –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="en">
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<BaseURL>http://localhost</BaseURL>
</Representation>
</AdaptationSet>
<!– Audio Spanish –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="es">
<BaseURL>http://example.com/suc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
</Period>
</MPD>
Once the MBMS moves out of broadcast coverage the MPD is rewritten again as follows:
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
type="dynamic" minimumUpdatePeriod="0"
timeShiftBufferDepth="PT600S"
minBufferTime="PT2S"
profiles="urn:3GPP:PSS:profile:DASH10"
publishTime="2014-10-17T17:17:05Z"
availabilityStartTime="2014-10-17T17:17:05Z">
<Location>http://localhost/MPD2.mpd</Location>
<Period id="1" start="PT0S">
<SegmentTemplate media="./$RepresentationID$/$Number$.m4s" initialization="$RepresentationID$-init.mp4"/>
<!– Video 720p –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.1.2.L93.B0" startWithSAP="1" maxWidth="1280" maxHeight="720" frameRate="30" profile="urn:3GPP:video:op:h265-720p-HD">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="v2048" bandwidth="2048000">
</Representation>
<Representation id="v1024" bandwidth="1024000"/>
<Representation id="v512" bandwidth="512000"/>
<Representation id="v128" bandwidth="128000"/>
</AdaptationSet>
<!– Video HDR –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.2.4.L113.B0" startWithSAP="1" maxWidth="1920" maxHeight="1080" frameRate="30" profile="urn:3GPP:video:op:h265-Full-HD-HDR">
<BaseURL> http://example.com/suc</BaseURL>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="8M" bandwidth="8192000">
<Representation id="6M" bandwidth="6144000"/>
<Representation id="4M" bandwidth="4096000"/>
<Representation id="2M" bandwidth="2048000"/>
</AdaptationSet>
<!– Audio English –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="en">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
</Representation>
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
<!– Audio Spanish –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="es">
<BaseURL> http://example.com/suc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
</Period>
</MPD>
E.2.5 MBMS Client acting as DANE
It is assumed now that the MBMS client acts as DANE. In this case the MBMS client offers the MPD at a localhost URL as http://localhost/MPD2.mpd. The MBMS client acts as a partial proxy, i.e. only the MPD is proxied through the MBMS client. The following MPD is provided, independent of the coverage situation.
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
type="dynamic" minimumUpdatePeriod="0"
timeShiftBufferDepth="PT600S"
minBufferTime="PT2S"
profiles="urn:3GPP:PSS:profile:DASH10"
publishTime="2014-10-17T17:17:05Z"
availabilityStartTime="2014-10-17T17:17:05Z">
<Location>http://localhost/MPD2.mpd</Location>
<Period id="1" start="PT0S">
<SegmentTemplate media="./$RepresentationID$/$Number$.m4s" initialization="$RepresentationID$-init.mp4"/>
<!– Video 720p –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.1.2.L93.B0" startWithSAP="1" maxWidth="1280" maxHeight="720" frameRate="30" profile="urn:3GPP:video:op:h265-720p-HD">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="v2048" bandwidth="2048000">
<BaseURL>http://localhost</BaseURL>
</Representation>
<Representation id="v1024" bandwidth="1024000"/>
<Representation id="v512" bandwidth="512000"/>
<Representation id="v128" bandwidth="128000"/>
</AdaptationSet>
<!– Video HDR –>
<AdaptationSet mimeType="video/mp4" codecs="hvc1.2.4.L113.B0" startWithSAP="1" maxWidth="1920" maxHeight="1080" frameRate="30" profile="urn:3GPP:video:op:h265-Full-HD-HDR">
<BaseURL> http://example.com/suc</BaseURL>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>
<EssentialDescriptor schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
<SegmentTemplate timescale="30" duration="60"/>
<Representation id="8M" bandwidth="8192000">
<Representation id="6M" bandwidth="6144000"/>
<Representation id="4M" bandwidth="4096000"/>
<Representation id="2M" bandwidth="2048000"/>
</AdaptationSet>
<!– Audio English –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="en">
<BaseURL> http://example.com/uc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<BaseURL>http://localhost</BaseURL>
</Representation>
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
<!– Audio Spanish –>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" startWithSAP="1" language="es">
<BaseURL> http://example.com/suc</BaseURL>
<SegmentTemplate timescale="20" duration="40"/>
<Representation id="a128" bandwidth="128000">
<Representation id="a64" bandwidth="64000">
</AdaptationSet>
</Period>
</MPD>
Along with every MPD request, an HTTP-URL is offered in the HTTP header as follows SAND-header-field=MPEG-DASH-SAND:http://localhost/MBMS.sand
In broadcast coverage, the following SAND messages is provided.
<SAND>
<Status baseURL="http://localhost/">
<ResourceStatus status="cached"/>
</Status>
<Status baseURL="http://example.com/uc">
<ResourceStatus status="unavailable"/>
</Status>
<Status baseURL="http://example.com/suc">
<ResourceStatus status="available"/>
</Status>
</SAND>
If the MBMS client is outside coverage, the following SAND messages is provided.
<SAND>
<Status baseURL="http://localhost/">
<ResourceStatus status="unavailable"/>
</Status>
<Status baseURL="http://example.com/uc">
<ResourceStatus status="available"/>
</Status>
<Status baseURL="http://example.com/suc">
<ResourceStatus status="available"/>
</Status>
</SAND>
Annex F (informative) :
User Service Description templates for use with ROM Service Announcement MBMS URLs