

# DASH ad markers in AWS Elemental MediaPackage
<a name="dash-ad-markers"></a>

DASH EventStream elements are used to signal all SCTE-35 `time_signal` or `splice_insert` markers present in the source. When you configure the ad markers to use the XML signaling, all the SCTE-35 markers parameters will be described through multiple nested XML elements inside the Event element. When you configure the Ad markers to use the Binary signaling, all the SCTE-35 markers parameters will be described through a Signal element including a binary base64-encoded representation of the SCTE marker, nested inside the Event element.

For more information about the XML and Binary signaling schemes for DASH, see section 5.5.2 of the [DASH Industry Forum IOP Guidelines v5](https://dashif.org/docs/IOP-Guidelines/DASH-IF-IOP-Part5-v5.0.0.pdf).

The following table describes how to enable DASH ad markers in MediaPackage.

------
#### [ Console ]

To enable DASH ad markers when creating or editing an origin endpoint, in the MediaPackage console, under the DASH manifest settings, **SCTE configuration**, **Ad markers**, choose **XML** or **Binary**.

------
#### [ AWS CLI ]

To enable DASH ad markers for your origin endpoint, run one of the following commands in the AWS CLI replacing *region* with your own information:

```
aws --endpoint=https://mediapackagev2.region.amazonaws.com mediapackage --region region create-origin-endpoint --channel-id test_channel --id test
_endpoint  --dash-package "{\"AdMarkerDash\":\"XML\"}"
```

or

```
aws --endpoint=https://mediapackagev2.region.amazonaws.com mediapackage --region region create-origin-endpoint --channel-id test_channel --id test
_endpoint  --dash-package "{\"AdMarkerDash\":\"BINARY\"}"
```

------
#### [ API and SDK ]

 To learn how to enable DASH ad markers for DASH manifests on CMAF origin endpoints via the MediaPackage live API or AWS SDK, see the following: 
+ [MediaPackage Live API reference ](https://docs.aws.amazon.com/mediapackage/latest/apireference/origin_endpoints.html)
+ [AWS SDK](https://aws.amazon.com/getting-started/tools-sdks/)

------

## Example DASH manifest showing SCTE-35 EXT-X-DATERANGE signaling
<a name="example"></a>

This example shows a DASH manifest generated by MediaPackage using XML signal approach to signal a `splice_insert` event in the live stream.

```
<MPD id="0" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" minimumUpdatePeriod="PT2S" minBufferTime="PT5S" timeShiftBufferDepth="PT3M28.267S" suggestedPresentationDelay="PT10S" availabilityStartTime="2024-01-01T00:00:00.000000+00:00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:mspr="urn:microsoft:playready" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" publishTime="2024-04-06T15:19:18.000806+00:00">
  <Period id="1712416567334" start="PT2319H16M7S" duration="PT30S">
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event presentationTime="2013000" duration="2700000">
        <scte35:SpliceInfoSection duration="2700000" protocolVersion="0" ptsAdjustment="207000" tier="4095">
          <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program>
              <scte35:SpliceTime ptsTime="1806000"/>
            </scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="2700000"/>
          </scte35:SpliceInsert>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="415376840" contentType="video" mimeType="video/mp4" segmentAlignment="true">
      <SegmentTemplate timescale="60000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="6" presentationTimeOffset="1342000">
        <SegmentTimeline>
          <S t="1342000" d="56000"/>
          <S t="1398000" d="240000" r="6"/>
          <S t="3078000" d="60000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" bandwidth="200000" frameRate="30/1" codecs="avc1.42C01E" width="360" height="240"/>
    </AdaptationSet>
    <AdaptationSet id="415406662" contentType="video" mimeType="video/mp4" segmentAlignment="true">
      <SegmentTemplate timescale="60000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="6" presentationTimeOffset="1342000">
        <SegmentTimeline>
          <S t="1342000" d="56000"/>
          <S t="1398000" d="240000" r="6"/>
          <S t="3078000" d="60000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="400000" frameRate="30/1" codecs="avc1.42C01E" width="480" height="360"/>
    </AdaptationSet>
    <AdaptationSet id="972192134" contentType="audio" mimeType="audio/mp4" segmentAlignment="true" lang="und">
      <Label>und</Label>
      <SegmentTemplate timescale="48000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="6" presentationTimeOffset="1073600">
        <SegmentTimeline>
          <S t="1076032" d="44032"/>
          <S t="1120064" d="192512"/>
          <S t="1312576" d="191488"/>
          <S t="1504064" d="192512"/>
          <S t="1696576" d="191488"/>
          <S t="1888064" d="192512"/>
          <S t="2080576" d="191488"/>
          <S t="2272064" d="192512"/>
          <S t="2464576" d="48128"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="3" bandwidth="98709" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="98709" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2024-04-06T15:16:07.334Z"/>
  </Period>
</MPD>
```

This example shows a DASH manifest generated by MediaPackage using Binary signal approach to signal a `splice_insert` event in the live stream.

```
<MPD id="0" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" minimumUpdatePeriod="PT2S" minBufferTime="PT5S" timeShiftBufferDepth="PT54.400S" suggestedPresentationDelay="PT10S" availabilityStartTime="2024-01-01T00:00:00.000000+00:00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:mspr="urn:microsoft:playready" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" publishTime="2024-04-12T17:44:20.000866+00:00">
  <Period id="1712943821467" start="PT2465H43M41S" duration="PT30S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="90000">
      <Event presentationTime="2013000" duration="2700000">
        <Signal xmlns="http://www.scte.org/schemas/35/2016">
          <Binary>/DAlAAAAAyiYAP/wFAUAAABjAOCAABuOsIAAKTLgAAEBAQAAbK+RAw==</Binary>
        </Signal>
      </Event>
    </EventStream>
    <AdaptationSet id="415376840" contentType="video" mimeType="video/mp4" segmentAlignment="true">
      <SegmentTemplate timescale="60000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="5" presentationTimeOffset="1342000">
        <SegmentTimeline>
          <S t="1342000" d="56000"/>
          <S t="1398000" d="240000" r="6"/>
          <S t="3078000" d="60000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" bandwidth="200000" frameRate="30/1" codecs="avc1.42C01E" width="360" height="240"/>
    </AdaptationSet>
    <AdaptationSet id="415406662" contentType="video" mimeType="video/mp4" segmentAlignment="true">
      <SegmentTemplate timescale="60000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="5" presentationTimeOffset="1342000">
        <SegmentTimeline>
          <S t="1342000" d="56000"/>
          <S t="1398000" d="240000" r="6"/>
          <S t="3078000" d="60000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="400000" frameRate="30/1" codecs="avc1.42C01E" width="480" height="360"/>
    </AdaptationSet>
    <AdaptationSet id="972192134" contentType="audio" mimeType="audio/mp4" segmentAlignment="true" lang="und">
      <Label>und</Label>
      <SegmentTemplate timescale="48000" media="segment_$RepresentationID$_$Number$.mp4" initialization="segment_$RepresentationID$_0_init.mp4" startNumber="5" presentationTimeOffset="1073600">
        <SegmentTimeline>
          <S t="1073856" d="44032"/>
          <S t="1117888" d="192512"/>
          <S t="1310400" d="191488"/>
          <S t="1501888" d="192512"/>
          <S t="1694400" d="191488"/>
          <S t="1885888" d="192512"/>
          <S t="2078400" d="191488"/>
          <S t="2269888" d="192512"/>
          <S t="2462400" d="48128"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="3" bandwidth="96446" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="96446" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2024-04-12T17:43:41.467Z"/>
  </Period>
</MPD>
```