

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

# 设置：创建输出组和输出
<a name="medialive-outputs"></a>

本节介绍如何在 AWS Element MediaLive al 中规划和创建输出组和输出。

在[创建或编辑通道](creating-channel-scratch.md)时，可以创建输出组和输出。创建通道时，必须至少创建一个输出组。创建通道后，您可以进行编辑以添加更多输出组。

在控制台上**通道**页面的**输出**部分，创建输出组。您不能将输出组和输出与其所属的通道分开创建。

**Topics**
+ [创建存档输出组](opg-archive.md)
+ [创建 CMAF 摄取输出组](opg-cmafi.md)
+ [创建帧捕捉输出组](opg-framecapture.md)
+ [创建 HLS 输出组](opg-hls.md)
+ [创建 MediaConnect 路由器输出组](opg-mediaconnect-router.md)
+ [创建 MediaPackage 输出组](opg-mediapackage.md)
+ [创建 Microsoft Smooth 输出组](opg-mss.md)
+ [创建 RTMP 输出组](opg-rtmp.md)
+ [创建 SRT 输出组](opg-srt.md)
+ [创建 UDP 输出组](opg-udp.md)

# 创建存档输出组
<a name="opg-archive"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个存档输出组。有关存档输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

**Topics**
+ [在存档输出组中整理编码](design-archive-package.md)
+ [与下游系统协调](archive-op-origin-server-s3.md)
+ [创建存档输出组](creating-archive-output-group.md)

# 在存档输出组中整理编码
<a name="design-archive-package"></a>

存档输出组可以包含以下内容：
+ 一个或多个输出。

输出包含以下内容：
+ 一个视频编码。
+ 零个或多个音频编码。
+ 零个或多个字幕编码。字幕是嵌入式字幕，或对象样式的字幕。

通常，存档输出组会镜像另一个输出组的输出结构。例如，它可能镜像 HLS 输出组中的 ABR 堆栈。

下图为一个包含一个输出的存档输出组，其中包含一个带有嵌入式字幕的视频编码和两个音频编码。

![\[Output group diagram showing one output with a video encode and two audio encodes.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output3-nonABR-Ve-2A.png)


下图为一个包含一个输出的存档输出组，其中包含一个视频编码、两个音频编码和两个对象式字幕编码。

![\[Output group containing V, A, A, C, C elements representing video, audio, and caption encodes.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output4-nonABR-V-2A-2C.png)


# 与下游系统协调
<a name="archive-op-origin-server-s3"></a>

存档输出组的目标始终在 Amazon S3 存储桶中。您和 Amazon S3 操作员必须就要使用的存储桶达成一致。

**安排目标设置**

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1. 我们建议您设计目标（即 Amazon S3 存储桶和所有文件夹）的完整路径。请参阅[输出目标的字段](archive-destinations.md)。

1.  如果有任何尚不存在的存储桶，请让 Amazon S3 用户创建。

   使用 MediaLive，Amazon S3 存储桶名称不得使用点符号，这意味着它不得使用。 （点）存储桶名称中的单词之间。

1. 与 Amazon S3 用户讨论存储桶所有权。如果存储桶属于另一个 AWS 账户，您通常希望该账户成为输出的所有者。有关更多信息，请在此过程后参阅[控制对输出的访问](#setting-dss-archive-canned-acl)。

请注意，您不需要用户凭证即可发送到 S3 存储桶。 MediaLive 有权通过可信实体写入存储桶。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

## 控制对输出的访问
<a name="setting-dss-archive-canned-acl"></a>

您可能正在将输出文件发送到另一个 AWS 账户所有的 Amazon S3 存储桶中。在这种情况下，您通常希望另一个账户成为输出文件（存储桶中的对象）的所有者。如果存储桶拥有者没有成为对象所有者，则您 (MediaLive) 将是唯一可以在不再需要文件时删除这些文件的代理。

因此，在输出文件存入 Amazon S3 存储桶后转让其所有权符合所有人的利益。

要转移对象所有权，需要进行以下设置：
+ 存储桶拥有者必须添加存储桶权限策略，该策略授予您在向存储桶 MediaLive传送输出文件时添加 Amazon S3 预设访问控制列表 (ACL) 的权限。存储桶拥有者应阅读亚马逊简单存储服务用户指南 ACLs中[使用管理访问权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls)中的信息。存储桶所有者必须为存储桶设置 ACL 权限，而非为对象设置 ACL 权限。
+ 存储桶所有者还应设置对象所有权。此功能实际上使发送者 () 必须包含*存储桶所有者的完全控制* ACL（而不是可选MediaLive）。存储桶所有者应阅读《Amazon Simple Storage Service 用户指南》中[控制对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership)中的信息。

  如果存储桶所有者实现了此功能，则必须设置 MediaLive 为包含 ACL。否则，向 Amazon S3 存储桶传输的操作将失败。
+ 您必须设置为在 MediaLive 向*存储桶交付存储桶时包含存储桶所有者的完全控制*** ACL。您将在[创建通道](archive-destinations.md)时执行此设置。

S3 预装 ACL 功能支持 ACLs 除*存储桶所有者完全控制*之外的其他功能。但是其他 ACLs 这些通常不适用于从中传送视频的用例 MediaLive。

# 创建存档输出组
<a name="creating-archive-output-group"></a>

在创建[或编辑 MediaLive 频道时，您可以创建](creating-a-channel-step4.md)输出组及其输出。

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1. 在 **Add output group (添加输出组)** 部分中，选择 **Archive (存档)**，然后选择 **Confirm (确认)**。将显示更多部分：
   + **存档组目标** – 该部分包含[输出目标](archive-destinations.md)的字段。
   + **存档设置** – 该部分包含[输出目标](archive-destinations.md)的字段。
   + **存档输出** – 该部分显示默认添加的输出。存档输出只能包含一个输出，因此，不要单击**添加输出**。

1. 在 **Archive outputs (存档输出)** 中，选择 **Settings (设置)** 链接以查看该单个输出的部分：
   + **输出设置** – 该部分包含[输出目标](archive-destinations.md)和[输出容器](archive-container.md)的字段。
   + **流设置** – 该部分包含[输出流](archive-streams.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   + 在 **Archive settings (存档设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如，**Sports Game 10122017 ABR** 或 **tvchannel59**。
   + 在 **Archive outputs (存档输出)** 中，为 **Name (名称)** 输入输出的名称。此名称是内部名称 MediaLive；它不会出现在输出中。

1. 要填写其他字段，请参阅该过程后面列出的主题。

**Topics**
+ [输出目标的字段](archive-destinations.md)
+ [输出容器的字段](archive-container.md)
+ [视频、音频和字幕流（编码）的字段](archive-streams.md)

# 输出目标的字段
<a name="archive-destinations"></a>

以下字段配置存档输出文件（目标）的位置和名称。
+ **输出组** – **存档组目标**部分
+ **输出组** – **存档设置** – **CDN 设置**
+ **输出组** – **其他设置** – **滚动间隔**
+ **存档输出** – **名称修饰符**
+ **存档输出** – **扩展名**

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

# 为输出目标设计路径。
<a name="archive-about-destination-path"></a>

1. 按照以下语法设计一个或多个目标路径：

   `protocol bucket folders baseFilename nameModifier counter extension`

   例如，对于标准通道：

   `s3ssl://amzn-s3-demo-bucket/channel59/delivery/curling-20171012T033162.000000.m2ts`

   `s3ssl://amzn-s3-demo-bucket1/channel59/delivery/curling-20171012T033162.000000.m2ts`

如果您有两个目标，则目标路径之间必须有所不同。一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。

下表将示例中的每个部分映射到语法中的部分。


| URL 的部分 | 示例 | Comment | 
| --- | --- | --- | 
| protocol | s3ssl:// | 协议始终是 s3ssl://，因为存档输出的目标始终是 S3 存储桶。 | 
| 路径的存储桶部分 | amzn-s3 demo-bucket |  使用 MediaLive，Amazon S3 存储桶名称不得使用点符号。例如，可以接受 **mycompany-videos**，但不能接受 **mycompany.videos**。  | 
| 路径的文件夹部分 | channel59/delivery/ | 这些文件夹可以存在，也可以不存在，您可随心意保存任意时长。文件夹必须始终以斜杠结尾。 | 
| baseFilename | curling | 不要将文件名以正斜杠结尾。 | 
| nameModifier | -20171012T033162 | 对于存档输出，修饰符是可选的。 | 
| counter 前面的分隔符 | . | MediaLive 自动插入此分隔符。 | 
| counter | 000000 | MediaLive 自动生成此计数器。最初，这是一个从 000000 开始的六位数字，每次增加 1。即 000000、000001、000002 依此类推。在达到 999999 之后，下一个数字是 1000000（七位数字），然后是 1000001、1000002，依此类推。然后从 9999999 到 10000000（八位数字），依此类推。 | 
| extension 前面的圆点 | . | MediaLive 自动插入这个点。 | 
| extension | m2ts | 始终为 m2ts。 | 

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

1. 在相应的字段中输入目标的各个部分。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/archive-specify-destination.html)

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

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

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

1. 填写 “**存档设置”** 部分中的 “**翻转间隔**” 字段。

   例如，**300** 将输出拆分为单独的文件，每个文件的持续时间为 300 秒（5 分钟）。

   每次展期到期时，都会 MediaLive 关闭 Amazon S3 上的当前文件，然后使用`baseFilename`、和顺序计数器启动一个新文件。`nameModifier`

   当前文件仅在关闭后显示在 Amazon S3 上。

有关更多信息，请参阅[示例](archive-examples.md)。

# 存档输出组的目标字段示例
<a name="archive-examples"></a>

这些示例说明了如何设置与文件位置有关的字段。它们不说明如何设置其他字段，例如单个输出中的字段。

## 示例 1
<a name="archive-example-1"></a>

您希望创建电视频道 59 的流输出的存档。您希望将输出存储在名为 **amzn-s3-demo-bucket** 的 S3 存储桶中，并希望将流拆分为 5 分钟的块。


| Field | Value | 
| --- | --- | 
| Archive settings  (存档设置) 部分中的 Rollover interval (滚动间隔) 字段 | 300 | 
| 存档组目标 A 部分中的 URL | s3ssl://amzn-s3-demo-bucket/channel59/delivery/curling | 
| 存档组目标 B 部分中的 URL | s3ssl://amzn-s3-demo-bucket/channel59/backup/curling将 *delivery* 和 *backup* 作为文件夹名称只是一个例子。 | 
| Archive outputs (存档输出) 部分中的 Name modifier (名称修饰符) | -\$1dt\$1有关变量数据的标识符的信息（例如 `$dt$`），请参阅[中变量数据的标识符 MediaLive](variable-data-identifiers.md)。 | 
| Archive outputs (存档输出) 部分中的 Extension (扩展名) | 保留空白以使用默认值 (.m2ts)。 | 

结果：输出将拆分为一些文件，每个文件为 5 分钟（300 秒）。每个文件都具有 **curling** 文件名、通道启动时间和计数器（000000、000001 等）以及文件扩展名。例如：
+ 第一个文件为 **curling-20171012T033162-000001.m2ts**。
+ 第二个文件为 **curling-20171012T033162-000002.m2ts**。

每个文件将存储在 **s3ssl://amzn-s3-demo-bucket/channel59/delivery** 和 **s3ssl://amzn-s3-demo-bucket/channel59/backup** 中。

给定文件在写入时未显示在 Amazon S3 中。一旦发生翻转（或者用户停止了频道），就会 MediaLive 关闭当前文件。此时，该文件将变得可见。

## 示例 2
<a name="archive-example-3"></a>

您希望从冰壶游戏创建一份精彩内容存档，这些精彩内容还将流式传输 (在单独的 HLS 输出组中)。您希望创建三个输出：一个在音频中使用欧洲语言，另一个在音频中使用亚洲语言，还有一个在音频中使用非洲语言。您希望将输出存储在名为 **amzn-s3-demo-bucket1** 和 **amzn-s3-demo-bucket2** 的 S3 存储桶中。您希望将流分为 5 分钟的块。


| Field | Value | 
| --- | --- | 
| Archive settings  (存档设置) 部分中的 Rollover interval (滚动间隔) 字段 | 300 | 
| 存档组目标 A 部分中的 URL | s3ssl://amzn-s3-demo-bucket1/sports-delivery/highlights/curling/10312017在此示例中，**10312017** 文件夹设置为与当天日期匹配。 | 
| 存档组目标 B 部分中的 URL | s3ssl://amzn-s3-demo-bucket2/sports-delivery/highlights/curling/10312017在此示例中，路径具有不同的存储桶名称。 | 
| Archive outputs (存档输出) 部分中的 Name modifier (名称修饰符) |  选择 **Add output (添加输出)** 两次：另外向此部分中添加两个 **Output (输出)** 行，总共三行。在每一行中，输入一个修饰符：**-audiogroup1**、**-audiogroup2** 和 **-audiogroup3**。  | 
| Archive outputs (存档输出) 部分中的 Extension (扩展名) | 保留空白以使用默认值 (.m2ts)。 | 

结果：为每个输出创建三个独立类别的文件。每个文件都具有 **10312017** 文件名以及修饰符、顺序计数器和文件扩展名。例如：
+ `10312017-audiogroup1-000000.m2ts`、`10312017-audiogroup2-000000.m2ts` 和 `10312017-audiogroup3-000000.m2ts`。
+ `10312017-audiogroup1-000001.m2ts`、`10312017-audiogroup2-000001.m2ts` 和 `10312017-audiogroup3-000001.m2ts`。

每个文件将存储在 `s3ssl://amzn-s3-demo-bucket1/sports-delivery/highlights/curling` 和 `s3ssl://amzn-s3-demo-bucket2/sports-delivery/highlights/curling` 中。

给定文件在写入时未显示在 Amazon S3 中。一旦发生翻转（或者用户停止了频道），就会 MediaLive 关闭当前文件。此时，该文件将变得可见。

# 输出容器的字段
<a name="archive-container"></a>

以下字段与存档传输流打包和传送有关：
+ 在**输出设置** – **容器设置**部分中
+ 在**输出设置** – **PID 设置**部分中

对于所有这些字段，可以选择更改任何值。有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

# 视频、音频和字幕流（编码）的字段
<a name="archive-streams"></a>

以下字段与输出中的视频、音频和字幕流（编码）的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 创建 CMAF 摄取输出组
<a name="opg-cmafi"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 CMAF Ingest 输出组。有关 CMAF 摄取输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

请注意，这 MediaLive 会为 CMAF Ingest 输出组中的输出生成质量分数。有关更多信息，请参阅 [使用 MQCS](mqcs.md)。

**Topics**
+ [将编码整理成输出](design-cmafi-package.md)
+ [获取目标](downstream-system-cmafi-empv2.md)
+ [创建输出组](creating-cmafi-output-group.md)

# 整理 CMAF 摄取输出组中的编码
<a name="design-cmafi-package"></a>

CMAF Ingest 输出组通常设置为视频 ABR 堆栈。视频 ABR 堆栈是一个包含以下内容的输出组：
+ 多个输出。

每个输出可以包含以下内容：
+ 一个视频编码（格式副本）。通常，每个视频编码的分辨率都不同。
+ 零个或多个音频编码。
+ 零个或多个字幕编码。字幕是嵌入式字幕或边车字幕。

下图说明了视频中嵌入字幕时的 CMAF 摄取输出组。每个视频编码都在单独的输出中。字幕位于每个视频输出中。每个音频编码都在单独的输出中。

![\[Output group diagram showing four outputs: two labeled "V embedded" and two labeled "A".\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output13-ABR-2Ve-2Asep.png)


下图说明了字幕是 Sidecar 字幕时的 CMAF 摄取输出组。每个编码都有自己的输出。

![\[Output group diagram showing six outputs: two V, two A, and two C, representing video, audio, and captions.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output14-ABR-2V-2Asep-2C.png)


# 获取 CMAF 摄取输出组目标
<a name="downstream-system-cmafi-empv2"></a>

1. 决定是否需要两个输出 URLs 目的地：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1.  URLs 从 MediaPackage 操作员那里获取一两个。URL 的 MediaPackage 术语是*输入端点*。请确保获取的是 URLs （以开头`https://`），而不是频道名称（以开头`arn`）。

   请注意，您不会使用用户凭据发送到 CMAF Ingest。 MediaPackage

**示例**

两个 URLs 看起来像这个例子：

`https://mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/curling-channel-group/1/curling-channel/`

`https://mz82o4-2.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/curling-channel-group/1/curling-channel/`

注意以下几点：
+ UR `v1/` L 的末尾是 MediaPackage目标 URL 架构的版本，它不引用 MediaPackage v1。
+ `curling-channel-group/`是 MediaPackage 操作员创建的频道组的名称。
+ `curling-channel/`是 MediaPackage操作员创建的 MediaPackage 频道的名称。这不是 MediaLive 频道的名字。
+ 两者中唯一的区别 URLs 是`-1`和`-2`之前的`.ingest`。

# 创建 CMAF 摄取输出组
<a name="creating-cmafi-output-group"></a>

在创建[或编辑 MediaLive 频道时，您可以创建](creating-a-channel-step4.md)输出组及其输出。

1. 在**创建通道**或**编辑通道**页面上的**输出组**中，选择**添加**。

1. 在**添加输出组**部分中，选择 **CMAF 摄取**，然后选择**确认**。将显示更多部分：
   + **CMAF 摄取目标** – 该部分包含输出目标的字段。在[规划 CMAF Ingest 输出组的目的地时，](downstream-system-cmafi-empv2.md)您应该已经获得 URLs 要输入的。URL 类似于：

     `https://mz82o4-1.ingest.hnycui.mediapackagev2.us-west-2.amazonaws.com/in/v1/curling-channel-group/1/curling-channel/`

     将**凭证**部分留空。您无需输入凭据即可进行身份验证 MediaPackage。
   + **CMAF 摄取设置** – 该部分包含用于配置段交付方式和配置各种功能行为方式的字段。请查看此部分后面的内容。
   + **CMAF 摄取输出** – 该部分显示默认添加的单个输出。您可以添加更多输出，也可以在每个输出中添加视频、音频和字幕编码。请查看此部分后面的内容。

**Topics**
+ [CMAF 摄取设置部分中的字段](#cmafi-opg-settings)
+ [视频、音频和字幕流（编码）的字段](#cmafi-opg-streams-section)

## CMAF 摄取设置部分中的字段
<a name="cmafi-opg-settings"></a>


| 字段 | 说明 | 
| --- | --- | 
| Name | 输出组的名称。这个名字是内部的 MediaLive。它不会显示在输出中。例如 Sports Curling。 | 
| SCTE35 类型 | 要在输出组中传递 SCTE 35 消息，请选择 SCTE\$135\$1WITHOUT\$1SEGMENTATION。WITHOUT\$1SEGMENTATION 的措辞表明，每条插入的 SCTE 35 消息都将在视频中生成新的 IDR，但不会生成新段。这种处理是 CMAF 摄取的标准处理方式 有关 SCTE 35 设置的更多信息，请参阅 [处理 SCTE 35 消息](scte-35-message-processing.md)。 | 
| 段长度、段长度单位 |  输入段的首选持续时间（以毫秒或秒为单位）。段将在指定持续时间后的下一个关键帧结束，因此实际的段持续时间可能更长。如果单位为秒，则持续时间可能是几分之一秒。  | 
| 发送延迟（毫秒） |  通道启动或取消暂停时，延迟管道 1 输出的毫秒数。（此字段仅适用于标准通道。在单管道通道中，该值将被忽略。）  有些打包程序总是会提取其收到的第一个管道。因此，您可以在此处设置一个值，确保管道 0 始终首先到达打包程序。  | 
| 尼尔森行为 ID3  | 有关此功能的信息，请参阅 [将尼尔森水印转换为 ID3](feature-nielsen-id3.md)。 | 

## 视频、音频和字幕流（编码）的字段
<a name="cmafi-opg-streams-section"></a>

1. 在 **CMAF 摄取输出**中，选择**添加输出**，将相应数量的输出添加到输出列表中。

1. 选择第一个**设置**链接以查看第一个输出。每个输出都有两个部分：**输出设置**和**流设置**。

1. 填写**输出设置**：
   + **输出名称**：将随机生成的名称更改为有意义的名称。此名称是内部名称 MediaLive；它不会出现在输出中。
   + **名称修饰符**：为输出组中的每个输出 MediaLive 分配一个顺序修饰符：**\$11**、**\$12** 等。如果需要，请更改名称。

1. 填写**流设置**。该部分包含要在输出中创建的输出编码（视频、音频和字幕）的字段。有关创建编码的信息，请参见以下部分：
   + [设置视频编码](creating-a-channel-step6.md)
   + [设置音频编码](creating-a-channel-step7.md)
   +  [设置字幕编码](creating-a-channel-step8.md)

# 创建帧捕捉输出组
<a name="opg-framecapture"></a>

创建 AWS Elemental MediaLive 频道时，可能需要添加帧捕获输出组。帧捕获输出是对流的补充；它本身并不是流式输出。这种类型的输出可能对您的工作流有用。例如，您可以使用帧捕获输出来创建内容的缩略图。（您也可以使用[缩略图功能](thumbnails.md)来创建缩略图。）

**Topics**
+ [整理帧捕获输出组中的编码](design-framecapture-package.md)
+ [与下游系统协调](framecapture-op-origin-server-s3.md)
+ [创建帧捕获输出组](creating-framecapture-output-group.md)

# 整理帧捕获输出组中的编码
<a name="design-framecapture-package"></a>

帧捕捉输出组可以包含以下内容：
+ 一个或多个输出。

每个输出只能包含一个视频 JPEG 编码。

# 与下游系统协调
<a name="framecapture-op-origin-server-s3"></a>

帧捕获输出组的目标始终在 Amazon S3 存储桶中。您和 Amazon S3 操作员必须就要使用的存储桶达成一致。

**安排目标设置**

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

   请注意，帧捕获输出组只需要一组目标地址，而不是每个输出都需要一个目的地址。

1. 我们建议您设计目标（即 Amazon S3 存储桶和所有文件夹）的完整路径。请参阅 [帧捕获目标](framecapture-destinations.md)。

1. 如果有任何尚不存在的存储桶，请让 Amazon S3 用户创建。

   使用 MediaLive，Amazon S3 存储桶名称不得使用点符号，这意味着它不得使用。 （点）存储桶名称中的单词之间。

1. 与 Amazon S3 用户讨论存储桶所有权。如果存储桶属于另一个 AWS 账户，您通常希望该账户成为输出的所有者。有关更多信息，请在此过程后参阅[控制对输出的访问](archive-op-origin-server-s3.md#setting-dss-archive-canned-acl)。

请注意，您不需要用户凭证即可发送到 S3 存储桶。 MediaLive 有权通过可信实体写入存储桶。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

## 控制对输出的访问
<a name="setting-dss-framecapture-canned-acl"></a>

您可能正在将输出文件发送到另一个 AWS 账户所有的 Amazon S3 存储桶中。在这种情况下，您通常希望另一个账户成为输出文件（存储桶中的对象）的所有者。如果存储桶拥有者没有成为对象所有者，则您 (MediaLive) 将是唯一可以在不再需要文件时删除这些文件的代理。

因此，在输出文件存入 Amazon S3 存储桶后转让其所有权符合所有人的利益。

要转移对象所有权，需要进行以下设置：
+ 存储桶拥有者必须添加存储桶权限策略，该策略授予您在向存储桶 MediaLive传送输出文件时添加 Amazon S3 预设访问控制列表 (ACL) 的权限。存储桶拥有者应阅读亚马逊简单存储服务用户指南 ACLs中[使用管理访问权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls)中的信息。存储桶所有者必须为存储桶设置 ACL 权限，而非为对象设置 ACL 权限。
+ 存储桶所有者还应设置对象所有权。此功能实际上使发送者 () 必须包含*存储桶所有者的完全控制* ACL（而不是可选MediaLive）。存储桶所有者应阅读《Amazon Simple Storage Service 用户指南》中[控制对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership)中的信息。

  如果存储桶所有者实现了此功能，则必须设置 MediaLive 为包含 ACL。否则，向 Amazon S3 存储桶传输的操作将失败。
+ 您必须设置为在 MediaLive 向*存储桶交付存储桶时包含存储桶所有者的完全控制*** ACL。您将在[创建通道](archive-destinations.md)时执行此设置。

S3 预装 ACL 功能支持 ACLs 除*存储桶所有者完全控制*之外的其他功能。但是其他 ACLs 这些通常不适用于从中传送视频的用例 MediaLive。

# 创建帧捕获输出组
<a name="creating-framecapture-output-group"></a>

在创建[或编辑 MediaLive 频道时，您可以创建](creating-a-channel-step4.md)输出组及其输出。

1.  在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1.  在 **Add output group (添加输出组)** 部分中，选择 **Frame capture (帧捕获)**，然后选择 **Confirm (确认)**。此时将显示更多部分。
   +  **目标** – 该部分包含[输出目标](framecapture-destinations.md)的字段。
   +  **帧捕获设置** – 该部分包含输出组名称和[输出目标](framecapture-destinations.md)的字段。
   +  **帧捕获输出** – 该部分显示默认添加的输出。帧捕获输出只能包含一个输出，因此，不要单击**添加输出**。

     要查看这些字段，请选择 **Settings (设置)** 链接。

1.  在 **Frame capture outputs (帧捕获输出)** 中，选择 **Settings (设置)** 链接以查看该单个输出的部分：
   +  **输出设置** – 该部分包含[输出目标](framecapture-destinations.md)的字段。
   +  **流设置** – 该部分包含[输出流](output-settings-framecapture.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   +  在 **Frame capture settings (帧捕获设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Game Thumbnails**。
   +  在 **Frame capture outputs (帧捕获输出)** 中，为 **Name (名称)** 输入输出的名称。该名称是 MediaLive 内部的；它不会显示在输出中。

1.  要填写其他字段，请参阅该过程后面列出的主题。

1.  在设置完该输出组及其单个输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

**Topics**
+ [帧捕获目标](framecapture-destinations.md)
+ [流的设置](output-settings-framecapture.md)

# 帧捕获目标
<a name="framecapture-destinations"></a>

以下字段配置帧捕获文件（目标）的位置和名称。
+ **输出组** – **帧捕获组目标**部分
+ **输出组** – **帧捕获设置** – **CDN 设置**

  **输出设置** – **名称修饰符**

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

## 为输出目标设计路径。
<a name="framecapture-about-destination-path"></a>

**设计路径**
+ 按照以下语法设计一个或多个目标路径：

  `protocol bucket folders baseFilename nameModifier counter extension`

  例如，对于标准通道：

  `s3ssl://amzn-s3-demo-bucket1/sports-thumbnails/delivery/curling-20180820.00000.jpg`

  `s3ssl://amzn-s3-demo-bucket1/sports-thumbnails/backup/curling-20180820.00000.jpg`

如果您有两个目标，则目标路径之间必须有所不同。一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。

下表将示例中的每个部分映射到语法中的部分。


| URL 的部分 | 示例 | Comment | 
| --- | --- | --- | 
| protocol | s3ssl:// | 协议始终是 s3ssl://，因为帧捕获输出的目标始终是 S3 存储桶。 | 
| 路径的存储桶部分 | amzn-s3-demo-bucket1 |  使用 MediaLive，S3 存储桶名称不得使用点符号，这意味着它不得使用。 （点）存储桶名称中的单词之间。  | 
| 路径的文件夹部分 | sports-thumbnails/delivery/ | 这些文件夹可以存在，也可以不存在，您可随心意保存任意时长。文件夹必须始终以斜杠结尾。 | 
| baseFilename | curling | 不要将文件名以正斜杠结尾。 | 
| nameModifier | -20180820 | 对于帧捕获输出，修饰符是可选的。 | 
| counter 前面的分隔符 | . | MediaLive 自动插入此分隔符。 | 
| counter | 00000 | MediaLive 自动生成此计数器。最初，这是一个从 00000 开始的五位数字，每次增加 1。即 00000、00001、00002 依此类推。在达到 99999 之后，下一个数字是 100000（六位数字），然后是 100001、100002，依此类推。然后从 999999 到 1000000（七位数字），依此类推。 | 
| extension 前面的圆点 | . | MediaLive 自动插入这个点。 | 
| extension | jpg | 始终为 jpg。 | 

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

**指定输出的位置**

1. 在相应的字段中输入目标的各个部分。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/framecapture-destinations.html)

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

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

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

# 流的设置
<a name="output-settings-framecapture"></a>

默认情况下，将为输出设置一个视频编码。这是帧捕获输出可以包含的唯一编码。因此，您无法添加音频或字幕编码或更多视频编码。

有关视频编码中字段的信息，请参阅[设置视频编码](creating-a-channel-step6.md)。

# 创建 HLS 输出组
<a name="opg-hls"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 HLS 输出组。有关 HLS 输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。有关在 HLS 组和 MediaPackage 输出组之间进行选择的信息，请参阅[在 HLS 输出组和 MediaPackage 输出组之间进行选择](hls-choosing-hls-vs-emp.md)。

**Topics**
+ [整理 HLS 输出组中的编码](design-hls-package.md)
+ [与下游系统协调](hls-opg-coordinate-dss.md)
+ [创建 HLS 输出组。](creating-hls-output-group.md)

# 整理 HLS 输出组中的编码
<a name="design-hls-package"></a>

HLS 输出组通常设置为视频 ABR 堆栈。视频 ABR 堆栈是一个包含以下内容的输出组：
+ 多个输出。

每个输出可以包含以下内容：
+ 一个视频编码（格式副本）。通常，每个视频编码的分辨率都不同。
+ 一个或多个音频编码。
+ 一个或多个字幕编码。字幕是嵌入式，要么是附加式。

有两种方法可以整理编码，具体取决于音频编码是必须捆绑在一起还是每种编码都以自己的格式副本呈现。您应该已经从下游系统[获取此信息](identify-dss-video-audio.md)。

**需要捆绑音频的下游播放器**

计划输出组包含以下内容：
+ 每个视频编码一个输出。此输出包含一个视频编码、所有音频编码和所有字幕编码（如果嵌入了字幕）。

  每个输出中都将出现相同的音频编码。例如，英语和法语编码将出现在高分辨率输出中，然后，同样的英语和法语编码也将出现在低分辨率输出中。
+ 如果字幕是附件字幕，则每个字幕编码一个输出。

下图说明了嵌入字幕编码时的 HLS 输出组。

![\[Output group diagram showing embedded and non-embedded outputs with associated elements.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output11-ABR-2Ve-2A.png)


下图说明了附加字幕编码时的 HLS 输出组。

![\[Output group diagram showing V, A, A components, V, A, A outputs, and two C outputs.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output12-ABR-2V-2A-2C.png)


**需要单独音频的下游播放器**

计划输出组包含以下内容：
+ 每个视频编码一个输出。此输出包含一个视频和所有字幕编码（如果嵌入了字幕）。
+ 每个音频编码一个输出。

  音频编码可能适用于不同的语言，可能适用于不同的比特率，也可能适用于不同的语言和比特率。
+ 如果字幕是附件字幕，则每个字幕编码一个输出。

此输出组中音频编码的排列方式称为*音频格式副本组*。

下图说明了带有音频格式副本组和嵌入式字幕编码的 HLS 输出组。

![\[Output group diagram showing four outputs: two marked as embedded, and two marked as A.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output13-ABR-2Ve-2Asep.png)


下图说明了带有音频格式副本组和 Sidecar 字幕编码的 ABR 堆栈的 HLS 输出组。

![\[Output group diagram showing six outputs: two V, two A, and two C, arranged in a row.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output14-ABR-2V-2Asep-2C.png)


# 与下游系统协调
<a name="hls-opg-coordinate-dss"></a>

AWS MediaLive Elemental 中的 HLS 输出组支持多种类型的下游系统。阅读适用于您正在使用的系统的信息。

**Topics**
+ [HLS 输出组到 Amazon S3](origin-server-hls-s3.md)
+ [HLS 输出组为 MediaStore](origin-server-ems.md)
+ [HLS 输出组为 MediaPackage](origin-server-hls-emp.md)
+ [HLS 输出组到 v2 MediaPackage](origin-server-hls-empv2.md)
+ [HLS 输出组到 HTTP](origin-server-http.md)

# HLS 输出组到 Amazon S3
<a name="origin-server-hls-s3"></a>

如果您[确定](identify-downstream-system.md)要创建以 Amazon S3 为目标的 HLS 输出组，请按照以下步骤操作。您和下游系统的操作员必须就 HLS 输出组的输出目标达成一致。

**安排目标设置**

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1. 我们建议您设计目标（即 Amazon S3 存储桶和所有文件夹）的完整路径。请参阅[为输出目标设计路径。](hls-destinations-design-step.md)。

1. 如果有任何尚不存在的存储桶，请让 Amazon S3 用户创建。

   使用 MediaLive，Amazon S3 存储桶名称不得使用点符号，这意味着它不得使用。 （点）存储桶名称中的单词之间。

1. 与 Amazon S3 用户讨论所有权。如果存储桶属于另一个 AWS 账户，您通常希望该账户成为输出的所有者。有关更多信息，请在此过程后参阅[控制对输出的访问](#setting-dss-hls-canned-acl)。

请注意，您不需要用户凭证即可发送到 S3 存储桶。 MediaLive 有权通过可信实体写入 S3 存储桶。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

## 控制对输出的访问
<a name="setting-dss-hls-canned-acl"></a>

您可能正在将输出文件发送到另一个 AWS 账户所有的 Amazon S3 存储桶中。在这种情况下，您通常希望另一个账户成为输出文件（存储桶中的对象）的所有者。如果存储桶拥有者没有成为对象所有者，则您 (MediaLive) 将是唯一可以在不再需要文件时删除这些文件的代理。

因此，在输出文件存入 Amazon S3 存储桶后转让其所有权符合所有人的利益。

要转移对象所有权，需要进行以下设置：
+ 存储桶拥有者必须添加存储桶权限策略，该策略授予您在向存储桶 MediaLive传送输出文件时添加 Amazon S3 预设访问控制列表 (ACL) 的权限。存储桶拥有者应阅读亚马逊简单存储服务用户指南 ACLs中[使用管理访问权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls)中的信息。存储桶所有者必须为存储桶设置 ACL 权限，而非为对象设置 ACL 权限。
+ 存储桶所有者还应设置对象所有权。此功能实际上使发送者 () 必须包含*存储桶所有者的完全控制* ACL（而不是可选MediaLive）。存储桶所有者应阅读《Amazon Simple Storage Service 用户指南》中[控制对象所有权](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership)中的信息。

  如果存储桶所有者实现了此功能，则必须设置 MediaLive 为包含 ACL。否则，向 Amazon S3 存储桶传输的操作将失败。
+ 您必须设置为在 MediaLive 向*存储桶交付存储桶时包含存储桶所有者的完全控制*** ACL。您将在[创建通道](hls-destinations-s3-specify.md)时执行此设置。

S3 预装 ACL 功能支持 ACLs *存储桶所有者完全控制*以外的其他功能，但其他功能 ACLs 通常不适用于从中传送视频的用例。 MediaLive

# HLS 输出组为 MediaStore
<a name="origin-server-ems"></a>

如果您[确定](identify-downstream-system.md)要创建以目标为目标的 HLS 输出组，请按照以下步骤操作。 AWS Elemental MediaStore 您和下游系统的操作员必须就 HLS 输出组的输出目标达成一致

**安排目标设置**

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1. 我们建议您设计目标的完整路径。请参阅[为输出目标设计路径。](hls-destinations-design-step.md)。

   如果您有两个目标，则目标路径之间必须有所不同。一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。

1. 要求 MediaStore 用户创建任何尚不存在的容器。

1. 获取一个或多个容器的数据端点。例如：

   `https://a23f.data.mediastore.us-west-2.amazonaws.com`

   `https://fe30.data.mediastore.us-west-2.amazonaws.com`

   您需要数据端点。您不需要容器名称。

请注意，您不需要用户凭据即可发送到 MediaStore 容器。 MediaLive 有权通过可信实体写入 MediaStore 容器。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

# HLS 输出组为 MediaPackage
<a name="origin-server-hls-emp"></a>

如果您[确定](identify-downstream-system.md)要创建 HLS 输出组并通过 HTTPS 发送到 AWS Elemental MediaPackage ，请按照以下步骤操作。您和下游系统的操作员必须就 HLS 输出组的输出目标达成一致。

**安排目标设置**

1. 要求 MediaPackage 用户创建一个频道 MediaPackage。即使该 MediaLive频道是[标准频道](plan-redundancy.md)（有两个管道），您也只需要一个 MediaPackage 频道。

1. 与 MediaPackage 用户安排设置 HTTPS 用户凭证。您必须通过安全连接发送到 MediaPackage 。

1. 获取以下信息：
   + 频道的两个 URLs （输入端点是 MediaPackage 术语）。一个频道 URLs 的两个看起来像这样：

      `https://6d2c.mediapackage.uswest-2.amazonaws.com/in/v2/9dj8/9dj8/channel`

      `https://6d2c.mediapackage.uswest-2.amazonaws.com/in/v2/9dj8/e333/channel`

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

     确保获取的是 URLs （以开头`https://`），而不是频道名称（以开头`arn`）。
   + 访问下游系统的用户名和密码，如果下游系统需要经过身份验证的请求。请注意，这些用户凭证与用户身份验证（而不是与协议）相关。用户身份验证与下游系统是否将接受您的请求有关。协议与请求是否通过安全连接发送有关。

# HLS 输出组到 v2 MediaPackage
<a name="origin-server-hls-empv2"></a>

如果您[确定](hls-choosing-hls-vs-emp.md)要创建 HLS 输出组并发送到 MediaPackage v2，请按照以下步骤操作。您和下游系统的操作员必须就 HLS 输出组的输出目标达成一致。

**安排目标设置**

1. 要求 MediaPackage 用户创建一个频道 MediaPackage。即使该 MediaLive频道是[标准频道](plan-redundancy.md)（有两个管道），您也只需要一个 MediaPackage 频道。

1. 获取该频道的两个 URLs （输入端点是 MediaPackage 术语）。一个频道 URLs 的两个看起来像这样：

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

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

   两 URLs 者略有不同，如上面的示例所示。

   确保获取的是 URLs （以开头`https://`），而不是频道名称（以开头`arn`）。

   请注意，您不会使用用户凭据来发送到 MediaPackage v2。

# HLS 输出组到 HTTP
<a name="origin-server-http"></a>

如果您[确定](identify-downstream-system.md)要创建以下列下游系统之一为目标的 HLS 输出组，请按照以下步骤操作：
+ HTTP 或 HTTPS PUT 服务器。
+ HTTP 或 HTTPS WebDAV 服务器。
+ Akamai 原始服务器。

您和下游系统的操作员必须就 HLS 输出组的输出目标达成一致。

通过 HTTP 传输 HLS 时，通常是向原始服务器传输。原始服务器通常对目标路径规则有明确的指南，包括主清单（`.M3U8` 文件）的文件名。

**安排目标设置**

您必须与下游系统的操作员沟通，以协调您的设置。

1. 如果下游系统不是 Akamai 服务器，请弄清楚它使用的是 PUT 还是 WebDAV。

1. 确定下游系统是否具有特殊的连接要求。这些连接字段在控制台的 HLS 输出组 **CDN 设置**部分中进行了分组。要在 MediaLive 控制台上显示此页面，请在**创建频道**页面的**输出组**部分中，选择**添加**，然后选择 **HLS**。选择群组，然后在 **HLS 设置**中打开 **CDN 设置**。

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1. 了解下游系统是否使用安全连接。如果是，请与操作员安排设置用户凭证。

1. 确定下游系统是否需要在主清单和子清单中使用自定义路径。有关更多信息，请参阅 [自定义 HLS 清单中的路径](hls-manifest-paths.md)。

1. 如果您设置[标准通道](plan-redundancy.md)，请弄清楚下游系统是否支持冗余清单。如果支持，请确定是否要实施该功能。有关更多信息，请参阅 [创建冗余 HLS 清单](hls-redundant-manifests.md)，并特别查看 [适用于大多数下游系统的规则](hls-redundant-manif-most-systems.md) 和 [Akamai 的规则 CDNs](hls-redundant-manif-akamai.md) 了解具体说明。

1. 与下游系统的操作员交谈，商定三类 HLS 文件（主清单、子清单和媒体文件）的完整目标路径。 MediaLive 始终将每个目标的所有三类文件放在同一个位置。无法配置为 MediaLive 将某些文件放在其他位置。

   如果您有两个目标，则目标路径之间必须有所不同。一个路径中必须至少有一个部分与另一个路径不同。所有部分都不同是可以接受的。与下游系统的操作员讨论此要求。下游系统可能有关于唯一性的特定规则。

1. 与下游系统的操作员讨论对三类 HLS 文件的名称的特殊要求。通常，下游系统没有特殊要求。

1. 与下游系统的操作员讨论对子清单和媒体文件名称的修饰符的特殊要求。

   子清单和媒体文件始终在其文件名中包含该修饰符。该修饰符将每个输出与其他输出区分开来，因此，它在每个输出中必须是唯一的。例如，高分辨率输出的文件必须与低分辨率输出文件的名称不同。例如，一个输出的文件可能有文件名和修饰符 `curling_high`，而另一个输出的文件则可能有文件名和修饰符 `curling_low`。

   通常，下游系统没有特殊要求。

1. 询问下游系统操作员是否应在单独的子目录中设置媒体文件。例如，一个子目录包含前 1000 个分段，另一个子目录包含后 1000 个分段，依此类推。

   大多数下游系统不需要具有单独的子目录。

1. 商定下游系统是否对目标路径的某些部分具有特殊要求。
   + 例如，下游系统可能只要求您发送到特定主机。下游系统不需要知道您将使用的文件夹或文件名。

     例如，发送到两个您命名的文件夹，但位于主机上的 `https://203.0.113.55`

     或者发送到两个您命名的文件夹，但位于主机上的 `https://203.0.113.55` 和 `https://203.0.113.82`
   + 或者，下游系统可能要求使用特定的主机和文件夹，但文件名由您选择。例如，此主机和文件夹：

     `https://203.0.113.55/sports/delivery/`

     `https://203.0.113.55/sports/backup/`

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

# 创建 HLS 输出组。
<a name="creating-hls-output-group"></a>

在创建[或编辑 MediaLive 频道时，您可以创建](creating-a-channel-step4.md)输出组及其输出。

## 过程
<a name="hls-create-procedure"></a>

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1. 在 **Add output group (添加输出组)** 部分中，选择 **HLS**，然后选择 **Confirm (确认)**。将显示更多部分：
   + **HLS 组目标** – 该部分包含输出目标的字段。有关更多信息，请参阅下游系统类型部分：
     + [输出目标的字段 – 发送到 Amazon S3](hls-destinations-s3.md)
     + [输出目的地的字段-发送到 MediaStore](hls-destinations-ems.md)
     + [输出目的地的字段-发送到 MediaPackage](hls-destinations-emp.md)
     + [输出目标的字段 – 发送到 HTTP 服务器](hls-destinations-http.md)
   + **HLS 设置** – 该部分包含[输出目标](hls-destinations-http.md)、[弹性](hls-other-features.md#hls-resiliency)和[字幕](hls-other-features.md#hls-captions)的字段。
   + **HLS 输出** – 该部分显示默认添加的单个输出。
   + **位置** – 该部分包含用于[在清单中自定义路径](hls-manifest-paths.md)的字段。
   + **清单和分段** – 该部分包含用于[配置冗余清单](hls-opg-redundant-manifest.md)、配置[清单内容](hls-other-features.md#hls-manifest-contents)和[配置媒体分段](hls-other-features.md#hls-segment-fields)的字段。
   + **DRM** – 该部分包含用于配置[输出加密](hls-other-features.md#hls-drm)的字段。
   + **广告标记** – 该部分包含用于设置 [SCTE-35 广告效用](hls-other-features.md#hls-ad-markers)的字段。
   + **字幕** – 该部分包含用于配置[字幕](hls-other-features.md#hls-captions)的字段。
   + **ID3**— 本节包含用于设置的字段[ID3](hls-other-features.md#hls-id3)。

1. 如果您的计划在该输出组中包含多个输出，则在 **HLS outputs (HLS 输出)** 中选择 **Add output (添加输出)** 以添加相应数量的输出。

1. 在 **HLS outputs (HLS 输出)** 中，选择第一个 **Settings (设置)** 链接以查看第一个输出的部分：
   + **输出设置** – 该部分包含输出目标的字段。请参阅以下部分：
     + [输出目标的字段 – 发送到 Amazon S3](hls-destinations-s3.md)
     + [输出目的地的字段-发送到 MediaStore](hls-destinations-ems.md)
     + [输出目的地的字段-发送到 MediaPackage](hls-destinations-emp.md)
     + [输出目标的字段 – 发送到 HTTP 服务器](hls-destinations-http.md)

     该部分还包含 [HLS 容器](hls-container.md)的容器字段。
   + **流设置** – 该部分包含[输出流](hls-streams-section.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   + 在 **HLS settings (HLS 设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Curling**。
   + 在每个输出的 **HLS outputs (HLS 输出)** 部分中，为 **Name (名称)** 输入输出的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **high resolution**。

1. 要填写其他字段，请参阅该过程后面列出的主题。

1. 在设置完该输出组及其输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

**Topics**
+ [过程](#hls-create-procedure)
+ [HLS 输出组中的目标字段](hls-destinations.md)
+ [HLS 容器的字段](hls-container.md)
+ [用于在清单中自定义路径的字段](hls-custom-manifests.md)
+ [冗余清单的字段](hls-opg-redundant-manifest.md)
+ [视频、音频和字幕流（编码）的字段](hls-streams-section.md)
+ [其他 HLS 功能的字段](hls-other-features.md)

# 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** 的文件夹中

# HLS 容器的字段
<a name="hls-container"></a>

以下字段在每个输出中配置容器。
+ **HLS 输出** – **输出设置** – **HLS 设置**部分

这些字段控制清单内容和分段结构。相比之下，[清单内容的字段](hls-other-features.md#hls-manifest-contents)中所述的字段控制在输出中具有多少个清单和分段。

**配置容器**

1. 在 **HLS Settings (HLS 设置)** 中，选择相应的选项。有关这些选项的信息，请参阅该过程后面的列表。

1. 对于 **Standard hls (标准 hls)**，将显示更多字段。选择 **Transport/container configuration (传输/容器配置)** 和 **PID settings (PID 设置)**。此时将显示更多字段。

1. 更改任何字段。通常，只有在下游系统为您提供值时，您才会更改这两个部分中的字段。

**关于 HLS 容器**

MediaLive 支持以下类型的容器：
+ **标准 hls** – 如果要将流（编码）打包到传输流中，请选择这种类型的容器。为输出组中的所有输出选择该容器类型（音频渲染组包含的输出除外）。每个输出可能包含以下编码：
  + 一个视频编码
  + 一个具有嵌入式字幕的视频编码
  + 一个视频编码（和可选的嵌入式字幕）以及一个或多个音频编码
  + 一个字幕编码
+ **Fmp4 hls** — 如果要将流（编码）打包为片段，请选择这种类型的容器。 MP4为输出组中的所有输出选择该容器类型（音频渲染组包含的输出除外）。每个输出可能包含以下编码：
  + 一个视频编码
  + 一个具有嵌入式字幕的视频编码
  + 一个字幕编码
+ **仅音频** – 为音频格式副本组包含的每个仅音频输出选择这种类型的容器。格式副本组可以是 TS（传输流）的一部分，也可以是 f MP4 包的一部分。有关创建音频渲染组的信息，请参阅[HLS 的音频渲染组](audio-renditions.md)。
+ **帧捕获** – 为在输出组中创建帧捕获 JPEG 文件，请选择此类型的容器。此容器用于实现实施 trick-play。有关此功能的更多信息以及在通道中设置此功能的说明，请参阅 [符合映像媒体播放列表规范的 trick-play 轨道](trick-play-roku.md)。

# 用于在清单中自定义路径的字段
<a name="hls-custom-manifests"></a>

在主清单中，具有每个子清单的路径。在每个子清单中，具有该清单的媒体文件的路径。

您可以选择更改这些路径的语法。通常，只有在下游系统具有特殊路径要求时，您才需要更改语法。

以下字段与清单中的自定义路径有关：
+ **HLS output group - Location (HLS 输出组 - 位置)** - **Base URL content (基本 URL 内容)** 字段。
+ **HLS output group - Location (HLS 输出组 - 位置)** - **Base URL manifest (基本 URL 清单)** 字段。

有关在清单中设置自定义路径的更多信息，请参阅[自定义 HLS 清单中的路径](hls-manifest-paths.md)。

# 冗余清单的字段
<a name="hls-opg-redundant-manifest"></a>

MediaLive 支持 HLS 规范中指定的冗余清单。您可以在标准通道中启用该功能。

以下字段与冗余清单有关：
+ **HLS output group - Manifests and Segments - Redundant manifests (HLS 输出组 - 清单和分段 - 冗余清单)** 字段
+ **HLS output group - Location (HLS 输出组 - 位置) - Base URL manifest (基本 URL 清单)** 字段
+ **HLS output group - Location (HLS 输出组 - 位置) - Base URL content (基本 URL 内容)** 字段

您无法在 MediaPackage 作为下游系统的 HLS 输出组中启用此功能。

有关设置冗余清单的更多信息，请参阅[创建冗余 HLS 清单](hls-redundant-manifests.md)。

# 视频、音频和字幕流（编码）的字段
<a name="hls-streams-section"></a>

以下字段与每个输出中的视频、音频和字幕编码的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 其他 HLS 功能的字段
<a name="hls-other-features"></a>

**Topics**
+ [连接重试的字段](#hls-reconnection-fields)
+ [清单内容的字段](#hls-manifest-contents)
+ [分段的字段](#hls-segment-fields)
+ [弹性的字段](#hls-resiliency)
+ [DRM 的字段](#hls-drm)
+ [SCTE-35 广告效用的字段](#hls-ad-markers)
+ [字幕的字段](#hls-captions)
+ [ID3 元数据字段](#hls-id3)

## 连接重试的字段
<a name="hls-reconnection-fields"></a>

**输出组 – HLS 设置 – CDN 设置**部分中的以下字段配置重新连接到下游系统的行为：
+ **Connection retry interval (连接重试间隔)**
+ **Num retries (重试次数)**
+ **Filecache duration (文件缓存持续时间)**
+ **Restart delay (重新启动延迟)**

有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

## 清单内容的字段
<a name="hls-manifest-contents"></a>

**HLS output group – Manifests and Segments (HLS 输出组 - 清单和分段)** 部分中的以下字段配置在 HLS 子清单中包含的信息：
+ **Output selection (输出选择)**
+ **Mode (模式)**
+ **Stream inf resolution (流 inf 分辨率)**
+ **Manifest duration format (清单持续时间格式)**
+ **Num segments (分段数)**
+ **仅 I 帧播放列表** – 此字段用于通过 I 帧实施 trick-play。有关更多信息，请参阅 [通过 I 帧实施 Trick-play 轨道](trick-play-i-frames.md)。
+ **节目日期时间（PDT）**– 此字段用于在清单文件中包含或排除 `EXT-X-PROGRAM-DATE-TIME` 标签。标签信息可帮助下游播放器将流同步到 **PDT 时钟**字段中选定的源。
+ **节目日期时间（PDT）段** – 此字段用于设置插入 `EXT-X-PROGRAM-DATE-TIME` 标签的时间间隔，以秒为单位。
+ **节目日期时间（PDT）时钟** – 此字段用于选择 PDT 的时间源。可以选择输出时间码或 UTC 时间。
+ **Client cache (客户端缓存)**
+ **Timestamp delta microseconds (时间戳增量 (微秒))**
+ **Codec specification (编解码器规范)**
+ **Manifest compression (清单压缩)**

有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

## 分段的字段
<a name="hls-segment-fields"></a>

以下字段在输出中配置媒体分段。
+ **HLS output group – Manifests and Segments (HLS 输出组 - 清单和分段)** 部分中的以下字段：
  + **TS file mode (TS 文件模式)**
  + **Segment length (分段长度)**
  + **Keep segments (保留分段)**
  + **Min segment length (最小分段长度)**
+ **HLS 输出** – **输出设置** – **H.265 打包类型**。此字段仅适用于 f MP4 输出。 MediaLive对于其他类型，将忽略此字段中的值。

有关某个字段的详细信息，请选择该字段旁边的 **Info (信息)** 链接。

## 弹性的字段
<a name="hls-resiliency"></a>

以下字段与在 HLS 输出中实施弹性有关。
+ **HLS 输出组** - **HLS 设置**部分 – **输入损耗操作**

可以选择更改 **Input loss action (输入损耗操作)** 的值。

**对大多数下游系统进行设置**

如果要将该 HLS 输出发送到 AWS Elemental MediaPackage以外的下游系统，请选择 **Info (信息)** 链接以确定要选择哪个选项。有关更多信息，请参阅 [处理视频输入损耗](feature-input-loss.md)。

**Setting up for MediaPackage**

如果您要将此 HLS 输出发送到 AWS Elemental MediaPackage，请将此字段设置为与您设置的[频道类别](channel-class.md)相匹配：
+ 如果该频道是标准频道（要支持输入冗余 MediaPackage），请将此字段设置为 **PAUSE\$1OUTPU** T。

  使用此设置，如果 MediaLive 停止在一个管道上生成输出，则 MediaPackage 会检测其当前输入中缺少内容，然后切换到另一个输入。最大程度地减少丢失的内容。

  （如果您将此字段设置为 **EMIT\$1** OUTPUT，则 MediaLive会将填充帧发送到。 MediaPackage MediaPackage 不认为填充框是丢失的内容，因此不会切换到其他输入。）
+ 如果通道是一个单管道通道，则将此字段设置为 **EMIT\$1OUTPUT**。

  使用此设置，如果管道出现故障， MediaLive 则会 MediaPackage 继续传送到自己的下游系统（尽管内容将是填充框架）。

  （如果您将该字段设置为 **PAUSE\$1OUTPUT**，则 MediaPackage 停止更新其终端节点，这可能会导致下游系统出现问题。）

## DRM 的字段
<a name="hls-drm"></a>

只有在您设置 DRM 以使用静态密钥加密输出时，才需要填写 **DRM** 部分。
+ 在 **Key provider (密钥提供程序)** 设置中，选择 **Static key (静态密钥)**。
+ 根据需要，填写其他字段。有关某个字段的详细信息，请选择该字段旁边的 **Info (信息)** 链接。

在静态密钥设置中，您输入此部分中的加密密钥 (以及其他配置数据)，然后将该密钥提供给其他方 (例如，通过电子邮件发送)。静态密钥不是真正的 DRM 解决方案，并且不是非常安全。

MediaLive 仅支持静态密钥作为加密选项。要将 DRM 解决方案与密钥提供程序一起使用，必须通过创建输出[组而不是 HLS MediaPackage 输出组](creating-mediapackage-output-group.md)将 AWS Elemental MediaPackage输出传送到。然后，您可以使用对视频进行加密 MediaPackage。有关更多信息，请参阅《 AWS Elemental MediaPackage 用户指南》。

## SCTE-35 广告效用的字段
<a name="hls-ad-markers"></a>

如果您计划在输出中包含 SCTE-35 消息并修饰 HLS 清单，请填写**广告标记**部分。请参阅[处理 SCTE 35 消息](scte-35-message-processing.md)，尤其是[为 HLS 输出启用传递](scte-35-passthrough-or-removal.md#procedure-to-enable-passthrough-hls)。

## 字幕的字段
<a name="hls-captions"></a>

以下字段与 HLS 输出中的嵌入式字幕有关。如果您的计划包括在该 HLS 输出中创建至少一个嵌入式字幕编码，则以下字段适用：
+ **Captions (字幕)** 部分中的 **Caption language setting (字幕语言设置)**。

  您可以选择设置 HLS 清单以包括有关嵌入式字幕语言的信息。
+ **HLS 设置**部分 – **字幕语言映射**

  您可以选择设置 HLS 清单以包括有关每个 CC（字幕通道）编号和语言的信息。

有关这两个字段的详细说明，请参阅[HLS 清单中的语言信息](set-up-the-hls-manifest.md)。

## ID3 元数据字段
<a name="hls-id3"></a>

如果要在此输出组的所有输出中插入定时 ID3 元数据或 ID3 分段标签，请完成本**ID3 **节。有关详细说明，请参阅[在创建 ID3 频道时插入定时元数据 MediaLive](insert-timed-metadata.md)。

# 创建 MediaConnect 路由器输出组
<a name="opg-mediaconnect-router"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 MediaConnect 路由器输出组。有关 Rout MediaConnect er 输出组用例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

**Topics**
+ [整理编码](design-mediaconnect-router-package.md)
+ [与下游系统协调](downstream-system-mediaconnect-router.md)
+ [创建输出组](creating-mediaconnect-router-output-group.md)

# 在 MediaConnect 路由器输出组中整理编码
<a name="design-mediaconnect-router-package"></a>

 MediaConnect 路由器输出组使用 M2TS（MPEG-2 传输流）容器。每个输出可以包含以下内容：
+ 一个视频编码。
+ 零个或多个音频编码。
+ 零个或多个字幕编码。字幕是嵌入式字幕或边车字幕。

每个 MediaConnect 路由器输出组最多可以有五个输出。

# 与下游系统协调 MediaConnect 路由器输出组
<a name="downstream-system-mediaconnect-router"></a>

 MediaConnect Router 的一个优点是，在创建 MediaLive 输出之前，您无需创建任何 AWS Elemental MediaConnect 资源。当您创建带有 MediaConnect Router 输出组的 MediaLive 频道时，输出会自动作为选项显示在 MediaConnect Router API 中。

MediaConnect 路由器输出支持对传输中的数据进行加密。您可以选择以下加密模式之一：
+ **自动** — 服务使用服务托管密钥无缝处理加密。这是建议的选项。
+ **SECRETS\$1MANAGER — 您提供存储在中的 AES-256 密钥**的 ARN。 AWS Secrets Manager在创建 MediaLive 频道之前，密钥必须存在。

您必须为输出组指定可用区。对于单管道通道，请指定一个可用区。对于标准渠道，请指定两个不同的可用区以提供区域弹性。

**重要**  
如果已经创建了 MediaConnect 路由器资源，则您指定的可用区必须与现有资源的可用区相匹配。如果尚未创建 MediaConnect 路由器资源，则必须将该资源配置为与您在此处指定的可用区域相匹配。

您可以使用带有 MediaConnect 路由器输出的路由 MediaConnect 器输入来处理视频输入 MediaLive （例如，标准化帧速率），然后将视频传回 MediaConnect 路由器。根据设计，当您使用 MediaConnect 路由器输入和输出时，您的整个传输工作流程 end-to-end都会被加密。

# 创建 MediaConnect 路由器输出组
<a name="creating-mediaconnect-router-output-group"></a>

在创建[或编辑 MediaLive 频道时，您可以创建](creating-a-channel-step4.md)输出组及其输出。

1. 在**创建通道**或**编辑通道**页面上的**输出组**中，选择**添加**。

1. 在 “**添加输出组**” 部分，选择 “**MediaConnect 路由器输出组**”，然后选择 “**确认**”。将显示更多部分：
   + **MediaConnect 路由器输出组**目的地 — 此部分包含输出目的地的字段。在 “输出目标” 部分中，将出现 “**MediaConnect 路由器输出组**” 选项卡。加密类型默认为 “**自动**”。要使用来自的密钥 AWS Secrets Manager，请将加密类型更改为 **SECRETS\$1MANAGER，然后输入密**钥 ARN。
   + **MediaConnect 路由器设置**-此部分包含用于配置输出组的字段。请查看此部分后面的内容。
   + **MediaConnect 路由器输出**-本节显示默认添加的单个输出。您可以添加更多输出（每个输出组最多五个），也可以在每个输出中添加视频、音频和字幕编码。请查看此部分后面的内容。

**Topics**
+ [“ MediaConnect 路由器设置” 部分中的字段](#mediaconnect-router-opg-settings)
+ [视频、音频和字幕流（编码）的字段](#mediaconnect-router-opg-streams-section)

## “ MediaConnect 路由器设置” 部分中的字段
<a name="mediaconnect-router-opg-settings"></a>


| 字段 | 说明 | 
| --- | --- | 
| Name | 输出组的名称。这个名字是内部的 MediaLive。它不会显示在输出中。 | 
| 可用区 | 输出组的可用区。对于单管道通道，请指定一个可用区。对于标准频道，请指定两个不同的可用区。这两个可用区必须不同才能提供区域弹性。 | 
| 连接的路由器输入 | 一个只读字段，显示连接到此输出的 MediaConnect 路由器输入。这些信息纯粹是信息性的。要连接或断开 MediaConnect 路由器输入，请使用 MediaConnect 路由器 API。 | 

## 视频、音频和字幕流（编码）的字段
<a name="mediaconnect-router-opg-streams-section"></a>

1. 在**MediaConnect 路由器输出**中，选择**添加输出**以添加输出。

1. 选择第一个**设置**链接以查看第一个输出。每个输出都有两个部分：**输出设置**和**流设置**。

1. 填写**输出设置**：
   + **输出名称**：将随机生成的名称更改为有意义的名称。此名称是内部名称 MediaLive；它不会出现在输出中。
   + **名称修饰符**：为输出组中的每个输出 MediaLive 分配一个顺序修饰符：**\$11**、**\$12** 等。如果需要，请更改名称。

1. 在 **“输出设置”** 中，对于**容器设置**，容器设置为 M2TS。有关 M2TS 设置的信息，请参阅中的 M2TS 字段。[UDP 传输的字段](udp-container.md)

1. 填写**流设置**。该部分包含要在输出中创建的输出编码（视频、音频和字幕）的字段。有关创建编码的信息，请参见以下部分：
   + [设置视频编码](creating-a-channel-step6.md)
   + [设置音频编码](creating-a-channel-step7.md)
   +  [设置字幕编码](creating-a-channel-step8.md)

# 创建 MediaPackage 输出组
<a name="opg-mediapackage"></a>

创建 MediaLive 频道时，可能需要包含一个 MediaPackage 输出组。有关 MediaPackage 输出组用例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。有关在 HLS 组和 MediaPackage 输出组之间进行选择的信息，请参阅[在 HLS 输出组和 MediaPackage 输出组之间进行选择](hls-choosing-hls-vs-emp.md)。

**Topics**
+ [在 MediaPackage 输出组中整理编码](design-emp-hls-package.md)
+ [与 MediaPackage 操作员协调](origin-server-emp.md)
+ [创建 MediaPackage 输出组](creating-mediapackage-output-group.md)

# 在 MediaPackage 输出组中整理编码
<a name="design-emp-hls-package"></a>

 MediaPackage 输出组通常设置为视频 ABR 堆栈。视频 ABR 堆栈是一个包含以下内容的输出组：
+ 多个输出。

每个输出可以包含以下内容：
+ 一个视频编码（格式副本）。通常，每个视频编码的分辨率都不同。
+ 零个或多个音频编码。
+ 零个或多个字幕编码。字幕是嵌入式字幕或对象式字幕。

下图说明了视频中嵌入字幕时的 MediaPackage 输出组。每个视频编码都在单独的输出中。字幕位于每个视频输出中。每个音频编码都在单独的输出中。

![\[Output group diagram showing video outputs with embedded captions and separate audio outputs.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output13-ABR-2Ve-2Asep.png)


下图说明了字幕为 sidecar 字幕时的 MediaPackage 输出组。每个编码都有自己的输出。

![\[Output group diagram showing six outputs: two V, two A, and two C, representing video, audio, and captions.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output14-ABR-2V-2Asep-2C.png)


# 与 MediaPackage 操作员协调
<a name="origin-server-emp"></a>

您和 AWS Elemental MediaPackage 服务运营商必须就输出组的输出目标达成一致。 MediaPackage 

**注意**  
您可以 AWS Elemental MediaPackage 通过创建 MediaPackage 输出组或创建 HLS 输出组来发送到。有关不同之处的说明，请参阅 [在 HLS 输出组和 MediaPackage 输出组之间进行选择](hls-choosing-hls-vs-emp.md)。

## MediaPackage v1 (HLS) 协调
<a name="coordinate-emp-v1"></a>

**安排 MediaPackage v1 目标的设置**

1. 要求 MediaPackage 用户创建一个频道。即使该 MediaLive 频道是[标准频道](plan-redundancy.md)（有两个管道），您也只需要一个 MediaPackage 频道。

1. 获取 MediaPackage 频道的 ID。例如 `curling-live`。通道 ID 区分大小写。

## MediaPackage v2 (CMAF) 协调
<a name="coordinate-emp-v2"></a>

**安排 MediaPackage v2 目标的设置**

1. 要求 MediaPackage 用户在所需区域创建 MediaPackage v2 频道。获取每个目的地的以下信息：
   + AWS 区域名称（例如，`us-east-1`或`eu-west-1`）
   + MediaPackage 频道组名称
   + MediaPackage 频道名称
   + 哪个采集端点（ENDPOINT\$11 或 ENDPOINT\$12）是该频道的首选输入 MediaPackage 

1. 如果您计划使用其他目的地进行冗余或跨区域交付，请根据需要协调其他 MediaPackage v2 频道的设置。

**注意**  
您不需要用户凭据即可向其发送 MediaPackage 输出组 MediaPackage。 MediaLive 有权 MediaPackage 通过可信实体写信。您的组织中的某个人应该已设置这些权限。有关更多信息，请参阅 [可信实体的访问要求](trusted-entity-requirements.md)。

# 创建 MediaPackage 输出组
<a name="creating-mediapackage-output-group"></a>

当你[为频道规划工作流程](identify-downstream-system.md)时，你可能已经决定要加入一个 MediaPackage 输出组。（或者你可能已经决定使用 [HLS 输出组传送到 MediaPackage](hls-destinations-emp.md)。）

## 创建 MediaPackage 输出组
<a name="emp-create-procedure"></a>

您可以为两个不同的 MediaPackage 版本创建 MediaPackage 输出组：
+ **MediaPackage v1 (HLS)**-使用 HLS 采集协议并需要频道 ID MediaPackage 
+ **MediaPackage v2 (CMAF)**-使用 CMAF 采集协议，需要频道组名称和频道名称 MediaPackage 

### MediaPackage v1 (HLS) 程序
<a name="emp-v1-procedure"></a>

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 部分中，选择 **Add (添加)**。内容窗格将更改为显示 **Add output group (添加输出组)** 部分。

1. 选择 **MediaPackage**，然后选择 “**确认**”。将显示更多部分：
   + **MediaPackage destination**
   + **MediaPackage 设置**
   + **MediaPackage ou** tputs —此部分显示默认添加的单个输出。

1. 在**MediaPackage 目标**部分的**MediaPackage 频道 ID** 中，输入该频道的频道 ID。例如 `curling-live`。

1. （可选）在**MediaPackage 设置**部分的**名称**中，输入输出组的名称。

1. 如果您需要指定 MediaPackage V2 群组设置，请从下拉列表中将其选中并根据需要指定设置

1. 如果您的计划在此输出组中包含多个输出，则在**MediaPackage 输出**中，选择**添加输出**以添加相应数量的输出。

   为实施 trick-play，您可能需要添加一个输出。有关此功能的更多信息以及在通道中设置此功能的说明，请参阅 [符合映像媒体播放列表规范的 trick-play 轨道](trick-play-roku.md)。

1. 选择第一个 **Settings (设置)** 链接以查看第一个输出的部分。该部分包含[输出流](hls-streams-section.md)（视频、音频和字幕）的字段。

1. [保存通道](creating-a-channel-step9.md).

### MediaPackage v2 (CMAF) 程序
<a name="emp-v2-procedure"></a>

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 部分中，选择 **Add (添加)**。内容窗格将更改为显示 **Add output group (添加输出组)** 部分。

1. 选择 **MediaPackage**，然后选择 “**确认**”。将显示更多部分：
   + **MediaPackage destination**
   + **MediaPackage 设置**
   + **MediaPackage ou** tputs —此部分显示默认添加的单个输出。

1. 在**MediaPackage 目标**部分中，配置主要目的地：

   1. 在 “**区域**” 中，选择包含您的 MediaPackage v2 频道的区域。这默认为您当前的区域。

   1. 在**MediaPackage 频道组名称**中，选择包含您的 MediaPackage v2 MediaPackage 频道的频道组名称。

   1. 对于**MediaPackage 频道名称**，请选择您的 MediaPackage v2 频道。

   1. 在终**端节点 ID** 中， MediaPackage 选择应接收内容的收录端点：
      + **ENDPOINT\$11**-内容被发送到第一个采集端点
      + **ENDPOINT\$12**-内容被发送到第二个采集端点

1. （可选）要为冗余或跨区域配送配置其他目的地，请展开 “**其他目的地**” 部分，然后单击 “**添加目的地**”。对于每个额外的目的地，重复上述配置步骤，为每个额外的频道指定区域、频道组名称、 MediaPackage 频道名称和终端节点 ID。标准通道最多支持两个额外的目的地，而单个管道通道支持一个额外的目的地。

1. （可选）在**MediaPackage 设置**部分的**名称**中，输入输出组的名称。

1. 如果您的计划在此输出组中包含多个输出，则在**MediaPackage 输出**中，选择**添加输出**以添加相应数量的输出。

1. 选择第一个 **Settings (设置)** 链接以查看第一个输出的部分。该部分包含[输出流](hls-streams-section.md)（视频、音频和字幕）的字段。CMAF 收录输出仅允许每个输出使用一种流类型。

1. [保存通道](creating-a-channel-step9.md).

# “Streams”(流) 部分
<a name="mediapackage-encode-packaging"></a>

以下字段与输出中的视频、音频和字幕流（编码）的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

## 打包视频编码和仅音频编码
<a name="mediapackage-audio-rendition-handling"></a>

MediaLive 按如下方式处理每个输出中的编码打包：
+ 如果输出包含视频和音频（以及可选的字幕），则将音频渲染标记为 **program audio**。
+ 如果输出不包含视频，则将音频渲染标记为 **audio only**，并将每个音频编码标记为 **ALTERNATE\$1AUDIO\$1NOT\$1AUTO\$1SELECT**。

## 设置视频的宽度和高度
<a name="mediapackage-width-height"></a>

本节涉及**流设置**、**视频**中的字段。

您必须为 **Width (宽度)** 和 **Height (高度)** 指定值。 MediaPackage 输出组不支持将这些字段留空以使用源视频的宽度和高度。

## 设置视频的宽高比
<a name="mediapackage-aspect-ratio"></a>

本节涉及**流设置**、**视频**、**纵横比**中的字段。

您必须将 **PAR control (PAR 控制)** 设置为 **SPECIFIED**。 MediaPackage输出组不支持将输出的纵横比设置为跟随源视频。在选择 **SPECIFIED** 时，您必须填写 **PAR numerator (PAR 分子)** 和 **PAR denominator (PAR 分母)**。您可以根据需要设置 **AFD** 字段。

## 设置视频的帧速率
<a name="mediapackage-framerate"></a>

本节涉及**流设置**、**视频**、**帧率**中的字段。

您必须将 **Framerate control (帧速率控制)** 设置为 **SPECIFIED**。 MediaPackage输出组不支持将输出的帧速设置为跟随源视频。在选择 **SPECIFIED** 时，您必须填写 **Framerate numerator (帧速率分子)** 和 **Framerate denominator (帧速率分母)**。您可以根据需要设置扫描类型；它与帧率并没有直接关系。

## 为 GOPs 和区段进行设置
<a name="mediapackage-gop-segments"></a>

本节涉及**流设置**、**视频**、**GOP 结构**中的字段。

对于视频，必须设置 GOP 大小，以确保输出的 MediaLive 片段大小接近您在中指定的片段大小 MediaPackage。 MediaLive 并共同 MediaPackage 努力获得最终的分段大小。逻辑如下所示：
+ 在中 MediaLive 指定 **GOP 大小**和 **GOP 大小单位**字段。
+ MediaLive 计算 GOP 持续时间，同时考虑您在 “**输出**” 页面的 “**视频**” 部分中指定的帧速率。
+ 在中 MediaPackage 您可以指定片段持续时间。您始终指定一个整数。此分段持续时间是*所需的* 最短持续时间。
+ 当 MediaPackage 收到来自的视频时 MediaLive，它会决定必须调整多少片段时长才能将整数放 GOPs 入片段中。分段持续时间只能上调，绝不能下调。该调整的分段持续时间显示在 MediaPackage 生成的清单中。

**示例 1**

假设 MediaLive 你将 GOP 大小设置为 60 帧。您将帧速率设置为 29.97。这两个值导致 GOP 持续时间为 2.002 秒。

假设 MediaPackage 您将分段持续时间设置为 6 秒。此分段持续时间是*所需的* 最短持续时间。

当 MediaPackage 收到来自的视频时 MediaLive，它会决定必须调整多少片段时长才能将整数放 GOPs 入片段中。在这种情况下，必须将分段持续时间调整为 6.006 秒（三秒 GOPs，其中每个 GOP 的长度为 2.002 秒）。

**示例 2**

假设在中 MediaLive，您将 GOP 大小设置为 90 帧。您将帧速率设置为 30。这两个值导致 GOP 持续时间为 3 秒。

假设 MediaPackage 您将分段持续时间设置为 4 秒。此分段持续时间是*所需的* 最短持续时间。

当 MediaPackage 收到来自的视频时 MediaLive，它会决定必须调整多少片段时长才能将整数放 GOPs 入片段中。在这种情况下，必须将分段持续时间调整为 6 秒（两秒 GOPs，其中每个 GOP 长度为 3 秒）。

## 其他编码字段
<a name="mediapackage-general-encode-settings"></a>

有关每种类型的编码中的字段的信息，请参阅以下几节：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 该过程的结果
<a name="mediapackage-create-result"></a>

使用 MediaPackage 输出组时，配置的字段数量不会像使用常规 HLS 输出组那样多。而是 MediaLive 自动设置输出组，如下所示：

**目标位置**
+ 管道 0 的输出映射到 MediaPackage 频道中的第一个采集端点。管道 1 的输出（如果您设置了标准通道）将映射到第二个提取端点。

  每个管道到提取端点的映射始终不变。映射中可能发生的唯一变化是将单管道输入升级为标准类输入，或者将单管道通道升级为标准通道。在这两种情况下，管道 1 都将映射到第二个提取端点（该端点始终存在）。

  创建通道后，可以查看映射的详细信息。按照《AWS Elemental MediaPackage 用户指南》**中 [Viewing channel details](https://docs.aws.amazon.com/mediapackage/latest/ug/channels-view) 中的步骤进行操作。在 Inp **ut** s 部分中，第一个项目（采集端点）始终映射到 MediaLive 频道中的管道 0，第二个项目始终映射到管道 1。
+ 输出将 MediaPackage 使用 WebDAV 传送到。输出始终为实时流而不是 VOD 流。
+ 输出名称将自动设置为 `Output n`，其中 n 是从 1 开始的整数。
+ 每个输出的 `nameModifier` 将自动设置为与输出名称匹配。

**容器**
+ 编解码器规范是 RFC 4281。播放器设备可能会使用该信息。
+ 计划日期时间 (PDT) 周期设置为 1 秒。
+ PAT 间隔设置为 0，这意味着在每个片段的开头插入一个 PAT。
+ PMT 间隔设置为 0，这意味着在每个分段的开头插入一个 PMT。

**弹性**
+ 弹性的处理方式如下所示。如果输入 MediaLive 丢失，则行为是暂 MediaLive 停传送。 MediaPackage 期望这种行为并通过切换到其他输入来处理损失。

**SCTE-35**
+ 始终启用 SCTE-35 消息传送。如果您不希望在输出中包含 SCTE-35 标记，您可以在 AWS Elemental MediaPackage的通道中删除这些标记。有关在 MediaPackage输出中处理 SCTE-35 的信息，请参见[处理 SCTE 35 消息](scte-35-message-processing.md)。

**ID3**
+ ID3 元数据已启用。
+ 通过输出组插入 ID3 标记的功能已禁用。但是，您可以设置为传递输入中的 ID3 标记，也可以使用 MediaLive 计划插入 ID3 标记。有关在 MediaPackage输出中进行 ID3 处理的信息，请参见[使用 ID3 元数据](id3-metadata.md)。

# 创建 Microsoft Smooth 输出组
<a name="opg-mss"></a>

在创建 AWS Elemental MediaLive 频道时，你可能需要添加一个 Microsoft Smooth 输出组。有关 Microsoft Smooth 输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

**Topics**
+ [整理 Microsoft 输出组中的编码](organize-mss-package.md)
+ [与下游系统协调](origin-server-mss.md)
+ [创建 Microsoft Smooth 输出组](creating-smooth-output-group.md)

# 整理 Microsoft 输出组中的编码
<a name="organize-mss-package"></a>

Microsoft Smooth 输出组通常设置为视频 ABR 堆栈。视频 ABR 堆栈是一个包含以下内容的输出组：
+ 多个输出。

每个输出可以包含以下内容：
+ 一个视频编码（格式副本）。通常，每个视频编码的分辨率都不同。
+ 一个或多个音频编码。
+ 一个或多个字幕编码。字幕始终是附加格式。

有两种方法可以整理编码，具体取决于音频编码是必须捆绑在一起还是每种编码都以自己的格式副本呈现。您应该已经从下游系统[获取此信息](identify-dss-video-audio.md)。

**需要捆绑音频的下游播放器**

计划输出组包含以下内容：
+ 每个视频编码一个输出。此输出包含一个视频编码、所有音频编码和所有字幕编码（如果嵌入了字幕）。

  每个输出中都将出现相同的音频编码。例如，英语和法语编码将出现在高分辨率输出中，然后，同样的英语和法语编码也将出现在低分辨率输出中。
+ 每个字幕编码一个输出。Sidecar 字幕始终进入自己的输出中。

下图说明了带有捆绑音频的 Microsoft 输出组。

![\[Output group diagram showing V, A, A components bundled with V, A, A, and separate C, C outputs.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output12-ABR-2V-2A-2C.png)


**需要单独音频的下游播放器**

计划输出组包含以下内容：
+ 每个视频编码一个输出。此输出包含一个视频和所有字幕编码（如果嵌入了字幕）。
+ 每个音频编码一个输出。

  音频编码可能适用于不同的语言，可能适用于不同的比特率，也可能适用于不同的语言和比特率。
+ 每个字幕编码一个输出。Sidecar 字幕始终进入自己的输出中。

此输出组中音频编码的排列方式称为*音频格式副本组*。

下图说明了带音频格式副本组的 Microsoft Smooth 输出组。

![\[Output group containing six outputs: two V, two A, and two C, arranged in a row.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output14-ABR-2V-2Asep-2C.png)


# 与下游系统协调
<a name="origin-server-mss"></a>

您和下游系统的操作员必须就 Microsoft Smooth 输出组的输出目标达成一致。

1. 决定是否需要两个输出目标：
   + [标准通道](plan-redundancy.md)需要两个目标。
   + 单管道通道需要一个目标。

1. 与 Microsoft IIS 服务器的操作员沟通，商定输出的完整路径。记下你 URLs 同意的。例如：

   `https://203.0.113.55/sports/curling`

   `https://203.0.113.82/sports/curling`

1. 如果协议是 HTTPS，请与操作员安排设置用户凭证。

1. 确定下游系统是否具有特殊的连接要求。这些连接字段在 Microsoft Smooth 输出组的**一般配置**部分中。要在 MediaLive控制台上显示此页面，请在 “**创建频道**” 页面的 “**输出组**” 部分中，选择**添加**，然后选择 **Microsoft Smooth**。选择组，然后在 **Microsoft Smooth 设置**中，打开**一般配置**。

# 创建 Microsoft Smooth 输出组
<a name="creating-smooth-output-group"></a>

[为通道计划工作流程](identify-downstream-system.md)时，您可能已经决定要包含 Microsoft Smooth 输出组。

## 过程
<a name="smooth-create-procedure"></a>

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 部分中，选择 **Add (添加)**。

1. 在 **Add output group (添加输出组)** 部分中，选择 **Microsoft Smooth**，然后选择 **Confirm (确认)**。将显示更多部分：
   + **Microsoft Smooth 组目标** – 该部分包含[输出目标](smooth-destinations.md)的字段。
   + **Microsoft Smooth 设置** – 该部分包含[容器](smooth-container.md)、[到下游系统的连接](smooth-destinations.md)和[弹性](mss-other-fields.md#smooth-resiliency)的字段。
   + **Microsoft Smooth 输出** – 该部分显示默认添加的单个输出。
   + **事件配置** – 该部分包含[输出目标](smooth-destinations.md)和[容器](smooth-container.md)的字段。
   + **时间码配置** – 该部分包含输出中的[时间码](mss-other-fields.md#smooth-timecode)的字段。
   + **稀疏轨道** – 该部分包含[容器](smooth-container.md)的字段。

1.  如果您的计划在该输出组中包含多个输出，则在 **Microsoft Smooth outputs (Microsoft Smooth 输出)** 中选择 **Add output (添加输出)** 以添加相应数量的输出。

1. 在 **Microsoft Smooth outputs (Microsoft Smooth 输出)** 中，选择第一个 **Settings (设置)** 链接以查看第一个输出的部分：
   + **输出设置** – 该部分包含[输出目标](smooth-destinations.md)和[容器](smooth-container.md)的字段。
   + **流设置** – 该部分包含[输出流](smooth-streams-section.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   + 在 **Microsoft Smooth settings (Microsoft Smooth 设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Curling**。
   + 在每个输出的 **Output settings (输出设置)** 部分中，为 **Output name (输出名称)** 输入输出的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **high resolution**。

1. 要填写其他字段，请参阅该过程后面列出的主题。

1. 在设置完该输出组及其输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

**Topics**

# 输出目标的字段
<a name="smooth-destinations"></a>

以下字段配置每个 Microsoft Smooth 输出的目标。
+ **输出组** – **Microsoft Smooth 组目标**部分
+ **输出组 – 事件配置 – 事件 ID 模式** 
+ **输出组 – 事件配置 – 事件 ID**
+ **Microsoft Smooth 设置**部分 – **一般配置**部分：
  + **Connection retry interval (连接重试间隔)** 
  + **Num retries (重试次数)**
  + **Filecache duration (文件缓存持续时间)**
  + **Restart delay (重新启动延迟)**
  + **Certificate mode (证书模式)**

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

Microsoft Smooth 输出组中每个输出的完整路径包含以下内容：

`URL eventID streamInformation `
+ URL 和事件 ID 称为*发布点*。例如：

  `https://203.0.113.18/sports/Events(1585232182)`
+ MediaLive 使用您提供的信息生成事件 ID。有关更多信息，请在控制台上展开**事件配置**，然后选择每个字段旁边的**信息**链接。
+ MediaLive 生成直播 ID。它为流分配唯一的编号，从 0 开始。例如：`/Streams(stream0)`。

  当你查看输出 MediaLive 日志时，你将能够看到直播信息。

**指定到下游系统的路径和连接**

1. 填写 **Microsoft Smooth 组目标**部分中的 **URL** 字段。在通道设置为标准通道时指定两个目标，或者在通道设置为单管道通道时指定一个目标。不用担心事件 ID。您将在另一个字段中指定。

    例如：

   `https://203.0.113.55/sports/curling`

   `https://203.0.113.82/sports/curling`

1. 如果下游系统为您提供了用户名和密码，请填写**凭证**部分。对于密码，请输入存储在 AWS Systems Manager Parameter Store 中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。

1. 如果您获得了用于配置连接的值，请在 **Microsoft Smooth 组**页面的**一般配置**部分中输入这些值。

1. 在以下字段中设置事件 ID：

   **输出组设置 – 事件配置 – 事件 ID 模式**

   **输出组设置 – 事件配置 – 事件 ID**

   您可以通过三种方法设置事件 ID：
   + 使用您指定的事件 ID - 将 **Event ID mode (事件 ID模式)** 设置为 **USE\$1CONFIGURED**。然后，指定该 ID。例如 **curling**。事件 ID 将如下所示：**/Events(curling)**
   + 使用时间戳 - 将 **Event ID mode (事件 ID 模式)** 设置为 **USE\$1TIMESTAMP**。 MediaLive 根据您启动通道的时间生成 Unix 时间码。事件 ID 将如下所示：**/Events(1585232182)**
   + 不使用事件 ID - 将 **Event ID mode (事件 ID 模式)** 设置为 **NO\$1EVENT\$1ID**。我们强烈建议您不要使用这种方法。

# 容器的字段
<a name="smooth-container"></a>

以下字段在每个输出中配置容器。
+ **Microsoft Smooth 设置**部分 – **一般配置**部分 – **分段长度** 
+ **事件配置** – **流清单行为**
+ **事件配置 – 事件停止行为**

通过使用这些字段，您可以配置一些流行为。有关字段的信息，请在 MediaLive 控制台中选择 “**信息**” 链接。

# 编码的字段
<a name="smooth-streams-section"></a>

以下字段与输出中的视频、音频和字幕流（编码）的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 其他 Microsoft Smooth 功能的字段
<a name="mss-other-fields"></a>

## 弹性的字段
<a name="smooth-resiliency"></a>

以下字段与在 Microsoft Smooth 输出中实施弹性有关。
+ **Microsoft Smooth 输出组** – **Microsoft Smooth 设置**部分 – **一般配置**部分 – **输入损耗操作**

可以选择更改 **Input loss action (输入损耗操作)** 的值。

在 MediaLive 控制台中选择 “**信息**” 链接以决定选择哪个选项。有关更多信息，请参阅 [处理视频输入损耗](feature-input-loss.md)。

## 时间码的字段
<a name="smooth-timecode"></a>

以下字段与在输出组的所有输出中配置时间码和时间戳有关。
+ **Microsoft Smooth 输出组** – **时间码配置**部分 

有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

## SCTE-35 的字段
<a name="smooth-s35"></a>

以下字段与在输出组的所有输出中配置时间码和时间戳有关。
+ **Microsoft Smooth 输出组** – **时间码配置**部分 

如果您希望此输出组中的所有输出包含输入中已存在的 SCTE-35 消息，请选择 **Sparse track (稀疏跟踪)**。这些消息将包含在稀疏跟踪中。有关更多信息，请参阅[处理 SCTE 35 消息](scte-35-message-processing.md)，尤其是[启用修饰 – Microsoft Smooth](procedure-to-enable-decoration-ms-smooth.md)。

# 创建 RTMP 输出组
<a name="opg-rtmp"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 RTMP 输出组。有关 RTMP 输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

**Topics**
+ [整理 RTMP 输出组中的编码](design-rtmp-package.md)
+ [与下游系统协调](origin-server-rtmp.md)
+ [创建 RTMP 输出组](creating-rtmp-output-group.md)

# 整理 RTMP 输出组中的编码
<a name="design-rtmp-package"></a>

RTMP 输出组可以包含以下内容：
+ 一个或多个输出。

每个输出可以包含以下内容：
+ 一个视频编码。
+ 零个或一个音频编码。
+ 零个或一个字幕编码。

下图说明了一个 RTMP 输出组，该组包含一个输出，其中字幕嵌入在视频编码中。

![\[Diagram showing Output Group containing Output with Video and Captions embedded.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output1-non-abr-Ve-A.png)


下图说明了一个 RTMP 输出组，该组包含一个带有对象样式标题的输出。

![\[Venn diagram showing three overlapping circles labeled V, A, and C.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output2-non-abr-VAC.png)


# 与下游系统协调
<a name="origin-server-rtmp"></a>

您和下游系统的操作员必须就 RTMP 输出组的每个输出的目标达成一致。

RTMP 输出组需要为每个输出提供一组目标地址。

1. 如果 RTMP 服务器是社交媒体网站，则该网站的主机可能有补充以下信息的说明。获取这些说明。

1. 决定是否需要两个输出目标：
   + 如果 MediaLive 频道是[标准频道](plan-redundancy.md)，则需要两个目的地。
   + 如果 MediaLive 信道是单管道信道，则需要一个目的地。

1. 确保 RTMP 运算符根据需要将 MediaLive 输出设置为在 RTMP 服务器上的一两个输入处。

1. 从 RTMP 操作员处获取以下信息：
   +  MediaLive 要使用的协议 — rtMP 或 RTMPS。
   + 访问下游系统的用户名和密码，如果下游系统需要经过身份验证的请求。请注意，这些用户凭证与用户身份验证（而不是与协议）相关。用户身份验证与下游系统是否将接受您的请求有关。协议与请求是否通过安全连接发送有关。
   + IP 地址。
   + 端口号。
   + 应用程序名称。也称为*应用程序名称*。
   + 流名称。也称为*应用程序实例*、*应用实例*或*流密钥*。

     操作员可能会将应用程序名称和流名称作为单独的数据片段提供给您。或者，他们可能会给你一个完整路径，格式为 **string/string**。在这种情况下，第一个字符串是应用程序名称，第二个字符串是流名称。

   下面是操作员将向您提供的信息示例：

   `rtmp://203.0.113.28:80/xyz/ywq7b`

   `rtmp://203.0.113.17:80/xyz/ywq7b`

   其中，`xyz` 是应用程序名称，`ywq7b` 是流名称。

   在此示例中，两 URLs 者的 IP 地址不同，但应用程序 name/stream 名称部分相同。您的 RTMP 服务器可能遵循不同的规则。

# 创建 RTMP 输出组
<a name="creating-rtmp-output-group"></a>

[为通道计划工作流程](identify-downstream-system.md)时，您可能已经决定要包含 RTMP 输出组。

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1. 在 **Add output group (添加输出组)** 部分中，选择 **RTMP**，然后选择 **Confirm (确认)**。将显示更多部分：
   + **RTMP 设置** – 该部分包含[连接配置](rtmp-connection.md)、[弹性](rtmp-other.md)和[字幕](rtmp-other.md)的字段。
   + **RTMP 输出** – 该部分显示默认添加的单个输出。RTMP 输出只能包含一个输出，因此，请不要单击 **Add output (添加输出)**。

1. 在 **RTMP outputs (RTMP 输出)** 中，选择 **Settings (设置)** 链接以查看输出的部分：
   + **RTMP 目标** – 该部分包含[输出目标](rtmp-destinations.md)的字段。
   + **输出设置** – 该部分包含[连接配置](rtmp-connection.md)的字段。
   + **流设置** – 该部分包含[输出流](rtmp-streams.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   + 在 **RTMP settings (RTMP 设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Game**。
   + 在 **RTMP output (RTMP 输出)** 中，为 **Output settings (输出设置)** 中的 **Output name (输出名称)** 输入输出的名称。此名称是内部名称 MediaLive；它不会出现在输出中。

1. 要填写其他字段，请参阅该过程后面列出的主题。

1. 在设置完该输出组及其单个输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

**Topics**
+ [输出目标的字段](rtmp-destinations.md)
+ [RTMP 连接的字段](rtmp-connection.md)
+ [视频、音频和字幕流（编码）的字段](rtmp-streams.md)
+ [其他字段](rtmp-other.md)

# 输出目标的字段
<a name="rtmp-destinations"></a>

以下字段配置 RTMP 输出文件（目标）的位置和名称。
+ **输出** – **RTMP 目标**部分

**指定输出的目标**

1. 与 RTMP 服务器的操作员[讨论您的要求](origin-server-rtmp.md)时，您应该已经获得以下信息：
   +  MediaLive 要使用的协议 — rtMP 或 RTMPS。
   + IP 地址。
   + 端口号。
   + 应用程序名称。也称为*应用程序名称*。
   + 流名称。也称为*应用程序实例*、*应用实例*或*流密钥*。

     操作员可能会将应用程序名称和流名称作为单独的数据片段提供给您。或者，他们可能会给你一个完整路径，格式为 **string/string**。在这种情况下，第一个字符串是应用程序名称，第二个字符串是流名称。
   + 访问服务器的用户名和密码，如果下游系统需要经过身份验证的请求。

   下面是操作员将向您提供的信息示例：

   `rtmp://203.0.113.17:80/xyz/ywq7b`

   其中，`xyz` 是应用程序名称，`ywq7b` 是流名称。

1. 在相应的字段中输入目标的各个部分。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/rtmp-destinations.html)

1. 如果服务器下游系统为您提供了用户名和密码，请填写**凭证**部分。对于密码，请输入存储在 AWS Systems Manager 参数存储中的密码的名称。请不要输入密码本身。有关更多信息，请参阅 [AWS Systems Manager 密码参数要求](requirements-for-EC2.md)。

# RTMP 连接的字段
<a name="rtmp-connection"></a>

以下字段配置重新连接尝试的逻辑：
+ **RTMP 设置** – **身份验证方案**
+ **RTMP 设置** – **其他设置** – **缓存长度**
+ **RTMP 设置** – **其他设置** – **重新启动延迟**
+ **RTMP 设置** – **其他设置** – **缓存已满行为**
+ **RTMP 输出** – **输出设置** – **连接重试间隔**
+ **RTMP 输出** – **输出设置** – **重试次数**
+ **RTMP 输出** – **输出设置** – **其他设置** – **证书模式**

**配置到目标的安全 (RTMPS) 连接**

1. **身份验证方案** – 指定方案的类型。通常，请选择 **Common**。只有在下游系统要求这样做时，才需要选择 **Akamai**。

1. 对于 **Certificate mode (证书模式)**，选择下游系统所需的选项。

   如果您通过 RTMP 进行连接，则 MediaLive 会忽略这两个字段。

**配置重新连接**

有多个字段可控制在与 RTMP 服务器的连接似乎被删除的情况下 MediaLive 的行为方式：
+ **Cache length (缓存长度)** 指定在内存中将输出保存多长时间，以等待 RTMP 服务器响应。
+ 在该时间过期后，**Cache full behavior (缓存已满行为)** 指定是立即断开连接还是等待 5 分钟。
+ 如果 MediaLive 断开连接，则**重新启动延迟**指定在尝试重新连接之前要等待多长时间。
+  MediaLive 尝试重新连接时，**连接重试间隔指定重试**的频率。**Num retries (重试次数)** 指定要重试的次数。当重试过期时，此输出将停止。通道停止，因为单个输出已断开连接。

# 视频、音频和字幕流（编码）的字段
<a name="rtmp-streams"></a>

以下字段与输出中的视频、音频和字幕流（编码）的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 其他字段
<a name="rtmp-other"></a>

以下字段与在 RTMP 输出中实施弹性有关：
+ **RTMP 设置**-**输入丢失操作**-有关 MediaLive 控制台上某个字段的详细信息，请选择该字段旁边的 “**信息**” 链接。有关更多信息，请参阅 [处理视频输入损耗](feature-input-loss.md)。

以下字段与在 RTMP 输出中实施字幕有关：
+ **RTMP 设置**-字**幕数据**-仅当您的输出中至少有一个包含**嵌入式**字幕格式和 **RTMP CaptionInfo** 作为输出格式的字幕时，才填写此字段。如果任何输出中均没有字幕，则将忽略此字段中的值。

  有关设置字幕的详细信息，请参阅[在通道中包含字幕](captions.md)。

# 创建 SRT 输出组
<a name="opg-srt"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 SRT 输出组。有关 SRT 输出组用例的信息，请参见[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

使用 SRT 输出组，您可以创建一个或多个输出。每个输出都是一个 SPTS，有自己的目的地。

SRT 输出支持两种连接模式：
+ **呼叫者模式**： MediaLive 启动与下游系统的连接。 MediaLive 是来电者和发件人。下游系统是监听器和接收器。 MediaLive 启动与下游系统的握手，并在接受握手后， MediaLive 将内容发送到下游系统。
+ **监听器模式**：下游系统启动与的连接 MediaLive。 MediaLive 是监听者和发送者。下游系统是呼叫者和接收者。下游系统启动握手 MediaLive，在握手被接受后， MediaLive 将内容发送到下游系统。

输出内容必须经过加密，因此 AWS Secrets Manager 必须使用存储用于加密内容 MediaLive 的密码。

本节包括将 SRT 输出发送到 AWS Elemental MediaConnect 流程时的具体指导原则。

**Topics**
+ [选择 SRT 连接模式](srt-connection-mode-selection.md)
+ [在 SRT 输出组中整理编码](design-srt-package.md)
+ [计划使用 Amazon VPC 进行配送](srt-get-ready.md)
+ [在中设置密码 AWS Secrets Manager](srt-output-encryption-asm.md)
+ [在呼叫者模式下创建 SRT 输出](creating-srt-caller-output.md)
+ [在监听器模式下创建 SRT 输出](creating-srt-listener-output.md)
+ [输出 > 直播设置](srt-streams.md)

# 选择 SRT 连接模式
<a name="srt-connection-mode-selection"></a>

创建 SRT 输出组时，必须为每个输出选择连接模式。连接模式决定如何 MediaLive 以及下游系统建立 SRT 连接。

下表比较了两种连接模式：


| 特征 | 来电者模式 | 监听器模式 | 
| --- | --- | --- | 
| 连接启动 | MediaLive 启动与下游系统的连接 | 下游系统启动与的连接 MediaLive | 
| MediaLive 角色 | 来电者和发件人 | 监听器和发送者 | 
| 下游角色 | 听众和接收者 | 来电者和接收者 | 
| 目标配置 | 您可以指定下游系统的 IP 地址和端口 | MediaLive 分配 IP 地址；由您指定端口 | 
| 频道安全组 | 非必需 | 对于使用公共传送方式（控制下游系统可以连接哪些下游系统）的频道是必需的。VPC 交付或 MediaLive Anywhere 频道不需要；客户必须配置其网络以允许来自呼叫者目标的 SRT 连接。 | 
| 使用案例 | 推送式交付，可 MediaLive 连接到已知的下游端点 | 拉式交付，下游系统按需 MediaLive 连接 | 
| MediaLive 随时随地支持 | 支持 | 支持 | 

**注意**  
您不能在单个输出中混合使用连接模式。每个输出都必须使用调用者模式或监听器模式指向其所有目的地。

# 在 SRT 输出组中整理编码
<a name="design-srt-package"></a>

SRT 输出组可以包含以下内容：
+ 一个或多个输出。

每个输出都包含以下内容：
+ 一个视频编码。
+ 一个或多个音频编码。
+ 零个或多个字幕编码。字幕是嵌入式字幕，或对象样式的字幕。

每个输出代表一个 SPTS。每个输出 (SPTS) 都有自己的目的地。

下图说明了具有一个输出的 SRT 输出组。字幕嵌入在视频编码中。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output3-nonABR-Ve-2A.png)


下图说明了具有一个输出的 SRT 输出组。字幕是对象式的字幕。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output4-nonABR-V-2A-2C.png)


# 计划使用 Amazon VPC 进行配送
<a name="srt-get-ready"></a>

您可以为 SRT 输出设置 MediaLive 通道，使其[在亚马逊虚拟私有云（亚马逊 VPC）中包含输出终端节点](delivery-out-vpc.md)。以下是在 Secrets Manager 中设置密钥以及将输出传送到 MediaConnect （如果 MediaConnect 是目的地）的一些准则。

## Secrets Manager 的注意事项
<a name="srt-get-ready-asm"></a>

SRT 输出始终是加密的，因此 AWS Secrets Manager 始终涉及其中。您将在其中创建通道的 VPC 子网有一些具体要求：
+ 该频道的子网必须有 Secrets Manager 端点。
+ 通道和 Secrets Manager 端点的子网必须使用相同的安全组，这意味着必须将相同的安全组与子网和终端节点相关联。

## 的注意事项 MediaConnect
<a name="srt-get-ready-emx"></a>

您可能正在向也使用 VPC 的配送地址。 MediaConnect 这意味着来自该 MediaLive 通道的 SRT 输出出口位于您的 VPC 上，并且该 MediaConnect 流量具有 VPC 接口。
+ 您的 VPC 管理员必须确保 MediaLive 和之间有适当的路由 MediaConnect。

# 在中设置密码 AWS Secrets Manager
<a name="srt-output-encryption-asm"></a>

必须对 SRT 输出进行强制加密。按照以下步骤进行操作：

1. 您和下游系统的操作员应该已经就加密密码达成了共识。

1. 将密码交给组织中与之共事的人。 AWS Secrets Manager该人必须将密码存储在 Secrets Manager 中的一个密钥中。有关更多信息，请参阅[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。创建 “**其他类型的密钥” 类型的密钥**。

   Secrets Manager 会生成一个如下所示的 ARN：

   `arn:aws:secretsmanager:region:123456789012:secret:Sample-abcdef`
**重要**  
将 SRT 密码作为纯文本存储在 Secrets Manager 中（例如，）。`secretpassword123`创建密钥时请勿使用 key/value 选项或 JSON 格式，因为这可能会导致与其他服务的互操作性问题。仅将密码存储为纯文本。  
确保您的密码长度介于 10 到 79 个字符之间。

1. 请务必获取密钥的完整 ARN，以用于 SRT 输出的加密密码 Secret ARN。

# 在呼叫者模式下创建 SRT 输出
<a name="creating-srt-caller-output"></a>

本节介绍如何在呼叫者模式下创建 SRT 输出，在该模式下 MediaLive 启动与下游系统的连接。

**Topics**
+ [与下游系统协调](downstream-system-srt-caller.md)
+ [在呼叫者模式下创建 SRT 输出](creating-srt-caller-output-group.md)
+ [向下游系统提供信息](srt-caller-info-to-downstream.md)

# 与下游系统协调
<a name="downstream-system-srt-caller"></a>

使用 SRT 输出组，您可以创建多个输出，以便将相同的内容传送到多个下游系统。

您和每个下游系统的操作员必须讨论有关输出交付的细节。在来电者模式下， MediaLive 是来电者和发件人。下游系统是监听器和接收器。

1. 决定是否需要两个输出目标：
   + 如果 MediaLive 频道是[标准频道](plan-redundancy.md)，则需要两个目的地。
   + 如果 MediaLive 信道是单管道信道，则需要一个目的地。

1. 获取每个目的地的 IP 地址和端口。例如，`srt://203.0.113.22:5000` 和 `srt://203.0.113.88:5001`。

   请注意，如果您要配送至 MediaConnect，则只有在 MediaConnect 操作员创建流程后才能获取地址。请参阅此过程的最后一步。

1. MediaLive 始终对内容进行加密，因此您必须就以下加密细节达成共识：
   + 加密算法：AES 128、AES 192 或 AES 256。
   + 该密码 MediaLive 和下游系统将用于创建加密和解密密钥。密码可以是 10 到 79 个 Unicode 字符，这意味着允许使用空格。

1. 与下游系统的操作员讨论以下问题：
   + 告知下游系统您计划为丢包和恢复配置的延迟（以毫秒 MediaLive 为单位）。数据包恢复是 SRT 的一项关键功能。下游目标应选择一个接近您计划使用的值的延迟值。

     您将在每个输出中配置延迟，因此每个下游系统可以有不同的延迟。
   + MediaLive 无需直播 ID 即可运行。但是，如果您想包含一个，或者下游系统想要使用一个，请商定 ID。最多 512 个 UTF-8 字符。

1. 如果您要向 MediaConnect 流程配送，请 MediaConnect 操作员立即创建流程。

   请操作员向您提供该流量的 “入站 IP 地址” 字段中的一两个地址。这些地址是 SRT 输出的目的地。例如，`srt://203.0.113.22:5000` 和 `srt://203.0.113.88:5001`。

# 在呼叫者模式下创建 SRT 输出
<a name="creating-srt-caller-output-group"></a>

在设计了输出内容并与下游系统协调了输出的交付之后，可以在调用者模式下创建 SRT 输出。

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1. 在 “**添加输出组**” 部分，选择 **SRT**，然后选择 “**确认**”。此时将显示更多部分。

   此输出组的表单分为以下几个部分：
   + **SRT 设置**：适用于输出组级别而不是单个输出的功能。
   + **SRT 输出**：输出组中的输出。
   + **输出 > 目标**：每个输出的 URL 和加密字段。
   + **输出 > 输出设置**：网络和传输流设置，以及单独配置 PIDs。
   + **输出 > 直播设置**：配置每个输出中的视频、音频和字幕。

   有关每个部分的信息，请参阅此过程后面列出的主题。

1.  在设置完该输出组及其输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转至 [保存通道](creating-a-channel-step9.md)

## SRT 设置
<a name="srt-caller-srt-settings"></a>

在 **SRT 设置**部分，填写以下字段：
+ **名称**：输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Game**。
+ **输入损失操作**：选择一个值。有关详细信息，请选择 “**信息**” 链接。有关通道中所有输出组的输入损耗处理的详细信息，请参阅[处理视频输入损耗](feature-input-loss.md)。

## SRT 输出
<a name="srt-caller-srt-outputs"></a>

S **RT 输出**部分显示了默认添加的单个输出。如果要将内容发送到更多目的地，请选择 “**添加输出**”。

在每个输出中，选择 “**设置”** 链接以显示三个小节：
+ 目的地。请参阅[输出 > 目的地](#srt-caller-destinations)。
+ 输出设置。请参阅 [输出 > 输出设置](#srt-caller-output-settings)。
+ 直播设置：请参阅[输出 > 直播设置](srt-streams.md)。

## 输出 > 目的地
<a name="srt-caller-destinations"></a>

在每个输出中，必须指定一个目的地（对于单管道通道）或两个目的地（对于标准通道）。您还必须为每个目标配置加密。
+ **连接模式**：选择**来电者**。
+ 输入目标 URL 或 URLs，包括端口号。这些信息是在与下游系统[讨论您的需求](downstream-system-srt-caller.md)时获得的。例如：

  **srt://203.0.113.22:5000**

  **srt://203.0.113.88:5001**
+ 直播ID：可选。
+ 在每个目标中，选择[您从 Secrets Manager 的操作员那里获得的密钥](srt-output-encryption-asm.md)。您可以按密钥的 ARN 或名称来选择密钥。

## 输出 > 输出设置
<a name="srt-caller-output-settings"></a>

为输出输入用户友好的名称，或保留默认名称。此名称是内部名称 MediaLive ，不会出现在输出中。

本节的其余部分包含允许您配置以下内容的字段：
+ 网络行为。
+ 传输流的特征（在 “**容器**” 部分）。
+ PID 值（在 **PID 设置**部分中）。

  这些字段涵盖 SI/PSI 和其他数据。对于其中的每一个 SI/PSI PIDs，您可以指定一个自定义值，也可以 MediaLive 使用默认值。

  对于其他数据，请根据需要填写字段。对于其中一些字段，留空的字段的行为会有所不同。 MediaLive可能会省略传输流中的数据。或者 MediaLive 可能使用默认值。

根据需要，更改任何值。有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

# 向下游系统提供信息
<a name="srt-caller-info-to-downstream"></a>

下游系统可能需要一两个 MediaLive数据流的源 IP 地址，这样它们才能允许这些地址连接到它们。如果下游系统是 MediaConnect，它肯定需要这些信息。

**在 AWS 云 频道上**

如果您的组织未部署 MediaLive Anywhere，请阅读此信息。
+ 创建频道后，按其名称选择频道。频道详情随即出现。

  在 “**目的地**” 选项卡中，找到 “**出口终端节点**” 部分。复制一两个 IP 地址。该频道只有一组地址，而不是每个输出都有一组地址。
+ 记下 IP 地址并将其正确标记为管道 0 和管道 1。把它们交给下游操作员。

**在 MediaLive Anywhere 频道上**

如果您的频道是 MediaLive Anywhere 频道，则请阅读此信息，这意味着该频道在本地硬件上运行，而不是在 AWS 云。
+ 获取进入网络的网关的 IP 地址。您可能需要与组织中的网络管理员交谈。将此地址提供给下游操作员。

# 在监听器模式下创建 SRT 输出
<a name="creating-srt-listener-output"></a>

本节介绍如何在监听器模式下创建 SRT 输出，下游系统会启动与该模式的 MediaLive连接。

**Topics**
+ [监听器模式的先决条件](srt-listener-prerequisites.md)
+ [在监听器模式下创建 SRT 输出](creating-srt-listener-output-group.md)
+ [MediaLive Anywhere 频道的额外设置](srt-listener-emla-setup.md)
+ [向下游系统提供连接信息](srt-listener-provide-info.md)
+ [监听器模式的验证规则](srt-listener-validation.md)

# 监听器模式的先决条件
<a name="srt-listener-prerequisites"></a>

在监听器模式下创建 SRT 输出之前，必须满足以下先决条件：

1. **创建或识别频道安全组（仅限公共分发方式）**：对于使用公共分发方式的频道，您必须将频道安全组附加到该频道。频道安全组控制允许哪些下游系统（SRT 呼叫者）连接到 MediaLive 侦听器端点。有关频道安全组的信息，请参阅[使用频道安全组](feature-channel-security-groups.md)。

   对于使用 VPC 交付或 MediaLive Anywhere 通道的频道，不需要频道安全组。相反，您必须将网络配置为允许来自呼叫者目的地的 SRT 连接到达侦听器端点。

1. **与下游系统协调**：与每个下游系统的操作员讨论以下问题：
   + 下游系统将从中连接的 IP 地址。您需要这些地址来创建或更新频道安全组引用的输入安全组。
   + 加密算法：AES 128、AES 192 或 AES 256。
   + 用于加密的密码。密码可以是 10 到 79 个 Unicode 字符。
   + 丢包和恢复的首选延迟（以毫秒为单位）。有效范围为 120 到 15000 毫秒。
   + 流 ID（如果下游系统使用此标识符）。直播 ID 是可选的。

1. **将密码存储在 Secrets Manager** 中：按照中的步骤[在中设置密码 AWS Secrets Manager](srt-output-encryption-asm.md)将密码存储在中。 AWS Secrets Manager

# 在监听器模式下创建 SRT 输出
<a name="creating-srt-listener-output-group"></a>

完成先决条件并与下游系统协调后，可以在侦听器模式下创建 SRT 输出。

1. 在**创建通道**页面的导航窗格中，选择**通道和输入详细信息**。

1. **仅适用于使用公共投放方式的频道**：在 **“常规设置”** 部分，找到 “**频道安全组**” 字段。

1. **仅适用于使用公共分发方式的频道**：从下拉列表中，选择要用作频道安全组的输入安全组。

1. 导航到 “**输出组**” 部分，然后选择 “**添加**”。

1. 在 “**添加输出组**” 部分，选择 **SRT**，然后选择 “**确认**”。

1. 在 **SRT 设置**部分，填写以下字段：
   + **名称**：输入输出组的名称。
   + **输入损失操作**：选择一个值。有关更多信息，请参阅 [处理视频输入损耗](feature-input-loss.md)。

1. 在 **SRT 输出**部分，选择输出的 **“设置”** 链接。

1. 在 “**目标**” 部分中，配置侦听器模式设置：
   + **连接模式**：选择**监听器**。
   + **监听器端口**：输入要 MediaLive 监听的端口号。有效范围为 5000 到 5200。

     频道上的每个 SRT 监听器输出都必须有唯一的端口。

     对于具有两条管道的标准频道，每个管道目标也必须具有唯一的侦听器端口。
   + **直播ID**：可选。如果您与下游系统达成协议，请输入直播 ID。
   + **加密密码密码 ARN：选择你在 Secrets M** anager 中创建的密钥的 ARN。

1. 按照和中的说明完成 **“输出****设置” 和 “直播设置”** 部分[输出 > 直播设置](srt-streams.md)。[输出 > 输出设置](creating-srt-caller-output-group.md#srt-caller-output-settings)

1. 在设置完该输出组及其输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

# MediaLive Anywhere 频道的额外设置
<a name="srt-listener-emla-setup"></a>

如果要在 MediaLive Anywhere 频道上创建 SRT 监听器输出，则还有其他配置要求：
+ **逻辑接口名称**：在 “**目标**” 部分，必须为监听器模式下的每个输出指定逻辑接口。当您在 MediaLive Anywhere 集群上创建频道时，会显示此字段。逻辑接口决定 MediaLive Anywhere 节点上的哪个物理网络接口将用于 SRT 侦听器。
+ **节点接口 IPs**：创建频道后，目标信息将包括节点接口 IPs。此字段显示下游系统连接到 MediaLive Anywhere 节点时应使用的 IP 地址。IP 地址与映射到所选逻辑接口的物理接口相关联。
  + **在控制台****中：节点界面显示 IPs 在 **SRT 目标设置部分下的目标**表中。**
  + **使用 API**：节点接口包含 IPs 在节点描述调用中`PhysicalInterfaceIpAddresses`。

  您必须向下游系统提供此 IP 地址，这样他们才能将自己的 SRT 呼叫者配置为连接到正确的 MediaLive Anywhere 节点接口。

# 向下游系统提供连接信息
<a name="srt-listener-provide-info"></a>

在监听器模式下创建带有 SRT 输出的频道后，必须向下游系统的操作员提供连接信息，以便他们可以配置要连接的 SRT 呼叫者。 MediaLive

**获取连接信息**

1. 创建频道后，按其名称选择频道。频道详情随即出现。

1. 选择 “**目的地**” 选项卡。

1. 在 “**输出目的地**” 部分，找到 SRT 输出组。

1. 对于组中的每个输出，请记下下游系统所需的连接信息。对于标准频道，有两组信息（每个管道一组）。对于单管道信道，有一组。

   **对于 MediaLive 频道**：
   + 在 “**目的地**” 选项卡下的 “**出口终端节点**” 部分，记下**源 IP** 地址。这是下游系统应连接的 IP 地址。
   + 在 **SRT 目标设置**部分，记下**侦听器端口**。
   + 以格式向下游运营商提供目的地`srt://source-ip:listener-port`。

   **对于 MediaLive 任何地方的频道**：
   + **在 “目标” 选项卡下的 “**SRT 目标设置**” 部分中，记下**节点界面 IPs**。**这是下游系统应连接的 IP 地址。
   + 在同一节中，记下**监听器端口**。
   + 以格式向下游运营商提供目的地`srt://node-interface-ip:listener-port`。

1. 将这些目的地提供 URLs 给下游系统的操作员。接线员必须配置他们的 SRT 呼叫者以连接到这些地址。

确保下游系统的操作员按以下方式进行设置：
+ 他们配置了正确的连接数：
  + 如果 MediaLive 信道是标准信道，则它们必须连接到两个目的地址以实现冗余。
  + 如果 MediaLive 信道是单管道信道，则它们必须连接到单个目标地址。
+ 他们将 SRT 呼叫者配置为使用您同意的相同加密算法和密码。
+ 他们将 SRT 呼叫者配置为使用延迟值。SRT 将协商并使用双方配置的最大延迟值。
+ 如果您在输出配置中指定了流 ID，则下游系统可以在连接期间选择发送流 ID 值。 MediaLive 接受具有任何流 ID 值（或没有流 ID）的连接。数据流 ID 的记录仅用于监控和故障排除。
+ 它们的源 IP 地址必须包含在通道安全组引用的输入安全组的 CIDR 允许列表中。否则， MediaLive 将拒绝他们的连接尝试。

# 监听器模式的验证规则
<a name="srt-listener-validation"></a>

MediaLive 在监听器模式下创建或更新 SRT 输出时，会强制执行以下验证规则：
+ **需要频道安全组（仅限公共分发方式）**：对于使用公共分发方法的频道，如果频道至少包含一个在监听器模式下配置的 SRT 输出，则必须将频道安全组附加到该频道。如果您尝试使用 Public Delivery 创建或启动频道，SRT 输出处于监听器模式但没有频道安全组， MediaLive 则会返回错误。对于使用 VPC 传送或 MediaLive Anywhere 频道的频道，不需要频道安全组；您必须将网络配置为允许来自呼叫者目标的 SRT 连接。
+ **端口唯一性**：在单个信道内，监听器模式下的每个 SRT 输出都必须使用唯一的端口号。如果您尝试使用相同的端口创建两个输出，则 MediaLive 会返回错误。
+ **监听器端口范围**：端口号必须在 5000 到 5200 之间（含）。
+ **无法移除频道安全组**：如果频道在监听器模式下有 SRT 输出，则无法移除频道安全组。必须先删除在监听器模式下配置的所有 SRT 输出，或者将其更改为呼叫者模式。
+ **无法在正在运行的频道上更改模式**：在频道运行时，您无法更改输出的连接模式（从呼叫者到听众，反之亦然）。你必须先停止频道。

# 输出 > 直播设置
<a name="srt-streams"></a>

本节中的字段与输出中视频、音频和字幕流（编码）的编码有关。这些设置适用于呼叫者模式和监听器模式输出。

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+ [设置字幕编码](creating-a-channel-step8.md)

# 创建 UDP 输出组
<a name="opg-udp"></a>

在创建 AWS Elemental MediaLive 频道时，您可能需要包含一个 UDP 输出组。有关 UDP 输出组使用案例的信息，请参阅[容器、协议和下游系统](outputs-supported-containers-downstream-systems.md)。

**Topics**
+ [整理 UDP 输出组中的编码](design-udp-package.md)
+ [与下游系统协调](downstream-system-udp.md)
+ [创建 UDP 输出组](creating-udp-output-group.md)

# 整理 UDP 输出组中的编码
<a name="design-udp-package"></a>

UDP 输出组可以包含以下内容：
+ 一个或多个输出。

每个输出可以包含以下内容：
+ 一个视频编码。
+ 一个或多个音频编码。
+ 一个或多个字幕编码。字幕是嵌入式字幕，或对象样式的字幕。

每个输出代表一个 SPTS。每个输出 (SPTS) 都有自己的目的地。

下图说明了具有一个输出的 UDP 输出组。字幕嵌入在视频编码中。

![\[Output group diagram showing video encode with embedded captions and two audio outputs.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output3-nonABR-Ve-2A.png)


下图说明了具有一个输出的 UDP 输出组。字幕是对象式的字幕。

![\[Output group diagram showing V, A, A, C, C as individual elements in sequence.\]](http://docs.aws.amazon.com/zh_cn/medialive/latest/ug/images/output4-nonABR-V-2A-2C.png)


# 与下游系统协调
<a name="downstream-system-udp"></a>

您和下游系统的操作员必须就 UDP 输出组的每个输出的目标达成一致。

UDP 输出组需要为每个输出提供一组目标地址。

1. 决定是否需要两个输出目标：
   + 如果 MediaLive 频道是[标准频道](plan-redundancy.md)，则需要两个目的地。
   + 如果 MediaLive 信道是单管道信道，则需要一个目的地。

1. 与管理要接收 UDP 内容的下游系统的操作员沟通。确保操作员根据需要设置为预期 MediaLive 输出一到两个输出。

1. 从操作员处获取以下信息：
   + 协议是 UDP 还是 RTP
   + 的 URLs
   + 端口号

   每个 URL 将如下所示，例如：

   `udp://203.0.113.28:5000`

   `udp://203.0.113.33:5005`

   请注意，在此示例中，端口号不是连续的。如果您计划在输出中启用 FEC（此字段位于 UDP 输出组的**输出**窗格中），则这些非连续数字非常重要。要使用 FEC，您必须在两个目标的端口号之间保留空格。例如，如果一个目标是 **rtp://203.0.113.28:5000**，则假定 FEC 还使用端口 5002 和 5004。因此，另一个目标的最小端口号为 5005。

# 创建 UDP 输出组
<a name="creating-udp-output-group"></a>

[为通道计划工作流程](identify-downstream-system.md)时，您可能已经决定要包含 UDP 输出组。

1. 在 **Create channel (创建通道)** 页面上的 **Output groups (输出组)** 下，选择 **Add (添加)**。

1. 在 **Add output group (添加输出组)** 部分中，选择 **UDP**，然后选择 **Confirm (确认)**。将显示更多部分：
   + **UDP 目标** – 该部分包含[输出目标](udp-destinations.md)的字段。
   + **UDP 设置**-此部分包含用于[设置 ID3](udp-other.md)和[弹性的](udp-other.md)字段。
   + **UDP 输出** – 该部分显示默认添加的单个输出。UDP 输出只能包含一个输出，因此，请不要单击 **Add output (添加输出)**。

1. 在 **UDP outputs (UDP 输出)** 中，选择 **Settings (设置)** 链接以查看输出的部分：
   + **输出设置** – 该部分包含[传输](udp-destinations.md)和[到目标的连接](udp-destinations.md)的字段。
   + **流设置** – 该部分包含[输出流](udp-streams.md)（视频、音频和字幕）的字段。

1. （可选）输入输出组和输出的名称：
   + 在 **UDP settings (UDP 设置)** 中，为 **Name (名称)** 输入输出组的名称。此名称是内部名称 MediaLive；它不会出现在输出中。例如 **Sports Game**。
   + 在 **UDP output (UDP 输出)** 中，为 **Output settings (输出设置)** 中的 **Output name (输出名称)** 输入输出的名称。此名称是内部名称 MediaLive；它不会出现在输出中。

1. 要填写其他字段，请参阅该过程后面列出的主题。

1. 在设置完该输出组及其单个输出后，如果您的计划需要，您可以创建另一个（任意类型的）输出组。否则，请转到[保存通道](creating-a-channel-step9.md)。

**Topics**
+ [输出目标的字段](udp-destinations.md)
+ [UDP 传输的字段](udp-container.md)
+ [视频、音频和字幕流（编码）的字段](udp-streams.md)
+ [其他 UDP 功能的字段](udp-other.md)

# 输出目标的字段
<a name="udp-destinations"></a>

以下字段配置输出的目标：
+ **输出组** – **UDP 目标**部分
+ **输出** – **输出设置** – **网络设置** – **缓冲区(毫秒)**

**指定输出的目标**

1. 与管理要接收 UDP 内容的下游系统的操作员[讨论您的要求](origin-server-rtmp.md)时，您应该已获得以下信息：
   + 的 URLs
   + 端口号

   例如：

   `udp://203.0.113.28:5000`

   `udp://203.0.113.33:5005`

1. 在 URLs “**UDP 目标**” 部分的一个或两个 **URL** 字段中输入（包括端口号）。

1. 如果[启用 FEC](udp-container.md)，请在两个目标的端口号之间保留空格。

   例如，如果一个目标是 **rtp://203.0.113.28:5000**，则假定 FEC 还使用端口 5002 和 5004。因此，另一个目标的最小端口号为 5005：**rtp://203.0.113.33:5005**。

1. （可选）在**输出**部分中，根据需要填写**缓冲区(毫秒)**字段。有关详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

# UDP 传输的字段
<a name="udp-container"></a>

以下字段在每个输出中配置传输：
+ **输出** – **输出设置** – **FEC 输出设置**，选择一个值。
+ **输出** – **输出设置** – **网络设置** – **容器设置**部分。

根据需要，更改任何值。有关某个字段的详细信息，请选择 MediaLive 控制台中该字段旁边的 “**信息**” 链接。

# 视频、音频和字幕流（编码）的字段
<a name="udp-streams"></a>

以下字段与输出中的视频、音频和字幕流（编码）的编码有关。
+ **Stream settings (流设置)** 部分

有关创建编码的信息，请参见以下部分：
+ [设置视频编码](creating-a-channel-step6.md)
+ [设置音频编码](creating-a-channel-step7.md)
+  [设置字幕编码](creating-a-channel-step8.md)

# 其他 UDP 功能的字段
<a name="udp-other"></a>

以下字段与在 UDP 输出中实施弹性有关：
+ **UDP 设置**-**输入丢失操作**-有关 MediaLive 控制台上某个字段的详细信息，请选择该字段旁边的 “**信息**” 链接。有关更多信息，请参阅 [处理视频输入损耗](feature-input-loss.md)。

以下字段与在 UDP 输出中实施字幕有关：
+ **UDP 设置**-**定时元数据帧类型 ID3 **
+ **UDP 设置**-**定时元数据周期 ID3**

  如果要将定时 ID3 元数据插入到此输出组中的所有输出中，请填写这些字段。有关详细说明，请参阅 [使用 ID3 元数据](id3-metadata.md)，尤其是[在创建 ID3 频道时插入定时元数据 MediaLive](insert-timed-metadata.md)。