

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SCTE-35 广告时段的消息
<a name="ca-scte-35-messages"></a>

使用 MediaTailor，您可以根据来源位置和 VOD 源资源创建内容频道。然后，您可以根据频道的时间表为每个节目设置一个或多个广告时段。您可以使用基于 SCTE-35 规范的消息来限制内容是否有广告插播时间。例如，您可以使用 SCTE-35 消息来提供有关广告时段的元数据。有关 SCTE-35 规范的更多信息，请参阅[数字节目插入提示消息](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022)。

您可以通过以下两种方式之一来设置广告插播时间：
+ 正在附上一条 `time_signal` SCTE-35 消息和一条`segmentation_descriptor`消息。此`segmentation_descriptor`消息包含更高级的元数据字段，例如内容标识符，用于传达有关广告插播时间的更多信息。 MediaTailor 将广告元数据作为 `EXT-X-DATERANGE` (HLS) 或 `EventStream` (DASH) 广告标记的 SCTE-35 数据的一部分写入输出清单。
+ 附上一条 `splice_insert` SCTE-35 消息，提供有关广告插播时间的基本元数据。
+ HLS：
  + 当广告标记类型为时`Daterange`，在清单中将广告插播`EXT-X-DATERANGE`时间 MediaTailor 指定为标签。
  + 当广告标记类型为时`Scte35 Enhanced`，使用以下标签 MediaTailor 指定广告插播时间：
    + MediaTailor `EXT-X-CUE-OUT`在广告板的第一部分放置一个，表示从内容到广告插播时间已被切断。它包含广告插播的预期持续时间，例如`EXT-X-CUE-OUT:Duration=30`。
    + `>EXT-X-ASSET`：此标签与创建或更新程序 AdBreak 时提供的广告插播元数据出现在同一片段上，`EXT-X-CUE-OUT`并且包含该广告插播元数据。它总是包含`CAID`。
    + `EXT-OATCLS-SCTE35`：此标签与 SCTE-35 消息出现在同一段中，`EXT-X-CUE-OUT`并且包含 base64 编码字节。
    + `EXT-X-CUE-OUT-CONT`：此标签显示在广告列表中的每个后续细分中，并包含持续时间和经过的时间信息。它还包含 base64 编码的 SCTE-35 消息，以及. `CAID` 
    + `EXT-X-CUE-IN`：广告插播结束后，此标签会显示在第一段内容上，表示从广告插播到内容的剪辑。

下图显示了使用 SCTE-35 消息在频道中设置广告时段的两种方法：
+ 使用`splice_insert()`消息设置带有基本元数据的广告时段。
+ 将消息与`time_signal()`消息结合使用，设置带有更详细元数据的广告时段。`segmentation_descriptor()`

![\[使用 SCTE-35 消息在频道中设置广告时段的两种方法。\]](http://docs.aws.amazon.com/zh_cn/mediatailor/latest/ug/images/scte-35-splice-insert-vs-time-signal-segmentation-descriptor.png)


有关使用的信息`time_signal`，请参阅 2022 SCTE-35 规范第 9.7.4 节 “[数字节目插入提示消息”。](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022)

广告插播信息显示在输出的 `splice_info_section` SCTE-35 数据中。使用 MediaTailor，您可以将一条`segmentation_descriptor`消息与一条`time_signal`消息配对。

**注意**  
如果您发送`segmentation_descriptor`消息，则必须将其作为`time_signal`消息类型的一部分发送。该`time_signal`消息仅包含使用给定时间戳 MediaTailor 构造的`splice_time`字段。

下表描述了每`segmentation_descriptor`条消息 MediaTailor 所需的字段。有关更多信息，请参阅 2022 年 SCTE-35 规范第 10.3.3.1 节，您可以在 [ANSI](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022) 网上商店网站上购买该规范。


**`segmentation_descriptor`消息的必填字段**  

| 字段 | Type | 默认 值 | 说明 | 
| --- | --- | --- | --- | 
| segmentation\$1event\$1id | 整数 | 1 | 这是写给的segmentation\$1descriptor.segmentation\$1event\$1id。 | 
| segmentation\$1upid\$1type | 整数 | 14 (0x0E) | 这是写给的segmentation\$1descriptor.segmentation\$1upid\$1type。该值必须介于 0 和 256 之间（含）。 | 
| segmentation\$1upid | 字符串 | ""（空字符串） | 这是写给的segmentation\$1descriptor.segmentation\$1upid。该值必须是包含字符和的十六进制字符串。0-9 A-F | 
| segmentation\$1type\$1id | 整数 | 48 (0x30) | 这是写给的segmentation\$1descriptor.segmentation\$1type\$1id。该值必须介于 0 和 256 之间（含）。 | 
| segment\$1num | 整数 | 0 | 这是写给的segmentation\$1descriptor.segment\$1num。该值必须介于 0 和 256 之间（含）。 | 
| segments\$1expected | 整数 | 0 | 这是写给的segmentation\$1descriptor.segments\$1expected。该值必须介于 0 和 256 之间（含）。 | 
| sub\$1segment\$1num | 整数 | null | 这是写给的segmentation\$1descriptor.sub\$1segment\$1num。该值必须介于 0 和 256 之间（含）。 | 
| sub\$1segments\$1expected | 整数 | null | 这是写给的segmentation\$1descriptor.sub\$1segments\$1expected。该值必须介于 0 和 256 之间（含）。 | 

下表显示了为`segmentation_descriptor`消息的某些字段 MediaTailor 自动设置的值。


**为`segmentation_descriptor`消息 MediaTailor 的字段设置的值**  

| 字段 | Type | 值 | 
| --- | --- | --- | 
| segmentation\$1event\$1cancel\$1indicator | 布尔值 | True | 
| program\$1segmentation\$1flag | 布尔值 | True | 
| delivery\$1not\$1restricted\$1flag | 布尔值 | True | 

MediaTailor 始终将设置`segmentation_duration_flag`为`True`。 MediaTailor用状态内容的持续时间（以刻度为单位）填充该`segmentation_duration`字段。

**注意**  
 MediaTailor 发送`time_signal`消息时，它将`splice_info_section`消息中的`splice_command_type`字段设置为 6 (0x06)。

在 HLS 输出中，对于`AdBreak`带有`time_signal`消息的，输出`EXT-X-DATERANGE`标签包括一个设置为消息序列化版本的`SCTE-35``splice_info_section`字段。例如，以下`EXT-X-DATERANGE`标签显示`splice_info_section`消息的序列化版本：

```
#EXT-X-DATERANGE:ID=\"1\",START-DATE=\"2020-09-25T02:13:20Z\",DURATION=300.0,SCTE35-OUT=0xFC002C00000000000000FFF00506800000000000160214435545490000000100E000019BFCC00E0030000000000000
```

在 DASH 输出中，对于`AdBreak`带有`time_signal`消息的，输出`EventStream`元素包括一个以`scte35:TimeSignal`和`scte35:SpliceInfoSection`元素为子`scte35:SegmentationDescriptor`元素的元素。该`scte35:TimeSignal`元素有一个子`scte35:SpliceTime`元素，而该`scte35:SegmentationDescriptor`元素有一个子`scte35:SegmentationUpid`元素。例如，以下 DASH 输出显示了`EventStream`元素的子元素结构：

```
<EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
    <Event duration="27000000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
            <scte35:TimeSignal>
                <scte35:SpliceTime ptsTime="0" />
            </scte35:TimeSignal>
            <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="27000000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="48" segmentsExpected="0">
                <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">012345</scte35:SegmentationUpid>
            </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
</EventStream>
```

您学习了如何使用 SCTE-35 消息在频道集合中设置广告时段、这些消息的结构和必填字段，以及包含 SCTE-35 消息的 HLS 和 DASH 输出示例。