Primary and backup DASH stream URLs

Publish streaming content to primary and backup locations.

To avoid interruptions in the distributed system, encoders should input primary and backup publishing and playback hostnames and primary and backup paths for a given stream. The same content (mpd, initialization segments, and media segments) should be simultaneously published to primary and backup paths.

Publish URLs

Use this syntax to publish primary and backup streams.

Stream type Hostname Path Example
Primary p-ep{stream_id}.i.akamaientrypoint.net dash/[stream_id]/[event_name] https://p-ep50002.i.akamaientrypoint.net/dash/50002/test79
Backup b-ep{stream_id}.i.akamaientrypoint.net dash/[stream_id]-b/[event_name] https://b-ep50002.i.akamaientrypoint.net/dash/50002-b/test79

Playback URLs

Configure your encoder to generate playback URLs for DASH.

  • Backup playback path: dash/live/{streamID}-b/{eventname}/{object}
    • https://testconfig-i.akamaized.net/dash/live/500002-b/test79/dash.mpd
    • https://testconfig-i.akamaized.net/dash/live/500002-b/test79/dash/5000kbps-10.m4s
  • Primary playback path: dash/live/{streamID}/{eventname}/{object}
    • https://testconfig-i.akamaized.net/dash/live/500002/test79/dash.mpd
    • https://testconfig-i.akamaized.net/dash/live/500002/test79/dash/5000kbps-10.m4s
  • Base playback URL: {customerhostname}-i.akamaized.net

The playback information is embedded in the manifest mpd file as two BaseURLs, as shown in this example:

<!--Encoder Streaming Server 1.3.5.20200511.28975 -->
<MPD type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" maxSegmentDuration="PT4.000S" minBufferTime="PT2.000S" minimumUpdatePeriod="PT2.000S" suggestedPresentationDelay="PT15.000S" timeShiftBufferDepth="PT1M" availabilityStartTime="1970-01-01T00:00:00Z" publishTime="2020-06-30T17:39:04Z" programDateTime="2020-06-30T17:40:13Z" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cenc="urn:mpeg:cenc:2013" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <Period id="6273F7C507CD458681761F561830F980" start="PT442637H41M46.520S">
        <AdaptationSet id="0" contentType="video" mimeType="video/mp4" minBandwidth="400000" maxBandwidth="1600000" minWidth="400" maxWidth="1280" minHeight="224" maxHeight="720" minFrameRate="25000/1000" maxFrameRate="25000/1000" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <InbandEventStream schemeIdUri="urn:scte:scte35:2013:xml" value="1" />
            <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015" value="CC1=English1;CC2=English2;CC3=chinese;CC4=Spanish" />
            <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
            <SegmentTemplate timescale="1000000" presentationTimeOffset="1593495706520382" duration="2000000" startNumber="796747853" media="$RepresentationID$-$Number$.m4s" initialization="$RepresentationID$-init.m4s" />
            <Representation width="400" height="224" frameRate="25000/1000" sar="1:1" codecs="avc1.4D4015" id="game25006_hd_400_video" bandwidth="400000" />
            <Representation width="640" height="360" frameRate="25000/1000" sar="1:1" codecs="avc1.4D401E" id="game25006_hd_800_video" bandwidth="800000" />
            <Representation width="1280" height="720" frameRate="25000/1000" sar="1:1" codecs="avc1.4D401F" id="game25006_hd_1600_video" bandwidth="1600000" />
        </AdaptationSet>
        <AdaptationSet id="1" contentType="audio" mimeType="audio/mp4" lang="eng" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
            <Role schemeIdUri="urn:neulion:audio:displayname" value="English" />
            <SegmentTemplate timescale="1000000" presentationTimeOffset="1593495706520382" duration="2000000" startNumber="796747853" media="$RepresentationID$-$Number$.m4s" initialization="$RepresentationID$-init.m4s" />
            <Representation audioSamplingRate="44100" codecs="mp4a.40.2" id="game25006_hd_1600_audio" bandwidth="128000">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
            </Representation>
        </AdaptationSet>
    </Period>
    <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2020-06-30T17:41:05.960382Z" />
</MPD>

If the player detects a 404 error on a segment request, it switches to an alternate stream and vice versa.