对于线性广播或直播 Feed,您的播放列表必须包含代表广告插播接合点的“CUE-OUT”和“CUE-IN”广告插入点。例如:
#EXT-X-CUE-OUT:DURATION=<time>
#EXT-X-CUE-IN
EXT-X-CUE-OUT 标记表示接合起始点,EXT-X-CUE-IN 标记表示接合结束点。EXT-X-CUE-OUT 应通过 EXT-X-CUE-IN(表示广告插播结束)终止。广告服务器会将 EXT-X-CUE-OUT 和 EXT-X-CUE-IN 之间的整个部分替换为相应的视频广告内容。
DURATION=<time> 是必需的,它可以是广告插播时段的大约时长(以秒为单位),也可以是浮点值(相当于 EXT-X-CUE-IN 和 EXT-X-CUE-OUT 之间的时间间隔)。或者,您可以将 EXT-X-CUE-OUT:<time> 替换成 #EXT-X-CUE-OUT:DURATION=<time>。
接合起始点和结束点
#EXTINF:10,
http://media.example.com/fileSequence7796.ts
#EXTINF:6,
http://media.example.com/fileSequence7797.ts
#EXT-X-CUE-OUT:DURATION=30
#EXTINF:4,
http://media.example.com/fileSequence7798.ts
#EXTINF:10,
http://media.example.com/fileSequence7799.ts
#EXTINF:10,
http://media.example.com/fileSequence7800.ts
#EXTINF:6,
http://media.example.com/fileSequence7801.ts
#EXT-X-CUE-IN
#EXTINF:4,
http://media.example.com/fileSequence7802.ts
#EXTINF:10,
http://media.example.com/fileSequence7803.ts
#EXTINF:3,
http://media.example.com/fileSequence7804.ts
DAI 广告服务器将 OUT 和 IN 之间的内容替换为 30 秒的广告视频内容
#EXTINF:10,
http://media.example.com/fileSequence7796.ts
#EXTINF:6,
http://media.example.com/fileSequence7797.ts
#EXT-X-CUE-OUT:DURATION=30
#EXTINF:10,
http://ads.example.com/fileSequence0001.ts
#EXTINF:10,
http://ads.example.com/fileSequence0002.ts
#EXTINF:10,
http://ads.example.com/fileSequence0003.ts
#EXT-X-CUE-IN
#EXTINF:4,
http://media.example.com/fileSequence7802.ts
#EXTINF:10,
http://media.example.com/fileSequence7803.ts
#EXTINF:3,
http://media.example.com/fileSequence7804.ts
缩短广告插播时长
要提前结束广告插播,编码器应在视频流的“CUE-IN”中发送,以指明 DAI 视频流应立即结束广告插播,并再次开始显示原始内容。
请注意,如果某个广告插播时间点提前结束,视频流活动监控工具仍会反映原始的“广告插播时长”“填充了广告的广告插播时长”和“投放了广告的广告插播时长”值。
再创建一个广告插播时间点
如果正在插播广告,则无法延长相应的广告插播时段,但编码器可以会向相应视频流中上一个广告插播时间点的“CUE-IN”后面发送另一个“CUE-OUT”,以另行创建一个广告插播时间点来播放刚刚决定添加的广告。
填满剩余的广告插播空间
如果没有要展示的广告,也没有可供填充的额外空间,用户会看到可选广告内容或基础内容,具体取决于在 Ad Manager 中配置直播时选择的广告插播设置。
直播支持的广告标记
直播内容中的广告插播支持以下标记:
这些标记类型由多种编码解决方案(包括 AWS Elemental)生成。
其格式如下所示:
CUE-OUT
#EXT-X-CUE-OUT:DURATION=10.50,K=V
#EXT-X-CUE-OUT:10.50,K=V
目前,Ad Manager 仅支持在 CUE-OUT 中以键值对的形式传递 BREAKID。
CUE-IN
#EXT-X-CUE-IN
CUE-OUT
#EXT-X-CUE:ID=31264,TYPE="SpliceOut",DURATION=30.00,TIME=77892728.264567
CUE-IN
这些标记没有明确的 CUE-IN 指标。它们会按以下格式标记 CUE-OUT 后面的每个片段:
#EXT-X-CUE:ID=31264,TYPE="SpliceOut",DURATION=30.00,TIME=77892728.264567,ELAPSED=5.00
这会指明某个片段在广告插播时间点内的位置。CUE-IN 标记是使用 ELAPSED 属性的值和片段时长计算得出的,用以指明插播时间点的最后一个片段。
CUE-OUT
#EXT-X-DATERANGE:ID="splice-80f",PLANNED-DURATION=90.5,START-DATE="2017-03-24T13:46:04Z",SCTE35-OUT=0xFC301B00000000000000FFF00A05000001027FDF000000
PLANNED-DURATION 属性的值用作预期的广告插播时长。
CUE-IN
#EXT-X-DATERANGE:ID="splice-7ef",START-DATE="2017-03-24T13:38:04Z",SCTE35-IN=0xFC301B00000000000000FFF00A05000000FF7F5F0000000000007B7BA160
CUE-OUT
#EXT-X-DATERANGE:ID="10561-1747162557",START-DATE="2025-05-13T18:55:57.908733Z",PLANNED-DURATION=14.981633,SCTE35-OUT=0xFC302C00000000000000FFF00506FF8C72D4FF0016021443554549000029417FC000001492FB00003000006F8A0803
PLANNED-DURATION 属性的值用作预期的广告插播时长。
CUE-IN
#EXT-X-DATERANGE:ID="10561-1747162557",START-DATE="2025-05-13T18:55:57.908733Z",END-DATE="2025-05-13T18:56:12.923733Z",DURATION=15.015,SCTE35-IN=0xFC302700000000000000FFF00506FF8C8773B50011020F43554549000029417F800000310000E0D93ABD
CUE-OUT
#EXT-X-DATERANGE:ID="30046-1747162557",START-DATE="2025-05-13T18:55:57.908733Z",PLANNED-DURATION=207.207,SCTE35-OUT=0xFC302E00000000000000FFF00506FF8C72D4FF00180216435545490000755E7FC000011C8E3600003400000000D1FBA2C8
PLANNED-DURATION 属性的值用作预期的广告插播时长。
CUE-IN
#EXT-X-DATERANGE:ID="30046-1747162557",START-DATE="2025-05-13T18:55:57.908733Z",END-DATE="2025-05-13T18:59:25.115733Z",DURATION=207.207,SCTE35-IN=0xFC302700000000000000FFF00506FF8D8F63350011020F435545490000755E7F800000350000A24B6E0F
CUE-OUT
#EXT-X-DATERANGE:ID="10561-1747162557",START-DATE="2025-05-13T18:55:57.908733Z",PLANNED-DURATION=14.981633,SCTE35-OUT=0xFC302F00015CE9AA1800FFF01405000000127FEFFEE51CEE007E003DCC50000112FF000A00084355454900000012C2A52C21
PLANNED-DURATION 属性的值用作预期的广告插播时长。
CUE-IN
添加示例
可以通过时间信号在 HLS 标记中指定 SCTE35 Splice In 和 Splice Out 指标。SCTE 信息以二进制格式提供,需要进行解码才能确定发送的信号类型。
CUE-OUT
#EXT-OATCLS-SCTE35:/DAlAAAAAAAAAP/wFAUAAA+if+/+INAJ0P4AKTLgAAAAAAAA9UTkTA==
CUE-IN
#EXT-OATCLS-SCTE35:/DAgAAAAAAAAAP/wDwUAAAPvf0//ahTGjwAAAAAAALda4HI=
必须对 SCTE-35 二进制(采用 base64 编码)数据进行解码和解析,以便确定该数据是否包含有效的 CUE-OUT/CUE-IN 以及所有插播时间点定位信息。
例如,以下二进制数据包含有效的 CUE-OUT 信号:
CUE-OUT
/DAsAAAAAyiYAP/wBQb/PVbrDQAWAhRDVUVJB48zWH//AAEuGvsAACIAAdRJqiI=
解码后的消息包含以下字段:
splice_command_type,此字段的值设为 6,用于指明这是时间信号segmentation_type_id,用于指明时间信号的类型
以下 segmentation_type_id 值被识别为有效的 CUE-OUT 时间信号:
34:广告插播开始
以下 segmentation_type_id 值(当 splice_command_type = 6 时)被识别为有效的 CUE-IN 时间信号:
35:广告插播结束
例如,以下二进制数据包含有效的 CUE-IN 信号:
CUE-IN
/DAnAAAAAyiYAP/wBQb/PX1ezQARAg9DVUVJB48zWH+/AAAjAAGwzKWt
必须对 SCTE-35 二进制(采用 base64 编码)数据进行解码和解析,以便确定该数据是否包含有效的 CUE-OUT/CUE-IN 以及所有插播时间点定位信息。
例如,以下二进制数据包含有效的 CUE-OUT 信号:
CUE-OUT
/DAxAAAAAAAAAP/wBQb//ciI8QAbAhlDVUVJXQk9EX/fAAEuK3sBBUMxNDY0MAEBpOBiAg==
解码后的消息包含以下字段:
splice_command_type,此字段的值设为 6,用于指明这是时间信号segmentation_type_id,用于指明时间信号的类型
以下 segmentation_type_id 值被识别为有效的 CUE-OUT 时间信号:
48:提供商广告开始
以下 segmentation_type_id 值(当 splice_command_type = 6 时)被识别为有效的 CUE-IN 时间信号:
49:提供商广告结束
例如,以下二进制数据包含有效的 CUE-IN 信号:
CUE-IN
/DAsAAAAAAAAAP/wBQb//e78sQAWAhRDVUVJXQk9EX+fAQVDMTQ2NDEBAaKNu/4=
必须对 SCTE-35 二进制(采用 base64 编码)数据进行解码和解析,以便确定该数据是否包含有效的 CUE-OUT/CUE-IN 以及所有插播时间点定位信息。
例如,以下二进制数据包含有效的 CUE-OUT 信号:
CUE-OUT
/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
解码后的消息包含以下字段:
splice_command_type,此字段的值设为 6,用于指明这是时间信号segmentation_type_id,用于指明时间信号的类型
以下 segmentation_type_id 值被识别为有效的 CUE-OUT 时间信号:
52:提供商广告投放机会开始
以下 segmentation_type_id 值(当 splice_command_type = 6 时)被识别为有效的 CUE-IN 时间信号:
53:提供商广告投放机会结束
例如,以下二进制数据包含有效的 CUE-IN 信号:
CUE-IN
/DAvAAAAAAAA///wBQb+cuN0EAAZAhdDVUVJSAAAjn+PCAgAAAAALKChijUCALdPwUA=
SCTE-35 标记的宏
如果您的 Feed 包含 EXT-OATCLS-SCTE35 或 EXT-X-DATERANGE 标记,则系统会自动提取元数据并通过自定义键值对提供元数据。您需要设置自定义键值对,并在生成广告代码时将其作为宏插入。
为 SCTE-35 字段设置新的自定义键值时,应使用自定义键(例如“scte35”),并将值设置为与 Feed 中的字段类型对应的宏:
| 宏 | 说明 |
|---|---|
%%SPLICE_INSERT_EVENT_ID%% |
SCTE35 消息中的无符号整数将作为十进制数字转换为字符串。 |
%%SPLICE_INSERT_UPID%% |
|
%%TIME_SIGNAL_EVENT_ID%% |
|
%%TIME_SIGNAL_UPID%% |
以小写十六进制字母的形式呈现,且没有 0x 前缀。 |
%%TIME_SIGNAL_UPID_RAW%% |
插入 SCTE 消息所含原始字节(初始字符串必须是有效的 UTF-8 编码字符串)。 |
%%AFMM_CBC%% |
会从接合信息中提取商业广告插播时间点代码(这是法国 AF2M 规范的一项要求)。 |