设置冗余清单的过程 - MediaLive

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

设置冗余清单的过程

在 MediaLive HLS输出中设置冗余清单分为两个部分。您必须在输出组中打开该功能。您还必须在输出名称和目标路径的设计中进行调整(与不实现冗余清单的HLS输出相比)。

以下字段专门与冗余清单有关:

  • HLS输出组 — 清单和区段 — 冗余清单字

设置冗余清单
  1. 与下游系统的操作员交谈,了解他们是否支持冗余清单。

  2. 查看输出目标的字段-发送到HTTP服务器中的信息。清单被视为从中 MediaLive输出。因此,有关输出目标的一般规则适用于冗余清单。

  3. URLs为这两条管道设计。对HLS文件有特殊要求。URLs请阅读相应的章节:

    这些规则为输出目标的字段-发送到HTTP服务器中的信息提供补充。

  4. 如果您还需要使用清单的自定义路径,请确保查看自定义路径的工作方式中的信息。在设计自定义路径时,必须考虑自定义路径的规则URLs。

  5. HLS输出组部分中,对于清单和区段,对于冗余清单,选择ENABLED。该字段适用于输出组中的所有输出。

  6. 按照设计,填写以下字段:

    • 输出组-HLS 群组目标部分

    • 输出组 — HLS 设置 — CDN 部分

    • Output group - Location - Directory structure (输出组 - 位置 - 目录结构)

    • Output group - Location - Segments per subdirectory (输出组 - 位置 - 每个子目录的分段)

    • HLS输出-输出设置-名称修饰符

    • HLS输出-输出设置-分段修改器

    • HLS输出组 — 位置 — Base URL Manifest(如果您还要设置自定义路径)

    • HLS输出组 — 位置 — 基本URL内容(如果您还要设置自定义路径)

有关此功能如何更改HLS清单内容的信息,请参阅HLS清单的媒体内容

该设置的结果

以下是有关冗余清单在三种故障场景中的工作方式的信息。

场景 A — 输入损失操作是发出输出

如果其中一个管道上的输入丢失并且 Input loss 操作字段设置为 EMIT_ OUTPUT,则会 MediaLive继续更新父清单和子清单。

从下游系统的角度来看,这两个管道的父清单或子清单都没有变化。媒体文件中的内容是填充内容,但这并不影响下游系统读取清单的方式。

方案 B — 输入损失操作是暂停输出

如果其中一条管道的输入丢失(例如,在管道 0 上),并且 “输入丢失” 操作字段设置为 PAUSE_ OUTPUT, MediaLive 则执行以下操作:

  • 它删除管道 0 的子清单列表。

  • 它向管道 0 的子清单位置发送请求以删除子清单。

读取管道 0 上的主清单的下游系统的结果:系统不再查找管道 0 的子清单列表。系统将在管道 0 主清单中查找替代子清单。如果它找到管道 1 的子清单,它将进行切换以读取该子清单。

读取管道 1 的主清单的下游系统不会受到影响,因为这些系统可能读取管道 1 的子清单(因为它们先出现在清单中)。

场景 C-管道故障

管道也可能会发生故障。该故障与输入故障不同。在管道发生故障时(例如,管道 0),将出现以下情况:

  • 输出停止。

  • 未删除管道 0 的主清单。它仍包含管道 0 的子清单列表。

  • 未更新子清单,因为没有生成新的媒体文件。子清单是过时的

  • 管道 1 的主清单没有发生变化。它仍包含管道 0(和管道 1)的子清单列表。

读取管道 0 的主清单的下游系统的结果:系统将查找管道 0 的子清单列表,但该清单将是过时的。如果系统可以检测到清单是过时的,它可能会返回到管道 0 主清单并搜索替代子清单。如果它找到管道 1 的子清单,它将进行切换以读取该子清单。

读取管道 1 的主清单的下游系统不受影响。这些系统可能读取管道 1 的子清单(因为它们先出现在清单中)。

注意

如果HLS输出的下游系统是 AWS Elemental MediaStore,则可以设置 MediaStore 为删除陈旧的输入。请参阅对象生命周期策略的组件。子清单被删除后,会回 MediaStore 退到遵循场景 B 的 “清单已删除” 逻辑。