

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

# 设置冗余清单的过程
<a name="hls-rm-procedure"></a>

在 MediaLive HLS 输出中设置冗余清单分为两个部分。您必须在输出组中打开该功能。您还必须调整输出名称和目的地路径设计（与未实施冗余清单的 HLS 输出相比）。

以下字段专门与冗余清单有关：
+ **HLS output group - Manifests and Segments - Redundant manifests (HLS 输出组 - 清单和分段 - 冗余清单)** 字段

**设置冗余清单**

1. 与下游系统的操作员沟通以确定其是否支持冗余清单。

1. 查看[输出目标的字段 – 发送到 HTTP 服务器](hls-destinations-http.md)中的信息。清单被视为从中 MediaLive输出。因此，有关输出目标的一般规则适用于冗余清单。

1.  URLs 为这两条管道设计。对 HLS 文件有特殊要求。 URLs 请阅读相应的章节：
   + [适用于大多数下游系统的规则](hls-redundant-manif-most-systems.md) 
   + [Akamai 的规则 CDNs](hls-redundant-manif-akamai.md)

   这些规则为[输出目标的字段 – 发送到 HTTP 服务器](hls-destinations-http.md)中的信息提供补充。

1. 如果您还需要使用清单的自定义路径，请确保查看[自定义路径的工作方式](hls-manifests-how-work.md#hls-custom-manifest-paths)中的信息。在设计自定义路径时，必须考虑自定义路径的规则 URLs。

1. 在 **HLS output group (HLS 输出组)** 部分中，对于 **Manifest and segments (清单和分段)**，为 **Redundant manifest (冗余清单)** 选择 **ENABLED (已启用)**。该字段适用于输出组中的所有输出。

1. 按照设计，填写以下字段：
   + **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 清单的媒体内容](hls-rm-manifests-contents.md)。

## 该设置的结果
<a name="hls-redundant-manif-results"></a>

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

### 场景 A – 输入丢失操作是发出输出
<a name="hls-redundant-manif-results-emit"></a>

如果其中一个管道上的输入丢失并且[**输入丢失操作**字段](hls-other-features.md#hls-resiliency)设置为 **EMIT\_OUTPUT，则**会 MediaLive继续更新父清单和子清单。

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

### 场景 B – 输入丢失操作是暂停输出
<a name="hls-redundant-manif-results-pause"></a>

如果其中一条管道上的输入丢失（例如，在管道 0 上），并且 “**输入丢失” 操作**字段设置为 **PAUSE\_OUTPUT， MediaLive 则执行**以下操作：
+ 它删除管道 0 的子清单列表。
+ 它向管道 0 的子清单位置发送请求以删除子清单。

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

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

### 场景 C – 管道故障
<a name="hls-redundant-manif-results-pipeline-failure"></a>

管道也可能会发生故障。该故障与输入故障不同。在管道发生故障时（例如，管道 0），将出现以下情况：
+ 输出停止。
+ 未删除管道 0 的主清单。它仍包含管道 0 的子清单列表。
+ 未更新子清单，因为没有生成新的媒体文件。子清单是*过时的*。
+ 管道 1 的主清单没有发生变化。它仍包含管道 0（和管道 1）的子清单列表。

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

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

**注意**  
如果 HLS 输出的下游系统是 AWS Elemental MediaStore，则可以设置 MediaStore 为删除陈旧的输入。请参阅[对象生命周期策略的组件](https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.html)。子清单被删除后，会回 MediaStore 退到遵循场景 B 的 “清单已删除” 逻辑。