

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

# HLS 输出组中的目标字段
<a name="hls-destinations"></a>

中的 HLS 输出组 MediaLive 支持多种类型的目的地。每种类型都有不同的配置要求。

**Topics**
+ [输出目标的字段 – 发送到 Amazon S3](hls-destinations-s3.md)
+ [输出目的地的字段-发送到 MediaStore](hls-destinations-ems.md)
+ [输出目的地的字段-发送到 MediaPackage](hls-destinations-emp.md)
+ [输出目标的字段 – 发送到 HTTP 服务器](hls-destinations-http.md)

# 输出目标的字段 – 发送到 Amazon S3
<a name="hls-destinations-s3"></a>

在[计划 HLS 输出组的目标](origin-server-hls-s3.md)时，您可能已经决定将输出发送到 Amazon S3。您必须为输出设计一个或多个目标路径。然后，必须在控制台的相应字段中输入路径的不同部分。

**Topics**
+ [为输出目标设计路径。](hls-destinations-s3-design.md)
+ [在控制台上填写字段](hls-destinations-s3-specify.md)

# 为输出目标设计路径。
<a name="hls-destinations-s3-design"></a>

如果您尚未设计一个或多个完整目标路径，请执行此步骤。如果您已经设计了路径，请转到 [在控制台上填写字段](hls-destinations-s3-specify.md)。

**设计路径**

1. 收集您[之前从 Amazon S3 用户处获取](origin-server-hls-s3.md)的存储桶名称。例如：

   `amzn-s3-demo-bucket`

1. 设计目标路径中跟随一个或多个存储桶的部分。有关详细信息，请参阅以下部分。

**Topics**
+ [输出路径的语法](#hls-syntax-s3)
+ [设计文件夹和 baseFilename](#hls-path-s3)
+ [设计 nameModifier](#hls-nameModifier-design-s3)
+ [设计 segmentModifier](#hls-segmentModifier-design-s3)

## 输出路径的语法
<a name="hls-syntax-s3"></a>

HLS 输出始终包含三类文件：
+ 主清单
+ 子清单
+ 媒体文件

下表描述了构成这三类文件的目标路径的各个部分。

这三类文件的目标路径在 *baseFileN* ame 之前是相同的，这意味着 MediaLive 将所有这些类别的文件发送到同一个文件夹。每类文件的修饰符和文件扩展名都不同。发送到 Amazon S3 时，您必须将所有文件发送到同一个文件夹。下游系统希望所有文件都在一起。


| 文件 | 路径语法 | 示例 | 
| --- | --- | --- | 
| 主清单文件 | protocol bucket path baseFilename extension | 存储桶 *sports* 中主清单的路径，文件名*索引*为：s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index.m3u8 | 
| 子清单文件 | protocol bucket path baseFilename nameModifier extension | curling 输出的高分辨率格式副本的子清单路径`s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index-high.m3u8` | 
| 媒体文件（分段） | protocol bucket path baseFilename nameModifier optionalSegmentModifier counter extension | 第 230 个分段的文件的路径可能是：s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index-high-00230.ts | 

这些目标路径的构造如下：
+ Amazon S3 用户应该已经向您提供了存储桶名称。
+ 您必须确定以下内容：
  + 文件夹
  + baseFilename
  + 修饰符
  + segmentModifier

  请参阅以下各节。
+ MediaLive 在计数器前插入下划线。
+ MediaLiveautomatically 生成这个计数器。最初，这是一个从 00001 开始的五位数字，每次增加 1。即 00001、00002、00003 依此类推。在达到 99999 之后，下一个数字是 100000（六位数字），然后是 100001、100002，依此类推。然后从 999999 到 1000000（七位数字），依此类推。
+ MediaLive 在扩展名前插入圆点。
+ MediaLive 选择扩展名：
  + 对于清单文件 – 始终为 `.m3u8`
  + 对于媒体文件 — .ts 表示传输流中的文件，.mp4 表示 f 容器中的文件 MP4 

## 设计文件夹和 baseFilename
<a name="hls-path-s3"></a>

设计适合您目的的文件夹路径和 baseFilename。

如果每个输出有两个目标，则目标路径之间必须有所不同。请遵循以下准则：
+ 一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。

  因此，如果存储桶*不同*，则两个目标的文件夹路径和文件名可以彼此不同，也可以相同。例如：

  `s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index-high.m3u8`

  `s3ssl://amzn-s3-demo-bucket1/sports/delivery/curling/index-high.m3u8`

  或者

  `s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index-high.m3u8`

  `s3ssl://amzn-s3-demo-bucket1/sports/redundant/curling/index-high.m3u8`
+ 如果存储桶*相同*，则两个目标的文件夹路径和文件名必须彼此不同。例如：

  `s3ssl://amzn-s3-demo-bucket/sports/delivery/curling/index-high.m3u8`

  `s3ssl://amzn-s3-demo-bucket/sports/redundant/curling/index-high.m3u8`

## 设计 nameModifier
<a name="hls-nameModifier-design-s3"></a>

设计文件名的 `nameModifier` 部分。子清单和媒体文件在其文件名中包含该修饰符。该 `nameModifier` 将每个输出与其他输出区分开来，因此，它在每个输出中必须是唯一的。请遵循以下准则：
+ 对于包含视频（可能还包含其他流）的输出，您通常会描述视频。例如，**-high** 或 **-1920x1080-5500kpbs**（以描述分辨率和比特率）。
+ 对于仅包含音频或仅包含字幕的输出，您通常会描述音频或字幕。例如，**-aac** 或 **-webVTT**。
+ 最好以分隔符（例如连字符）为 `nameModifier` 开头，以便将 ` baseFilename` 与 `nameModifier` 分开。
+ `nameModifier` 可以包含[数据变量](variable-data-identifiers.md)。

## 设计 segmentModifier
<a name="hls-segmentModifier-design-s3"></a>

设计目标路径的 segmentModifier 部分。segmentModifier 是可选的；如果包含，则仅媒体文件名包含该部分。

该修饰符的典型使用案例是使用数据变量创建时间戳，以防止在通道重新启动时分段相互覆盖。例如，假设您包含时间戳 **\$1t\$1-**。分段 00001 可能具有 `index-120028-00001` 名称。如果输出在几分钟后重新启动（这会导致分段计数器重新启动），新的分段 00001 将具有 `index-120039-00001` 名称。新文件不会覆盖原始分段 00001 的文件。一些下游系统可能希望具有该行为。

# 在控制台上填写字段
<a name="hls-destinations-s3-specify"></a>

在设计输出名称和目标路径后，您可以设置 HLS 输出组。

以下字段配置 HLS 媒体和清单文件（目标）的位置和名称。
+ **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 输出 – 输出设置 – 分段修饰符**

**为大多数下游系统设置目标**

1. 填写 **HLS 组目标**部分中的 **URL** 字段。在通道设置为标准通道时指定两个目标，或者在通道设置为单管道通道时指定一个目标。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-destinations-s3-specify.html)

1. 将两个 **HLS 组目标**部分的 “**凭证**” 部分都留空。 MediaLive 有权通过可信实体写入 S3 存储桶。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

1. 在 **CDN** 设置部分中，选择 `Hls S3`。

1. 只有在将此输出发送**到 Amazon S3 存储桶时 MediaLive必须设置预设 ACL 时，才填写 CD** N 设置字段。

   通常，只有当您的组织不是 Amazon S3 存储桶的所有者时，才使用标准 ACL。在讨论[输出目标](origin-server-hls-s3.md#setting-dss-hls-canned-acl)时，您应该与存储桶所有者讨论标准 ACL 的使用。

# 输出目的地的字段-发送到 MediaStore
<a name="hls-destinations-ems"></a>

在[规划 HLS 输出组的目的地](origin-server-ems.md)时，您可能已决定将输出发送到 MediaStore。您必须为输出设计一个或多个目标路径。然后，必须在控制台的相应字段中输入路径的不同部分。

**Topics**
+ [为输出目标设计路径。](hls-destinations-ems-design.md)
+ [在控制台上填写字段](hls-specify-destination-ems.md)

# 为输出目标设计路径。
<a name="hls-destinations-ems-design"></a>

如果您尚未设计一个或多个完整目标路径，请执行此步骤。如果您已经设计了路径，请转到 [在控制台上填写字段](hls-specify-destination-ems.md)。

**设计路径**

1. 收集一个或多个容器的数据端点。您[之前从 MediaStore 用户那里获得了](origin-server-ems.md)此信息。例如：

   `a23f.data.mediastore.us-west-2.amazonaws.com`

1. 设计目标路径中跟随数据端点的部分（for MediaStore）。

**Topics**
+ [输出路径的语法](#hls-syntax-ems)
+ [如何 MediaLive 构造路径](#hls-how-construct-urls-ems)
+ [设计文件夹和 baseFilename](#hls-path-ems)
+ [设计 nameModifier](#hls-nameModifier-design-ems)
+ [设计 segmentModifier](#hls-segmentModifier-design-ems)

## 输出路径的语法
<a name="hls-syntax-ems"></a>

HLS 输出始终包含三类文件：
+ 主清单
+ 子清单
+ 媒体文件

下表描述了构成这三类文件的目标路径的各个部分。

这三类文件的目标路径在 *baseFileN* ame 之前是相同的，这意味着 MediaLive 将所有这些类别的文件发送到同一个文件夹。每类文件的修饰符和文件扩展名都不同。发送到时 MediaStore，必须将所有文件发送到同一个文件夹。下游系统希望所有文件都在一起。


| 文件 | 路径语法 | 示例 | 
| --- | --- | --- | 
| 主清单文件 | protocol dataEndpoint path baseFilename extension | 容器中路径*传输*中主清单的路径，文件名*索引*为：mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index.m3u8 | 
| 子清单文件 | protocol dataEndpoint path baseFilename nameModifier extension | 输出的高分辨率格式副本的子清单路径`mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index-high.m3u8` | 
| 媒体文件（分段） | protocol dataEndpoint path baseFilename nameModifier optionalSegmentModifier counter extension | 第 230 个分段的文件的路径可能是：mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index-high-00230.ts | 

## 如何 MediaLive 构造路径
<a name="hls-how-construct-urls-ems"></a>

这些路径的构造如下：
+ 该 AWS 服务的用户应该已经向您提供了容器名称。
+ 对于 MediaStore，您必须确定以下各项：
  + 文件夹
  + baseFilename
  + 修饰符
  + segmentModifier

  请参阅以下各节。
+ MediaLive 在计数器前插入下划线。
+ MediaLive 生成计数器，计数器始终是从 00001 开始的五位数。
+ MediaLive 在扩展名前插入圆点。
+ MediaLive 选择扩展名：
  + 对于清单文件 – 始终为 ` .m3u8`
  + 对于媒体文件 — .ts 表示传输流中的文件，.mp4 表示 f 容器中的文件 MP4 

## 设计文件夹和 baseFilename
<a name="hls-path-ems"></a>

设计适合您目的的文件夹路径和 baseFilename。

如果每个输出有两个目标，则目标路径之间必须有所不同。请遵循以下准则：
+ 一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。

  因此，如果存储桶或容器不同，则两个目标的文件夹路径和文件名可以彼此不同，也可以相同。例如：

  `mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index.m3u8`

  `mediastoressl://fe30.data.mediastore.us-west-2.amazonaws.com/delivery/index.m3u8`

  或者

  `mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index.m3u8`

  `mediastoressl://fe30.data.mediastore.us-west-2.amazonaws.com/redundant/index.m3u8`
+ 如果存储桶或容器相同，则两个目标的文件夹路径和文件名必须彼此不同。例如：

  `mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/delivery/index.m3u8`

  `mediastoressl://a23f.data.mediastore.us-west-2.amazonaws.com/redundant/index.m3u8`

## 设计 nameModifier
<a name="hls-nameModifier-design-ems"></a>

设计文件名的 `nameModifier` 部分。子清单和媒体文件在其文件名中包含该修饰符。该 `nameModifier` 将每个输出与其他输出区分开来，因此，它在每个输出中必须是唯一的。请遵循以下准则：
+ 对于包含视频（可能还包含其他流）的输出，您通常会描述视频。例如，**-high** 或 **-1920x1080-5500kpbs**（以描述分辨率和比特率）。
+ 对于仅包含音频或仅包含字幕的输出，您通常会描述音频或字幕。例如，**-aac** 或 **-webVTT**。
+ 最好以分隔符（例如连字符）为 `nameModifier` 开头，以便将 ` baseFilename` 与 `nameModifier` 分开。
+ `nameModifier` 可以包含[数据变量](variable-data-identifiers.md)。

## 设计 segmentModifier
<a name="hls-segmentModifier-design-ems"></a>

设计目标路径的 segmentModifier 部分。segmentModifier 是可选的；如果包含，则仅媒体文件名包含该部分。

该修饰符的典型使用案例是使用数据变量创建时间戳，以防止在通道重新启动时分段相互覆盖。例如，假设您包含时间戳 **\$1t\$1-**。分段 00001 可能具有 `index-120028-00001` 名称。如果输出在几分钟后重新启动（这会导致分段计数器重新启动），新的分段 00001 将具有 `index-120039-00001` 名称。新文件不会覆盖原始分段 00001 的文件。一些下游系统可能希望具有该行为。

# 在控制台上填写字段
<a name="hls-specify-destination-ems"></a>

在设计输出名称和目标路径后，您可以设置 HLS 输出组。

以下字段配置 HLS 媒体和清单文件（目标）的位置和名称。
+ **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 输出 – 输出设置 – 分段修饰符**

**为大多数下游系统设置目标**

1. 填写 **HLS 组目标**部分中的 **URL** 字段。在通道设置为标准通道时指定两个目标，或者在通道设置为单管道通道时指定一个目标。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-specify-destination-ems.html)

1. 将两个 **HLS 组目标**部分的 “**凭证**” 部分都留空。 MediaLive 有权通过可信实体写入 MediaStore 容器。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

1. 在 **CDN** 设置部分中，选择 `Hls media store`。

1. 如果 MediaStore 用户为您提供了[配置连接的](origin-server-http.md)值，请在 **CDN** 设置部分的字段中输入这些值。

# 输出目的地的字段-发送到 MediaPackage
<a name="hls-destinations-emp"></a>

当你[计划输出到](hls-choosing-hls-vs-emp.md)时 MediaPackage，你可能已经决定通过创建 HLS 输出组来发送输出。（或者你可能已经决定创建一个[MediaPackage 输出组](creating-mediapackage-output-group.md)。）

您必须为输出设计一个或多个目标路径。然后，必须在控制台的相应字段中输入路径的不同部分。

您可以使用 HLS 输出组发送到标准版 MediaPackage 或 toMediaPackage v2。这两个版本使用不同的协议：
+ MediaPackage 使用 WebDAV。
+ MediaPackage v2 使用基本的 PUT。

**Topics**
+ [为输出目标设计路径。](hls-destinations-emp-design.md)
+ [在控制台上填写字段](hls-specify-destination-emp.md)
+ [标准 MediaPackage 示例](hls-example-mediapackage.md)
+ [MediaPackage v2 示例](hls-example-mediapackage-v2.md)

# 为输出目标设计路径。
<a name="hls-destinations-emp-design"></a>

如果您尚未设计一个或多个完整目标路径，请执行此步骤。如果您已经设计了路径，请转到 [在控制台上填写字段](hls-specify-destination-emp.md)。

**设计路径**

1. 收集您[之前从 MediaPackage 用户那里获得](origin-server-hls-emp.md)的信息：
   + 频道的两个 URLs （输入端点是 MediaPackage 术语）。请参阅此步骤后面的信息。
   + 如果您使用的是标准版 MediaPackage，请获取用户名和密码。如果您使用的是 MediaPackage v2，则不使用用户凭证。

1. 您必须设计目标路径中跟随的部分 URLs。

**Topics**
+ [收集标准信息 MediaPackage](hls-destinations-emp-info.md)
+ [收集 MediaPackage v2 的信息](hls-destinations-emp-info-v2.md)
+ [输出路径的语法](hls-syntax-emp.md)
+ [设计 nameModifier](hls-nameModifier-design-emp.md)
+ [设计 segmentModifier](hls-segmentModifier-design-emp.md)

# 收集标准信息 MediaPackage
<a name="hls-destinations-emp-info"></a>

对于标准 MediaPackage版，频道 URLs 的两者类似于以下示例：

`6d2c.mediapackage.us-west-2.amazonaws.com/in/v2/9dj8/9dj8/channel` 

`6d2c.mediapackage.us-west-2.amazonaws.com/in/v2/9dj8/e333/channel`

其中：

`mediapackage`表示输入端点使用 MediaPackage API 的版本 1

`channel` 始终在 URL 的末尾。它是该目标上所有文件的基本文件名。

除了前 URLs 面的文件夹，两者总是相同的`channel`。

# 收集 MediaPackage v2 的信息
<a name="hls-destinations-emp-info-v2"></a>

对于 MediaPackage v2，一个频道 URLs 的两个类似于以下示例：

`mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/1/curling/index`

`mz82o4-2.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/2/curling/index`

其中：


| Element | 说明 | 
| --- | --- | 
| mz82o4-1 和 mz82o4-2 |  指明这两个端点用于中的冗余信道 MediaPackage。前缀始终是 -1 和 -2 | 
| mediapackagev2 | 表示输入端点使用 MediaPackage API 的版本 2 | 
| live-sports/1/curling 和 live-sports/2/curling | 用于冗余提取的文件夹。一个文件夹始终包含 /1/，另一个文件夹始终包含 /2/  | 
| index | 始终在 URL 末尾。它是该目标上所有文件的基本文件名。 | 

# 输出路径的语法
<a name="hls-syntax-emp"></a>

HLS 输出始终包含三类文件：

请参阅以下部分。
+ 主清单
+ 子清单
+ 媒体文件

下表描述了构成这三类文件的目标路径的各个部分。

这三类文件的目标路径在 *baseFileN* ame 之前是相同的，这意味着 thatMediaLive 将所有这些类别的文件发送到同一个文件夹。每类文件的修饰符和文件扩展名都不同。发送到时 MediaPackage，必须将所有文件发送到同一个文件夹。下游系统希望所有文件都在一起。


| 文件 | 路径语法 | 示例 | 
| --- | --- | --- | 
| 主清单文件 |  protocol channelURL extension |  输出路径。以下是使用 MediaPackage v2 的示例 `https://mz82o4-2.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/2/curling/index.m3u8`  | 
| 子清单文件 | protocol channelURL nameModifier extension | 以下是卷曲输出高分辨率再现的子清单路径示例（在使用 MediaPackage v2 的目标中）：`https://mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/1/curling/index-high.m3u8` | 
| 媒体文件（分段） | protocol channelURL nameModifier optionalSegmentModifier counter extension | 以下是第 230 段（在使用 MediaPackage v2 的目标中）的文件路径示例：https://mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/1/curling/index-high-00230.ts | 

这些路径的构造如下：
+  MediaPackage 用户应该已经为你提供了频道 URLs。它 URLs 涵盖了路径中直至并包括 baseFileName 的部分：
  + 对于标准版 MediaPackage，基本文件名始终为。`channel`
  +  MediaPackage 在 v2 中，baseFileName 始终是。`index`
+ 您必须指定以下内容：
  + 修饰符
  + segmentModifier

  请参阅以下各节。
+ MediaLive 在计数器前插入下划线。
+ MediaLive 生成计数器，计数器始终是从 00001 开始的五位数。
+ MediaLive 在扩展名前插入圆点。
+ MediaLive 选择扩展名：
  + 对于清单文件 – 始终为 ` .m3u8`
  + 对于媒体文件 — .ts 表示传输流中的文件，.mp4 表示 f 容器中的文件 MP4 

# 设计 nameModifier
<a name="hls-nameModifier-design-emp"></a>

设计文件名的 `nameModifier` 部分。子清单和媒体文件在其文件名中包含该修饰符。

该 `nameModifier` 将每个输出与其他输出区分开来，因此，它在每个输出中必须是唯一的。
+ 对于包含视频（可能还包含其他流）的输出，您通常会描述视频。例如，如果有三个格式副本，则可以使用 **-high**、**-medium** 和 **-low**。或者每个修饰符都可以准确地描述分辨率和比特率（**-1920x1080-5500kpbs**）。
+ 对于仅包含音频或仅包含字幕的输出，您通常会描述音频或字幕。例如，**-aac** 或 **-webVTT**。

最好以分隔符（例如连字符）为 `nameModifier` 开头，以便将 ` baseFilename` 与 `nameModifier` 分开。

`nameModifier` 可以包含[数据变量](variable-data-identifiers.md)。

# 设计 segmentModifier
<a name="hls-segmentModifier-design-emp"></a>

设计目标路径的 segmentModifier 部分。segmentModifier 是可选的；如果包含，则仅媒体文件名包含该部分。

该修饰符的典型使用案例是使用数据变量创建时间戳，以防止在通道重新启动时分段相互覆盖。例如，假设您包含时间戳 **\$1t\$1-**。分段 00001 可能具有 `index-120028-00001` 名称。如果输出在几分钟后重新启动（这会导致分段计数器重新启动），新的分段 00001 将具有 `index-120039-00001` 名称。新文件不会覆盖原始分段 00001 的文件。一些下游系统可能希望具有该行为。

# 在控制台上填写字段
<a name="hls-specify-destination-emp"></a>

在设计输出名称和目标路径后，您可以设置 HLS 输出组。

以下字段配置 HLS 媒体和清单文件（目标）的位置和名称。
+ **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 输出 – 输出设置 – 分段修饰符**

**设置目标**

1. 填写 **HLS 组目标**部分中的 **URL** 字段。在通道设置为标准通道时指定两个目标，或者在通道设置为单管道通道时指定一个目标。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-specify-destination-emp.html)

1. 输入输入用户名。对于密码（如果适用），请输入存储在 AWS Systems Manager 参数存储库中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。

1. 在 **CDN** 设置部分，选择相应的连接类型：
   + 要发送至标准版 MediaPackage，请选择`Hls webdav`。
   + 要发送到 MediaPackage v2，请选择`Basic PUT`。

1. 如果下游系统为您提供了用于[配置连接](origin-server-http.md)的值，请在 **CDN** 设置部分的字段中输入这些值。

# 标准 MediaPackage 示例
<a name="hls-example-mediapackage"></a>

此示例说明在 HLS 输出组的下游系统为标准 MediaPackage系统时，如何设置目标字段。

假定您要流式传输冰壶游戏并创建三个输出：高、中和低比特率。


| Field | Value | 
| --- | --- | 
| HLS settings (HLS 设置) 部分中的 CDN settings (CDN 设置) | hls webdav  | 
| HLS 组目标 A 部分中的 URL |  6d2c.mediapackage.us-west-2.amazonaws.com/in/v2/9dj8/9dj8/channel | 
| HLS 组目标 A 部分中的凭证 | MediaPackage 仅接受经过身份验证的请求，因此必须输入已知的用户名和密码 MediaPackage。对于密码，请输入存储在 AWS Systems Manager Parameter Store 中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。 | 
| HLS 组目标 B 部分中的 URL |  6d2c.mediapackage.us-west-2.amazonaws.com/in/v2/9dj8/e333/channel | 
| HLS 组目标 B 部分中的凭证 | 输入目标 B 的 URL 的用户名和密码。两者的凭据可能相同 URLs，但可能不一样。 | 
| HLS outputs (HLS 输出) 部分中的 Name modifier (名称修饰符) |  选择 **Add output (添加输出)** 两次：另外向此部分中添加两个 **Output (输出)** 行，总共三行。在每一行中，输入一个修饰符：**-high**、**-medium** 和 **-low**。  | 
| 位置部分中的目录结构和每个子目录的段数 | MediaPackage 不使用这些字段，因此将其留空。 | 

因此，将创建具有以下名称的文件：
+ 一个主清单：**channel.m3u8**
+ 每个输出一个子清单：**channel-high.m3u8**、**channel-medium.m3u8**、**channel-low.m3u8**
+ 每个输出的 TS 文件：
  + **channel-high-00001.ts**、**channel-high-00002.ts**、**channel-high-00003.ts** 等
  + **channel-medium-00001.ts**、**channel-medium-00002.ts**、**channel-medium-00003.ts** 等 
  + **channel-low-00001.ts**、**channel-low-00002.ts**、** channel-low-00003.ts** 等

文件将发布到的两个 URL 输入中 MediaPackage。

# MediaPackage v2 示例
<a name="hls-example-mediapackage-v2"></a>

此示例说明在 HLS 输出组的下游系统为标准 MediaPackage系统时，如何设置目标字段。

假定您要流式传输冰壶游戏并创建三个输出：高、中和低比特率。


| Field | Value | 
| --- | --- | 
| HLS settings (HLS 设置) 部分中的 CDN settings (CDN 设置) |  **basic PUT**  | 
| HLS 组目标 A 部分中的 URL | mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/1/curling/index | 
| HLS 组目标 A 部分中的凭证 | 留空。 MediaPackage v2 不使用凭据进行身份验证。 | 
| HLS 组目标 B 部分中的 URL | mz82o4-2.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/live-sports/2/curling/index. | 
| HLS 组目标 B 部分中的凭证 | 留空。 MediaPackage v2 不使用凭据进行身份验证。 | 
| HLS outputs (HLS 输出) 部分中的 Name modifier (名称修饰符) |  选择 **Add output (添加输出)** 两次：另外向此部分中添加两个 **Output (输出)** 行，总共三行。在每一行中，输入一个修饰符：**-high**、**-medium** 和 **-low**。  | 
| 位置部分中的目录结构和每个子目录的段数 | MediaPackage 不使用这些字段，因此将其留空。 | 

因此，将创建具有以下名称的文件：
+ 一个主清单：**index.m3u8**
+ 每个输出一个子清单：**index-high.m3u8**、**index-medium.m3u8**、**index-low.m3u8**
+ 每个输出的 TS 文件：
  + **index-high-00001.ts**、**index-high-00002.ts**、**index-high-00003.ts** 等
  + **index-medium-00001.ts**、**index-medium-00002.ts**、**index-medium-00003.ts** 等 
  + **index-low-00001.ts**、**index-low-00002.ts**、** index-low-00003.ts** 等

文件将发布到的两个 URL 输入中 MediaPackage。

# 输出目标的字段 – 发送到 HTTP 服务器
<a name="hls-destinations-http"></a>

在[计划 HLS 输出组的目标](origin-server-http.md)时，您可能已经决定将输出发送到 HTTP 服务器。

您必须为输出设计一个或多个目标路径。然后，必须在控制台的相应字段中输入路径的不同部分。

**Topics**
+ [为输出目标设计路径。](hls-destinations-design-step.md)
+ [在控制台上填写字段](hls-specify-destination.md)
+ [HTTP 或 HTTPS 服务器的示例](hls-example-most-downstreamsystems.md)
+ [Akamai 示例](hls-example-akamai.md)

# 为输出目标设计路径。
<a name="hls-destinations-design-step"></a>

如果您尚未设计一个或多个完整目标路径，请执行此步骤。如果您已经设计了路径，请转到 [在控制台上填写字段](hls-specify-destination.md)。

**设计路径**

1. 收集您[之前从下游系统操作员处获取](origin-server-http.md)的信息：
   + 下游系统的连接类型 – Akamai、基本 PUT 或 WebDAV。
   + 连接字段的设置（如果下游系统有特殊要求）。
   + 传输协议 – HTTP 或 HTTPS。
   + 访问下游系统的用户名和密码，如果下游系统需要经过身份验证的请求。请注意，这些用户凭证与用户身份验证（而不是与协议）相关。用户身份验证与下游系统是否将接受您的请求有关。协议与请求是否通过安全连接发送有关。
   + 全部或部分目标路径，可能包括文件名。
   + 是否需要设置单独的子目录。

1. 作为与下游系统操作员计划的一部分，您应该确定是否要实施冗余清单。此外，您还应确定下游系统是否需要自定义清单。根据这两个决定，阅读对应的章节：
   + 如果要实施冗余清单，请参阅 [创建冗余 HLS 清单](hls-redundant-manifests.md)，然后返回本节。
   + 如果要实施清单的自定义路径，请参阅 [自定义 HLS 清单中的路径](hls-manifest-paths.md)，然后返回本节。
   + 如果您没有实施这两个功能中的任何一个，请继续阅读本节。

1. 设计目标路径中跟随一个或多个存储桶的部分。有关详细信息，请参阅以下部分。

**Topics**
+ [输出路径的语法](#hls-syntax-http)
+ [设计文件夹和 baseFilename](#hls-baseFilename-design)
+ [设计 nameModifier](#hls-nameModifier-design)
+ [设计 segmentModifier](#hls-segmentModifier-design)

## 输出路径的语法
<a name="hls-syntax-http"></a>

下表描述了构成这三类文件的目标路径的各个部分。

这三类文件的目标路径在 *baseFileN* ame 之前是相同的，这意味着 thatMediaLive 将所有这些类别的文件发送到同一个文件夹。每类文件的修饰符和文件扩展名都不同。


| 文件 | 路径语法 | 示例 | 
| --- | --- | --- | 
| 主清单文件 | 协议域路径 baseFilename 扩展名 | 主清单 URL，文件名 */index*：http://203.0.113.55/sports/delivery/curling/index.m3u8 | 
| 子清单文件 | 协议域路径 baseFilename nameModifier 扩展名 | 输出的高分辨率格式副本的子清单 URL`http://203.0.113.55/sports/delivery/curling/index-high.m3u8` | 
| 媒体文件（分段） | protocol domain path baseFilename nameModifier optionalSegmentModifier counter extension | 第 230 个分段的文件的 URL 可能是：http:// 203.0.113.55/sports/delivery/curling/index-high-00230.ts | 

这些目标路径的构造如下：
+ 下游系统的操作员[应该已经向您提供了](origin-server-http.md)协议、域和部分路径。例如：

  `http://203.0.113.55/sports/`

  协议始终是 HTTP 或 HTTPS。
+ 操作员可能提供了以下内容。否则，您可以决定这些内容：
  + 文件夹
  + baseFilename
  + 修饰符
  + segmentModifier

  请参阅以下各节。
+ MediaLive 在计数器前插入下划线。
+ MediaLive 生成计数器，计数器始终是从 00001 开始的五位数。
+ MediaLive 在扩展名前插入圆点。
+ MediaLive 选择扩展名：
  + 对于清单文件 – 始终为 ` .m3u8`
  + 对于媒体文件 — `.ts` 用于传输流中的文件以及 `.mp4` f MP4 容器中的文件 

## 设计文件夹和 baseFilename
<a name="hls-baseFilename-design"></a>

对于目标路径的 `folder` 和 `baseFilename` 部分，请遵循以下准则：
+ 对于单管道通道，您仅需要使用一个 `baseFilename`。
+ 对于*未* 实施[冗余清单](hls-opg-redundant-manifest.md)时的标准通道，您需要使用两个 `baseFilenames`。两个 `baseFilenames` 可以相同，也可以不同。在创建不同的 `baseFilenames` 之前，请确保下游系统可以使用该设置。
+ 有关*实施* 冗余清单时的标准通道，请参阅[冗余清单的字段](hls-opg-redundant-manifest.md)。

## 设计 nameModifier
<a name="hls-nameModifier-design"></a>

设计文件名的 `nameModifier` 部分。子清单和媒体文件在其文件名中包含该修饰符。该 `nameModifier` 将每个输出与其他输出区分开来，因此，它在每个输出中必须是唯一的。请遵循以下准则：
+ 对于包含视频（可能还包含其他流）的输出，您通常会描述视频。例如，**-high** 或 **-1920x1080-5500kpbs**（以描述分辨率和比特率）。
+ 对于仅包含音频或仅包含字幕的输出，您通常会描述音频或字幕。例如，**-aac** 或 **-webVTT**。
+ 最好包含分隔符，以清楚地将 ` baseFilename` 与 `nameModifier` 隔开。
+ ` nameModifier` 可以包含[数据变量](variable-data-identifiers.md)。

## 设计 segmentModifier
<a name="hls-segmentModifier-design"></a>

设计目标路径的 segmentModifier 部分。segmentModifier 是可选的；如果包含，则仅媒体文件名包含该部分。

该修饰符的典型使用案例是使用数据变量创建时间戳，以防止在通道重新启动时分段相互覆盖。例如，假设您包含时间戳 **\$1t\$1-**。分段 00001 可能具有 `/index-120028-00001` 名称。如果输出在几分钟后重新启动（这会导致分段计数器重新启动），新的分段 00001 将具有 `/index-120039-00001` 名称。新文件不会覆盖原始分段 00001 的文件。一些下游系统可能希望具有该行为。

# 在控制台上填写字段
<a name="hls-specify-destination"></a>

以下字段配置 HLS 媒体和清单文件（目标）的位置和名称。
+ **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 输出 – 输出设置 – 分段修饰符**

**设置目标**

1. 填写 **HLS 组目标**部分中的 **URL** 字段。在通道设置为标准通道时指定两个目标，或者在通道设置为单管道通道时指定一个目标。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-specify-destination.html)

1. 如果下游系统要求用户进行身份验证 MediaLive，请在每个 **HLS 组目标**部分中填写 “**凭据**” 部分。输入下游系统提供的用户名和密码。对于密码，请输入存储在 AWS Systems Manager 参数存储中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。

1. 在 **CDN** 设置部分，选择下游系统要求您使用的选项 – Akamai、PUT 或 WebDAV。

1. 如果下游系统为您提供了用于[配置连接](origin-server-http.md)的值，请在 **CDN** 设置部分的字段中输入这些值。

# HTTP 或 HTTPS 服务器的示例
<a name="hls-example-most-downstreamsystems"></a>

该示例说明了在下游系统为使用基本 PUT 的 HTTPS 服务器时如何设置目标字段。

假定您要流式传输冰壶游戏并创建三个输出：高、中和低比特率。


| Field | Value | 
| --- | --- | 
| HLS settings (HLS 设置) 部分中的 CDN settings (CDN 设置) | Hls basic put按照下游系统的说明，更改其他 CDN 字段。 | 
| HLS 组目标 A 部分中的 URL | 例如：**https://203.0.113.55/sports/curling/index** | 
| HLS 组目标 A 部分中的凭证 | 如果下游系统需要经过身份验证的请求，请输入下游系统提供的用户名。对于密码，请输入存储在 AWS Systems Manager Parameter Store 中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。 | 
| HLS 组目标 B 部分中的 URL | 例如：**https://203.0.113.82/sports/curling/index** | 
| HLS 组目标 B 部分中的凭证 | 为目标 B 的 URL 输入用户名和密码（如果适用）。两者的凭证可能相同 URLs，但可能不一样。 | 
| HLS outputs (HLS 输出) 部分中的 Name modifier (名称修饰符) |  选择 **Add output (添加输出)** 两次：另外向此部分中添加两个 **Output (输出)** 行，总共三行。在每一行中，输入一个修饰符：**-high**、**-medium** 和 **-low**。  | 
| 位置部分中的目录结构和每个子目录的段数 |  假设下游系统不使用这些字段。  | 

因此，将创建具有以下名称的文件：
+ 一个主清单：`index.m3u8`
+ 每个输出一个子清单：`index-high.m3u8`、`index-medium.m3u8`、`index-low.m3u8`
+ 每个输出的 TS 文件：
  + `index-high-00001.ts`、`index-high-00002.ts`、`index-high-00003.ts` 等
  + `index-medium-00001.ts`、`index-medium-00002.ts`、`index-medium-00003.ts` 等 
  + `index-low-00001.ts`、`index-low-00002.ts`、` index-low-00003.ts` 等

这些文件将发布到下游系统中的两个主机，并放置在每个主机上的名为 `sports` 的文件夹中。

# Akamai 示例
<a name="hls-example-akamai"></a>

该示例说明了在下游系统为 Akamai 服务器时如何设置目标字段。

假定您要流式传输冰壶游戏并创建三个输出：高、中和低比特率。


| Field | Value | 
| --- | --- | 
| HLS settings (HLS 设置) 部分中的 CDN settings (CDN 设置) | HLS akamai 如果您使用的是 Akamai 令牌身份验证，请选择此设置。按照 Akamai 的说明，更改其他 CDN 字段。HLS basic put 如果您使用的是摘要身份验证，请选择此设置。按照 Akamai 的说明，更改其他 CDN 字段。 | 
| HLS 组目标 A 部分中的 URL | 例如：**https://p-ep50002.i.akamaientrypoint.net/50002/curling/index**将该 URL 映射到 Akamai 术语：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-example-akamai.html) | 
| HLS 组目标 A 部分中的凭证 | 如果 Akamai 需要经过身份验证的请求，请输入 Akamai 已知的用户名和密码。对于密码，请输入存储在 AWS Systems Manager Parameter Store 中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。 | 
| HLS 组目标 B 部分中的 URL | 例如：**https://b-ep50002.i.akamaientrypoint.net/50002-b/curling/index**将该 URL 映射到 Akamai 术语：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/hls-example-akamai.html) | 
| HLS 组目标 B 部分中的凭证 | 为另一个目标的 URL 输入用户名和密码（如果适用）。两者的凭证可能相同 URLs，但可能不一样。 | 
| HLS outputs (HLS 输出) 部分中的 Name modifier (名称修饰符) |  选择 **Add output (添加输出)** 两次：另外向此部分中添加两个 **Output (输出)** 行，总共三行。在每一行中，输入一个修饰符：**-high**、**-medium** 和 **-low**。  | 
| 位置部分中的目录结构和每个子目录的段数 |  按照 Akamai 的说明，填写这些字段。  | 

因此，将创建具有以下名称的文件：
+ 一个主清单：**index.m3u8**
+ 每个输出一个子清单：**index-high.m3u8**、**index-medium.m3u8**、**index-low.m3u8**
+ 每个输出的 TS 文件：
  + `index-high-00001.ts`、`index-high-00002.ts`、`index-high-00003.ts` 等
  + `index-medium-00001.ts`、`index-medium-00002.ts`、`index-medium-00003.ts` 等 
  + `index-low-00001.ts`、`index-low-00002.ts`、` index-low-00003.ts` 等



这些文件将发布到两个位置：
+ 在 Akamai 主机 **p-ep50002.i.akamaientrypoint.net** 上名为 **50002** 的文件夹中
+ 在主机 **b-ep50002.i.akamaientrypoint.net** 上名为 **50002-b** 的文件夹中