设置冗余清单的过程
在 MediaLive HLS 输出中设置冗余清单分为两个部分。您必须在输出组中打开该功能。您还必须调整输出名称和目的地路径设计(与未实施冗余清单的 HLS 输出相比)。
以下字段专门与冗余清单有关:
-
HLS output group - Manifests and Segments - Redundant manifests (HLS 输出组 - 清单和分段 - 冗余清单) 字段
设置冗余清单
-
与下游系统的操作员沟通以确定其是否支持冗余清单。
-
查看输出目标的字段 – 发送到 HTTP 服务器中的信息。清单被视为从 MediaLive 中输出的。因此,有关输出目标的一般规则适用于冗余清单。
-
设计两个管道的 URL。HLS 文件的 URL 具有特殊要求。请阅读相应的章节:
这些规则为输出目标的字段 – 发送到 HTTP 服务器中的信息提供补充。
-
如果您还需要使用清单的自定义路径,请确保查看自定义路径的工作方式中的信息。在设计 URL 时,您必须考虑自定义路径的规则。
-
在 HLS output group (HLS 输出组) 部分中,对于 Manifest and segments (清单和分段),为 Redundant manifest (冗余清单) 选择 ENABLED (已启用)。该字段适用于输出组中的所有输出。
-
按照设计,填写以下字段:
-
Output group - HLS group destination (输出组 - HLS 组目标) 部分
-
Output group - HLS settings - CDN (输出组 - HLS 设置 - CDN) 部分
-
Output group - Location - Directory structure (输出组 - 位置 - 目录结构)
-
Output group - Location - Segments per subdirectory (输出组 - 位置 - 每个子目录的分段)
-
HLS 输出 – 输出设置 – 名称修饰符
-
HLS 输出 – 输出设置 – 分段修饰符
-
HLS 输出组 – 位置 – 基本 URL 清单(如果您还要设置自定义路径)
-
HLS 输出组 – 位置 – 基本 URL 内容(如果您还要设置自定义路径)
-
有关该功能如何更改 HLS 清单内容的信息,请参阅HLS 清单的媒体内容。
该设置的结果
以下是有关冗余清单在三种故障场景中的工作方式的信息。
场景 A – 输入丢失操作是发出输出
如果输入在某个管道上丢失,并且输入丢失操作字段设置为 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 的“已删除清单”逻辑。