准备就绪:设置 SCTE -35 来源 — 区段或清单 - MediaLive

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

准备就绪:设置 SCTE -35 来源 — 区段或清单

如果频道中有HLS输入,则必须将输入配置为标识 SCTE -35 消息的来源。有两个可能的来源:

  • 传输流 (TS) 中的分段。这种类型的源适用于所有可能包含 SCTE -35 条消息的输入。除非选择特定的 SCTE -35 数据包标识符 (PID),否则将使用 TS 中PID存在的第一个数据包标识符。

  • HLS输入清单中的标签。这种类型的源仅适用于HLS输入。

在非HLS输入中设置源
  1. 创建/编辑频道页面的导航窗格中,选择输入附件。

  2. 在 “常规输入设置” 中,填写以下字段:

    • SCTE-35 PID:输入PID值。如果该值留空,则将选择输入中PID存在的第一个 SCTE -35。

  3. 如果合适,请对其他 “输入” 附件重复此操作。

注意

您只需要按照以下步骤进行HLS输入。对于所有其他输入,SCTE-35 消息的来源始终是 TS 段。

在HLS输入中设置源
  1. 创建/编辑频道页面的导航窗格中,选择输入附件。

  2. 对于每个HLS输入,在网络输入设置中,在HLS输入设置中,选择HLS输入。此时将显示更多字段。

  3. 将 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 步:在 “输入” 附件的 “缓冲区” 段中输入该数字(或更大的数字)。