

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

# 输出目标的字段 – 发送到 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** 的文件夹中