本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
准备就绪:设置 SCTE -35 来源 — 区段或清单
如果频道中有HLS输入,则必须将输入配置为标识 SCTE -35 消息的来源。有两个可能的来源:
-
传输流 (TS) 中的分段。这种类型的源适用于所有可能包含 SCTE -35 条消息的输入。除非选择特定的 SCTE -35 数据包标识符 (PID),否则将使用 TS 中PID存在的第一个数据包标识符。
-
HLS输入清单中的标签。这种类型的源仅适用于HLS输入。
在非HLS输入中设置源
-
在创建/编辑频道页面的导航窗格中,选择输入附件。
-
在 “常规输入设置” 中,填写以下字段:
-
SCTE-35 PID:输入PID值。如果该值留空,则将选择输入中PID存在的第一个 SCTE -35。
-
-
如果合适,请对其他 “输入” 附件重复此操作。
注意
您只需要按照以下步骤进行HLS输入。对于所有其他输入,SCTE-35 消息的来源始终是 TS 段。
在HLS输入中设置源
-
在创建/编辑频道页面的导航窗格中,选择输入附件。
-
对于每个HLS输入,在网络输入设置中,在HLS输入设置中,选择HLS输入。此时将显示更多字段。
-
将 SCTE -35 source 设置为 SEGMENTS(默认)或MANIFEST。
支持的清单格式
如果您设置为使用HLS输入清单作为 SCTE -35 来源,请阅读以下章节。
MediaLive 可以从源清单中的 EXT-X-OUT 和可选的 CUE-EXT X -IN 标签生成SCTE35拼CUE接插入消息。HLS以下是这些标签支持的格式示例。
-
#EXT-X-CUE-OUT:DURATION=60.000
-
#EXT-X-CUE-OUT:DURATION="60.000"
-
#EXT-X-CUE-OUT:60.000
-
#EXT-X-CUE-OUT:"60.000"
-
#EXT-X-CUE-IN
如何 MediaLive 创建 SCTE -35 消息
为每EXT-X-CUE-OUT
条消息 MediaLive 创建一个 splice insert 类型的 SCTE -35 消息,其中包含以下数据:
-
splice_event_id
: 一个递增的数字,从 1 开始表示第一CUE条从当前输入中 MediaLive 创建的OUT消息。 -
out_of_network_indicator
: 没错 (1) -
program_splice_flag
: 没错 (1) -
duration_flag
: 没错 (1) -
break_duration
:-
auto_return
:1 -
reserved
:0 -
duration
:清单中的持续时间,转换为 90 个kHz 报价。例如,15 秒等于 1350000 个滴答作响。
-
-
splice_immediate_flag
: 0(假) -
splice_time
: 在输入清单PTS中使用这个 EXT-X CUE-之后的视频片段第一帧OUT的视频 -
unique_program_id
:0 -
avail_num
: 一个递增的数字,从 1 开始表示第一CUE条从当前输入中 MediaLive 创建的OUT消息。 -
avails expected
:0
为每EXT-X-CUE-IN
条消息 MediaLive 创建一个 splice insert 类型的 SCTE -35 消息,其中包含以下数据:
-
splice_event_id
: 清单中最新的 EXT-X CUE-OUT 中的 ID。 -
out_of_network_indicator
: 假 (0) -
program_splice_flag
: 没错 (1) -
duration_flag
: 假 (0) -
splice_immediate_flag
: 0(假) -
splice_time
: 在输入清单PTS中使用此 EXT-X CUE-IN 之后的视频片段第一帧的视频 -
unique_program_id
:0 -
avail_num
: 最近的 EXT-X-CUE-中的值 OUT -
avails expected
:0
如何 MediaLive 插入消息:preroll
MediaLive 当它插入与-对应的 SCTE -35 消息时,它会包含预览。CUE OUT此预览片比 -35 消息中的 splice_time 提前 5 秒。SCTE
MediaLive 如果频道没有足够的缓冲空间来允许预先播放,则会减少前置片段。以秒为单位的缓冲区是以下各项的乘积:
-
输入分段持续时间,在输入清单中指定
-
要包含在缓冲区中的段数。附加HLS输入时,可以在缓冲区段字段中设置此值。
例如,如果分段持续时间为 6 秒,分段数为 3,则缓冲区为 18 秒。
确保有足够的预贴片
如果计算出的输入缓冲区短于 5 秒,则 MediaLive 会减少预滚动。 MediaLive 可能会将前置卷减少到 0,这意味着SCTE35消息的PTS值等于PTS拼接时间。
为避免前置卷不足,我们建议您确保缓冲区至少等于预卷加上一个片段。按照以下步骤进行操作:
-
第 1 步:计算输入的最小缓冲区(以秒为单位):Preroll 以秒为单位 + 一个片段的长度(以秒为单位)
-
步骤 2:计算该最小缓冲区中的分段数:将最小缓冲区除以分段长度
-
第 3 步:将最小值四舍五入为整数。或者该最小值小于 3,将该数字四舍五入到 3。
-
第 4 步:在 “输入” 附件的 “缓冲区” 段中输入此数字(如果需要,可以输入更大的数字)。
例如,假设分段长度为 2 秒。
-
步骤 1:5 + 2 = 7
-
步骤 2:7 秒除以 2 = 3.5
-
步骤 3:向上四舍五入。
-
第 4 步:在 “输入” 附件的 “缓冲区” 段中输入该数字(或更大的数字)。