

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

# 输出目标的字段 – 发送到 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 的使用。