本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DASH 广告标记
MediaTailor
AWS Elemental MediaTailor 使用 SCTE-35 提示标记使用以下逻辑识别 DASH 清单中的可用广告:
-
Multi-period DASH:
Event在每个包含SpliceInsert或Period提TimeSignal示标记的广告中 MediaTailor 插入第一个广告。 MediaTailor忽略中的其他Event标记。Period -
Single-period DASH:
Event在每个广告中 MediaTailor 插入Period包含SpliceInsert或TimeSignal提示标记的广告。
默认情况下,将 DASH 清单作为多周期清单进行 AWS Elemental MediaTailor 管理。您可以更改配置以处理源服务器中的单周期 DASH 清单。有关信息,请参阅创建 MediaTailor 播放配置。
以下部分提供了有关 DASH 广告标记处理的更多详细信息,并提供了来自原始内容的装饰清单。
DASH 原始清单 XML 要求
必须正确格式化来源的 DASH 清单中的广告标记, MediaTailor 才能识别广告插播时间。以下主题以明确 XML 描述了这些格式要求。
SpliceInsert使用清晰的 XML
SpliceInsert透明 XML 中的广告标记必须包含以下内容:
-
EventStream必须具有以下属性:schemeIdUri=urn:scte:scte35:2013:xml -
Event必须坚持scte35:SpliceInfoSection -
scte35:SpliceInfoSection必须坚持scte35:SpliceInsert -
scte35:SpliceInsert必须具有以下属性:outOfNetworkIndicator="true"
例 SpliceInsert在 XML 中
在以下示例中,所需的 SCTE 标记以粗体显示。
<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> . . . </Period>
TimeSignal使用清晰的 XML
TimeSignal透明 XML 中的广告标记必须包含以下内容:
-
EventStream必须具有以下属性:schemeIdUri=urn:scte:scte35:2013:xml -
Event必须坚持scte35:SpliceInfoSection -
scte35:SpliceInfoSection必须坚持scte35:TimeSignal -
scte35:SpliceInfoSection还必须保持scte35:SegmentationDescriptor -
scte35:SegmentationDescriptor必须具有以下属性,其中值是有效的Cue-out 数字:segmentationTypeId="xx"
-
scte35:SegmentationDescriptor必须坚持scte35:SegmentationUpid
Cue-out 数字
以下是支持的提示数字。segmentationTypeId
| 分段消息 | segmentationTypeId 值 | 十六进制值 |
|---|---|---|
| 分销商广告结束 | 51 | 0x51 |
| 分销商广告开始 | 50 | 0x32 |
| 分销商安置机会已结束 | 55 | 0x37 |
| 分销商安置机会开始 | 54 | 0x36 |
| 结束休息 | 35 | 0x23 |
| 提供商广告结束 | 49 | 0x31 |
| 提供商广告开始 | 48 | 0x30 |
| 提供商叠加投放机会已结束 | 57 | 0x39 |
| 提供商叠加投放机会开始 | 56 | 0x38 |
| 提供商安置机会已结束 | 53 | 0x35 |
| 提供商安置机会开始 | 52 | 0x34 |
| 开始休息 | 34 | 0x22 |
例 TimeSignal在 XML 中
在以下示例中,所需的 SCTE 标记以粗体显示。
<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> . . . </Period>
DASH 起源清单 base64 编码的二进制要求
必须正确格式化来源的 DASH 清单中的广告标记, MediaTailor 才能识别广告插播时间。以下主题以 base64 编码的二进制文件描述了这些格式要求。
两者TimeSignal和 base64 编码清单中的SpliceInsert广告标记都必须包含以下内容:
-
EventStream必须具有以下属性:urn:scte:scte35:2014:xml+bin -
Event必须坚持scte35:Signal -
scte35:Signal必须scte35:Binary包含包含 base64 编码的二进制文件。
解码后的二进制文件必须提供splice_info_section与清晰 XML 广告标记所需信息相同的信息。
-
命令类型必须为
splice_insert()或time_signal() -
其他设置必须符合TimeSignal使用清晰的 XML和中所述的设置SpliceInsert使用清晰的 XML。
解码后的二进制必须提供 splice_info_section,且其信息集必须与清除 XML 在 scte35:SpliceInfoSection 元素中提供的相同。命令类型必须为 splice_insert() 或 time_signal(),且其他设置必须符合先前针对清除 XML 交付的描述。
以下示例显示了此选项,所需标记以粗体显示。
<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</scte35:Binary> </scte35:Signal> </Event> <Event presentationTime="1541436360" duration="24" id="30"> <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016"> <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary> </scte35:Signal> </Event> . . . </Period>
以下是先前示例中列出的第一个事件的解码二进制。splice_command_type 的设置为 5,这表示 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 } }