AWS Elemental MediaTailor identifies ad avails in a DASH manifest by splice insert and time signal cue-out markers, as follows:
-
In a multi-period DASH manifest, a
Period
is considered an ad avail when the firstEvent
in its event stream contains splice insert or time signal cue-out markers. In multi-period DASH, MediaTailor ignores all but the first event in a period. -
In a single-period DASH manifest, an
Event
is considered an ad avail when it contains splice insert or time signal cue-out markers.
By default, AWS Elemental MediaTailor manages DASH manifests as multi-period manifests. You can change your configuration to handle single-period DASH manifests from your origin server. For information, see Creating a configuration.
You can provide ad markers in clear XML or in base64-encoded binary:
Clear XML
The event stream schemeIdUri
must be set to
urn:scte:scte35:2013:xml
, and the event must have
scte35:SpliceInfoSection
markers containing one of the following:
-
scte35:SpliceInsert
withoutOfNetworkIndicator
set totrue
The following example shows this option, with the required markers in bold.
<Period start="PT444806.040S" id="123586" duration="PT15.000S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="1350000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095"> <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="1350000"/> </scte35:SpliceInsert> </scte35:SpliceInfoSection> </Event>
-
scte35:TimeSignal
accompanied byscte35:SegmentationDescriptor
scte35:SegmentationUpid
withsegmentationTypeId
set to one of the following cue-out numbers:-
0x22 (start break)
-
0x30 (provider advertisement start)
-
0x32 (distributor advertisement start)
-
0x34 (provider placement opportunity start)
-
0x36 (distributor placement opportunity start)
The following example shows this option, with the required markers in bold. The
segmentationTypeId
in this example is set to 52, equivalent to 0x34.<Period start="PT346530.250S" id="178443" duration="PT61.561S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="5310000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095"> <scte35:TimeSignal> <scte35:SpliceTime ptsTime="3442857000"/> </scte35:TimeSignal> <scte35:SegmentationDescriptor segmentationEventId="1414668" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid> </scte35:SegmentationDescriptor> </scte35:SpliceInfoSection> </Event>
-
Base64-encoded binary
The event stream schemeIdUri
must be set to
urn:scte:scte35:2014:xml+bin
, and the event must have
scte35:Signal
scte35:Binary
that contains a base64-encoded binary. The decoded binary must
provide a splice_info_section
with the same set of information as the clear
XML would provide in a scte35:SpliceInfoSection
element. The command type
must be either splice_insert()
or time_signal()
, and the
additional settings must comply with those described previously for clear XML delivery.
The following example shows this option, with the required markers in bold.
<Period start="PT444806.040S" id="123586" duration="PT15.000S"> <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1"> <Event presentationTime="1541436240" duration="24" id="29"> <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016"> <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</Binary> </scte35:Signal> </Event> <Event presentationTime="1541436360" duration="24" id="30"> <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016"> <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</Binary> </scte35:Signal> </Event>
The following is the decoded binary for the first event listed in the preceding example.
The setting for splice_command_type
is 5, which indicates
splice_insert
.
{ "table_id": 252, "section_syntax_indicator": false, "private_indicator": false, "section_length": 33, "protocol_version": 0, "encrypted_packet": false, "encryption_algorithm": 0, "pts_adjustment": 0, "cw_index": 0, "tier": "0xFFF", "splice_command_length": 16, "splice_command_type": 5, "splice_command": { "splice_event_id": 448, "splice_event_cancel_indicator": false, "out_of_network_indicator": true, "program_splice_flag": true, "duration_flag": true, "splice_immediate_flag": false, "utc_splice_time": { "time_specified_flag": false, "pts_time": null }, "component_count": 0, "components": null, "break_duration": { "auto_return": false, "duration": { "pts_time": 2160000, "wall_clock_seconds": 24.0, "wall_clock_time": "00:00:24:00000" } }, "unique_program_id": 49152, "avail_num": 0, "avails_expected": 0 }, "splice_descriptor_loop_length": 0, "splice_descriptors": null, "Scte35Exception": { "parse_status": "SCTE-35 cue parsing completed with 0 errors.", "error_messages": [], "table_id": 252, "splice_command_type": 5 } }
For multi-period DASH manifests, AWS Elemental MediaTailor uses the first Event
that indicates ad placement in an event stream, and it ignores any additional
Event
markers in the stream. For single-period DASH manifests, MediaTailor
considers each Event
.