

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

# AWS Elemental MediaTailor 用于创建线性组装流
<a name="channel-assembly"></a>

AWS Elemental MediaTailor 频道集合是一项仅限清单的服务，允许您使用现有的视频点播 (VOD) 内容和直播内容来创建线性流媒体频道。 MediaTailor 永远不要触摸你的内容片段，这些片段是直接从你的源服务器提供的。取而代之的是，从你的来源 MediaTailor 获取清单，然后使用它们来组装一个引用底层内容段的实时滑动清单窗口。Channel Assembly 会跟踪媒体序列号之类的内容，这些序列号是实现从一个资产到另一个资产的流畅播放所必需的。通过使用现有的多比特率编码和打包的 VOD 内容，可以以较低的运行成本创建线性汇编流。

 您可以通过在节目中插入广告插播来轻松地通过频道组装线性流获利，而不必使用 SCTE-35 标记来调整内容。您可以将渠道组合与 MediaTailor 广告插入服务或任何服务器端广告插入服务结合使用。

 要开始使用频道组装，请参阅[MediaTailor 频道组装入门](channel-assembly-getting-started.md)。

有关将 Channel Assembly 与内容分发网络 (CDN) 集成的信息，请参阅[使用频道集合和 CDN 构建 MediaTailor 线性频道](ca-cdn-wflw.md)。

**Topics**
+ [使用来源位置](channel-assembly-source-locations.md)
+ [使用通道](channel-assembly-channels.md)
+ [将节目添加到频道的日程安排中](channel-assembly-programs.md)
+ [在频道直播中插入个性化广告和广告插播时间](channel-assembly-integrating-mediatailor-ssai.md)
+ [对频道的播放进行时移](channel-assembly-time-shift.md)

# 使用来源位置
<a name="channel-assembly-source-locations"></a>

源位置表示存储您的源内容的源服务器。来源位置可以是 Amazon S3、标准 Web 服务器、内容分发网络 (CDN)（如亚马逊 CloudFront）或包装来源（例如）。 AWS Elemental MediaPackage MediaTailor 从源位置检索您的内容清单，并使用它们来整理频道的线性直播。

 本主题介绍如何使用 AWS Elemental MediaTailor 控制台创建和删除来源位置，以及如何使用 VOD 来源。

**Topics**
+ [创建源位置](channel-assembly-creating-source-locations.md)
+ [为您的来源位置配置身份验证](channel-assembly-source-locations-access-configuration.md)
+ [使用 VOD 来源](channel-assembly-working-vod-sources.md)
+ [使用直播源](channel-assembly-working-live-sources.md)
+ [使用软件包配置](channel-assembly-package-configurations.md)
+ [清单缓存](channel-assembly-manifest-caching.md)

# 创建源位置
<a name="channel-assembly-creating-source-locations"></a>

以下过程说明了如何使用 MediaTailor控制台创建源位置。有关如何使用 MediaTailor API 创建来源位置的信息，请参阅 *AWS Elemental MediaTailor API 参考[CreateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateSourceLocation.html)*中的。<a name="create-source-location-procedure"></a>

**创建源位置**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在导航栏上，选择**创建来源位置**。

1. 在**源位置配置**下，输入源服务器的名称和基本 URL：
   + **名称**：您的来源位置的标识符，例如 **my-** origin。
   + **基本 URL**：存储内容的源服务器的协议和基本 URL，例如 **https://111111111111.cloudfront.net**。网址必须采用标准的 HTTP 网址格式，前缀为 ht **tp://**或 h **ttps://**。

     或者，如果您的源位置是 **Amazon S3 存储桶，并且您想使用 AWS 签名版本 4 进行 Amazon S3 访问身份验证，请选择 “使用 Sigv** 4 进行 Amazon S3 身份验证”。有关高级信息，请参阅[为您的来源位置配置身份验证](channel-assembly-source-locations-access-configuration.md)。

1. <a name="access-configuration-console"></a>在 “**访问配置”** 下，可以选择为您的来源位置配置身份验证：
   + **访问类型**：选择 MediaTailor 用于访问存储在来源位置来源上的内容的身份验证类型。
     + **适用于亚马逊 S3 的 Sigv4**-使用 MediaTailor 亚马逊签名版本 4 (Sigv4) 来授权向你的来源发出的请求。有关更多信息，请参阅 [使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证](channel-assembly-access-configuration-sigv4.md)。
     + S@@ **ecrets Manager 访问令牌身份验证**- MediaTailor 使用 Secrets Manager 以及由您创建、拥有和管理的 AWS KMS 客户托管密钥来简化与您的源 MediaTailor 之间的访问令牌身份验证。有关如何配置 S **ecrets Manager 访问令牌身份验证**的信息，请参阅[使用 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-token.md)。
       + **标头名称**-指定 HTTP 标头名称。 MediaTailor 使用 HTTP 标头在内容清单请求中将访问令牌发送到您的源。你可以使用任何标头名称，只要它不是以`x-amz-`或开头的`x-amzn-`。如果您要与 [MediaPackage CDN 授权](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth.html)集成，则标头值应`X-MediaPackage-CDNIdentifier`为。
       + **密钥字符串密钥**-您在 Secrets Manager 密`SecretString`钥中指定的密钥。例如，如果`SecretString`包含密钥和值对，例如:`{"MyHeaderName": "11111111-2222-3333-4444-111122223333"}`，则`MyHeaderName`是您在此字段中输入的`SecretString`密钥。
       + **秘密 ARN**-存放您的访问令牌的机密的 ARN。有关 step-by-step指南，请参阅[步骤 2：创建 AWS Secrets Manager 密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-secret)。

1. 在 “**区段交付服务器配置”** 下，可以选择配置服务器来交付您的内容分段：
   + **使用默认的分段传送服务器**：输入用于交付内容分段（例如 CDN）的服务器的基本 URL。如果您想使用与源位置服务器不同的服务器来提供内容分段，请配置**默认分段主机名**。例如，您可以对**基本 HTTP URL（用于访问清单的内容）和默认区段基础 URL****（玩家用于访问内容分段**） MediaTailor 使用不同的 CDN 配置，来限制玩家对原始清单的访问。如果未输入值，则 MediaTailor 默认为分段传送的源位置服务器。
   + **使用指定分段传送服务器**：如果您配置了默认的分段传送服务器，则还可以配置其他分段传送服务器。每个人都必须有一个唯一的名称和一个基本 URL。基本网址可以是完整的 HTTP 网址，也可以是类似的相对路径`/some/path/`。这些名称用于标识在 MediaTailor 收到内容分段请求时应使用哪个服务器。如果请求包含标头`X-MediaTailor-SegmentDeliveryConfigurationName`并且标头的值与名称匹配，则将使用相应的基本 URL 来提供内容。如果请求中未包含标头，或者标头与任何名称都不匹配，则将使用默认的分段传送服务器。

1. 选择 “**创建源位置**”。

1. 要添加更多源位置，请重复步骤 2-6。

# 为您的来源位置配置身份验证
<a name="channel-assembly-source-locations-access-configuration"></a>

使用**访问配置**为您的来源位置配置身份验证。开启访问配置后， MediaTailor 只有在请求在 MediaTailor 和您的来源之间获得授权的情况下，才会从您的来源检索源清单。默认情况下，访问配置处于关闭状态。

MediaTailor 支持以下身份验证类型：
+ 适用于 Amazon S3 身份验证的 Sigv4
+ AWS Secrets Manager 访问令牌
+ 用于 MediaPackage 版本 2 (v2) 身份验证的 Sigv4

 本章介绍如何使用适用于 Amazon S3、v MediaPackage 2 的 Sigv4 以及如何使用 AWS Secrets Manager 访问令牌进行来源位置身份验证。

 有关更多信息，请选择适用的主题。

**Topics**
+ [使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证](channel-assembly-access-configuration-sigv4.md)
+ [在版本 2 中使用 SigV4 MediaPackage](channel-assembly-access-configuration-sigv4-empv2.md)
+ [使用 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-token.md)

# 使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证
<a name="channel-assembly-access-configuration-sigv4"></a>

适用于亚马逊 S3 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HTTPS 向亚马逊 S3 发出的请求进行身份验证。当您将 Sigv4 用于 Amazon S3 时，在向用作源的 Amazon S3 存储桶的 HTTPS 请求中 MediaTailor 包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 有关 sigV4 的一般信息 AWS Key Management Service，请参阅 *Amazon* S3 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)主题。

**注意**  
MediaTailor 始终使用 Sigv4 签署对这些来源的请求。

## 要求
<a name="channel-assembly-access-configuration-sigv4-how-to"></a>

 如果您为来源位置激活 SigV4 for Amazon S3 身份验证，则必须满足以下要求：
+ 您必须通过在 IAM **中授予 mediatailor.amazonaws.com 委托人访问权限来允许 MediaTailor 访问您的亚马逊** S3 存储桶。有关在 IAM 中配置访问权限的信息，请参阅*AWS Identity and Access Management 用户指南*中的[访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。
+ m **ediatailor.amazonaws.com** 服务主体必须有权读取 VOD 源包配置引用的所有多变体播放列表。
+ API 的调用者必须具有 **s3: GetObject** IAM 权限才能读取您的 MediaTailor VOD 源包配置引用的所有多变体播放列表。
+ 您的 MediaTailor 来源位置基本 URL 必须遵循 Amazon S3 虚拟托管式请求网址格式。例如，https://*bucket-name*.s3。 *Region*.amazonaws.com/。*key-name*有关 Amazon S3 托管虚拟式访问的信息，请参阅[虚拟托管式请求。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)

# 在版本 2 中使用 SigV4 MediaPackage
<a name="channel-assembly-access-configuration-sigv4-empv2"></a>

v2 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HT MediaPackage TP 向 MediaPackage v2 发出的请求进行身份验证。当你在 v MediaPackage 2 中使用 Sigv4 时，在发送给用作源的 MediaPackage v2 端点的 HTTP 请求中 MediaTailor包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 *有关 v2 版 Sigv4 的一般信息，请参阅 MediaPackage v2 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/mediapackage/latest/userguide/sig-v4-authenticating-requests.html)主题。MediaPackage *

## 要求
<a name="channel-assembly-access-configuration-sigv4-empv2-how-to"></a>

 如果您为源位置激活 sig MediaPackage V4 进行 v2 身份验证，则必须满足以下要求：
+ 您必须通过在终端节点的 O MediaTailor rigin 访问策略**中授予 mediatailor.amazonaws.com** 委托人访问权限来允许访问您的 MediaPackage v2 终端节点。
+ 您的 MediaTailor 来源位置基础 URL 必须是 MediaPackage v2 终端节点。
+ API 的调用者必须具有 **mediapackagev2: GetObject** IAM 权限才能读取源打包配置引用的所有多变体播放列表。 MediaTailor 

# 使用 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-token"></a>

MediaTailor 支持 S *ecrets Manager 访问令牌身份验证*。通过 AWS Secrets Manager 访问令牌身份验证， MediaTailor使用 AWS Key Management Service (AWS KMS) 客户托管的 AWS Secrets Manager 密钥和您创建、拥有和管理的密钥来对发往您的来源的请求进行身份验证。

在本节中，我们将介绍 Secrets Manager 访问令牌身份验证的工作原理，并提供有关如何配置 Secrets Manager 访问令牌身份验证 step-by-step的信息。你可以在中使用 Secrets Manager 访问令牌身份验证， AWS 管理控制台 也可以通过编程方式使用 AWS APIs。

**Topics**
+ [配置 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-configuring.md)
+ [与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)
+ [S MediaTailor ecrets Manager 访问令牌身份验证的工作原理](channel-assembly-access-configuration-overview.md)

# 配置 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-configuring"></a>

要使用 AWS Secrets Manager 访问令牌身份验证时，请执行以下步骤：

1. 您[创建 AWS Key Management Service 客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

1. 您[创建了一个 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)。该密钥包含您的访问令牌，该令牌作为加密密钥值存储在 Secrets Manager 中。 MediaTailor 使用 AWS KMS 客户管理的密钥来解密密密钥值。

1. 您可以将 AWS Elemental MediaTailor 源位置配置为使用 Secrets Manager 访问令牌身份验证。

以下部分提供有关如何配置 AWS Secrets Manager 访问令牌身份验证的 step-by-step指导。

**Topics**
+ [步骤 1：创建 AWS KMS 对称的客户托管密钥](#channel-assembly-access-configuration-access-token-how-to-create-kms)
+ [步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)
+ [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth)

## 步骤 1：创建 AWS KMS 对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-kms"></a>

您用来 AWS Secrets Manager 以存储在密钥中的形式`SecretString`存储访问令牌。使用您创建、拥有和管理的*AWS KMS 对称客户托管密钥*进行加密。`SecretString` MediaTailor 使用对称的客户托管密钥来简化对密钥的访问（通过授权），并加密和解密密密钥值。

客户托管密钥允许您执行以下任务：
+ 制定和维护关键策略
+ 建立和维护 IAM 策略和授权
+ 启用和禁用密钥策略
+ 轮换加密密钥材料
+ 添加 标签

  有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

  有关客户托管密钥的更多信息，请参阅*《AWS Key Management Service 开发人员指南》*中的[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
AWS KMS 使用客户托管密钥需要支付费用有关定价的更多信息，请参阅定[AWS Key Management Service 价](https://aws.amazon.com/kms/pricing/)页面。

您可以使用 AWS 管理控制台 或以编程方式创建 AWS KMS 对称的客户托管密钥。 AWS KMS APIs

### 创建对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-create-symmetric-key"></a>

按照*AWS Key Management Service 开发人员指南*中[创建对称客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步骤进行操作。

记下关键的 Amazon 资源名称 (ARN)；你需要它。[步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)

### 加密上下文
<a name="channel-assembly-access-configuration-access-token-encryption-context"></a>

*加密上下文*是一组可选的键值对，包含有关数据的其他上下文信息。

Secrets Manager 在加密和解密时包含加密[上下文](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html#asm-encryption-context)。`SecretString`加密上下文包括机密 ARN，它将加密限制在该特定机密范围内。作为一项额外的安全措施，请代表您 MediaTailor 创建 AWS KMS 补助金。 MediaTailor 应用的[GrantConstraints](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html)操作仅允许我们解密与 S *ecrets Manager 加密*上下文中包含的机密 ARN `SecretString` 关联的 ARN。

有关 Secrets Manager 如何使用加密上下文的信息，请参阅*AWS Key Management Service 开发者指南*中的[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)主题。

### 设置密钥策略
<a name="channel-assembly-access-configuration-access-token-key-policy"></a>

密钥政策控制对客户托管密钥的访问。每个客户托管式密钥必须只有一个密钥策略，其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管密钥时，您可以使用默认密钥策略。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的 [AWS KMS的身份验证和访问控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)。

要将您的客户托管密钥与您的 MediaTailor 来源位置资源一起使用，您必须向调用[CreateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateSourceLocation.html)或使用[UpdateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_UpdateSourceLocation.html)以下 API 操作的 IAM 委托人授予权限：
+ `kms:CreateGrant`— 向客户托管密钥添加授权。 MediaTailor 为您的客户托管密钥创建授权，允许其使用该密钥创建或更新配置了访问令牌身份验证的来源位置。有关在中使用 Grant [s 的](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)更多信息 AWS KMS，请参阅《*AWS Key Management Service 开发者指南》。*

  这 MediaTailor 允许执行以下操作：
  + 致电`Decrypt`这样它就可以在呼叫时成功检索你的 Secrets Manager 密钥[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)。
  + 当源位置被删除或密钥的访问权限被撤销时，请致电`RetireGrant`取消授权。

以下是您可以为其添加的策略声明示例 MediaTailor：

```
{
        "Sid": "Enable MediaTailor Channel Assembly access token usage for the MediaTailorManagement IAM role",
        "Effect": "Allow",
        "Principal": {
        "AWS": "arn:aws:iam::account number:role/MediaTailorManagement"
    },
     "Action": "kms:CreateGrant",
     "Resource": "*",
     "Condition": {
         "StringEquals": {
             "kms:ViaService": "mediatailor.region.amazonaws.com"
        }
    }
}
```

有关在策略中指定权限以及对密钥访问进行故障排除的更多信息，请参阅*《AWS Key Management Service 开发人员指南*》[AWS KMS中的授](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)权。

## 步骤 2：创建 AWS Secrets Manager 密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-secret"></a>

使用 Secrets Manager 以 AWS KMS 客户托管密钥加密`SecretString`的形式存储您的访问令牌。 MediaTailor使用密钥来解密。`SecretString`有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

如果您使用源位置来源，并且想使用 S MediaTailor ecret AWS Elemental MediaPackage s Manager 访问令牌身份验证，请按照以下步骤操作[与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)。

你可以使用 Secrets Manager 创建 Secrets Manager 密钥， AWS 管理控制台 也可以通过编程方式使用 Secrets Manager APIs 创建。

### 创建密钥
<a name="channel-assembly-access-configuration-access-token-create-secret"></a>

按照*AWS Secrets Manager 用户指南*中[创建和管理密钥 AWS Secrets Manager的](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)步骤进行操作。

创建密钥时，请记住以下注意事项：
+ [KmsKeyId](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicaRegionType.html#SecretsManager-Type-ReplicaRegionType-KmsKeyId)必须是您在步骤 1 中创建的客户托管密钥的密钥 [ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)。
+ 您必须提供 [SecretString](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString). `SecretString`应该是有效的 JSON 对象，其中包含包含访问令牌的键和值。例如，\$1” MyAccessTokenIdentifier “: “112233445566"\$1。该值的长度必须介于 8-128 个字符之间。

  使用访问令牌身份验证配置源位置时，需要指定`SecretString`密钥。 MediaTailor 使用密钥查找和检索存储在中的访问令牌`SecretString`。

  记下秘密 ARN 和密钥。`SecretString`当您将来源位置配置为使用访问令牌身份验证时，您将使用它们。

### 附加基于资源的密钥策略
<a name="channel-assembly-access-configuration-access-token-secret-policy"></a>

要允许 MediaTailor 访问密钥值，您必须将基于资源的策略附加到该密钥。有关更多信息，请参阅*AWS Secrets Manager 用户指南*中的向 [Secrets Manager 密钥附加权限策略](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)。

以下是您可以为其添加的策略声明示例 MediaTailor：

------
#### [ JSON ]

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "mediatailor.amazonaws.com" 
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name" 
        } 
    ] 

}
```

------

## 步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置
<a name="channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth"></a>

您可以使用 AWS 管理控制台 或以编程方式配置 Secrets Manager 访问令牌身份验证。 MediaTailor APIs

**使用 Secrets Manager 访问令牌身份验证配置源位置**

按照《*AWS Elemental MediaTailor 用户指南*》[Access configuration](channel-assembly-creating-source-locations.md#access-configuration-console)中的步骤操作。

# 与使用 CDN 授权的 MediaPackage 端点集成
<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth"></a>

如果您使用 AWS Elemental MediaPackage 源位置来源，则 MediaTailor 可以与使用 CDN 授权的 MediaPackage 端点集成。

要与使用 CDN 授权的 MediaPackage 终端节点集成，请按以下步骤操作。<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth-procedure"></a>

**要与集成 MediaPackage**

1. 如果您尚未完成《*AWS Elemental MediaPackage 用户指南*》中[设置 CDN 授权](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth-setup.html)中的步骤。

1. 完成[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)中的过程。

1. 修改您在设置 MediaPackage CDN 授权时创建的密钥。使用以下值修改密钥：
   + `KmsKeyId`使用您在中创建的客户托管密钥 ARN 更新。[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)
   + （可选）对于`SecretString`，您可以将 UUID 轮换为新值，也可以使用现有的加密密钥，前提是它是标准 JSON 格式的密钥和值对，例如`{"MediaPackageCDNIdentifier": "112233445566778899"}`。

1. 完成 [附加基于资源的密钥策略](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-secret-policy) 中的步骤。

1. 完成 [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth) 中的步骤。

# S MediaTailor ecrets Manager 访问令牌身份验证的工作原理
<a name="channel-assembly-access-configuration-overview"></a>

在创建或更新源位置以使用访问令牌身份验证后，在从您的来源请求源内容清单时，请将访问令牌 MediaTailor 包含在 HTTP 标头中。

以下是如何 MediaTailor 使用 Secrets Manager 访问令牌身份验证进行来源位置来源身份验证的概述：

1. 当您创建或更新使用访问令牌身份验证的 MediaTailor 源位置时， MediaTailor 会向 Secrets Manager 发送[DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html#SecretsManager-DescribeSecret-request-SecretId)请求以确定与该密 AWS KMS 钥关联的密钥。您在来源位置访问配置中包含机密 ARN。

1. MediaTailor 为客户管理的密钥创建[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)，以便该密钥 MediaTailor 可以使用该密钥访问和解密存储在中的访问令牌。 SecretString拨款名称将是`MediaTailor-SourceLocation-your AWS 账户 ID-source location name`。

   您可以随时撤销对授予的访问权限，也可以取消 MediaTailor对客户托管密钥的访问权限。有关更多信息，请参阅《AWS Key Management Service API Reference》**中的 [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)。

1. 创建、更新 VOD 源或在程序中使用 VOD 源时， MediaTailor会向源位置发出 HTTP 请求，以检索与源位置中的 VOD 源关联的源内容清单。如果 VOD 源与配置了访问令牌的来源位置相关联，则请求会将访问令牌作为 HTTP 标头值。

# 使用 VOD 来源
<a name="channel-assembly-working-vod-sources"></a>

VOD 来源代表您添加到来源位置的单个内容，例如视频或播客剧集。您可以将一个或多个 VOD 源添加到您的源位置，然后在创建频道后将每个 VOD 来源与节目关联。

每个 VOD 来源必须至少有一个*软件包配置*。包配置为您的 VOD 来源指定包格式、清单位置和来源组。创建频道时，您可以使用包配置的源组在频道上创建相应的输出。例如，如果你的源代码以两种不同的格式（HLS 和 Dash）打包，那么你需要创建两个包配置，一个用于 DASH，一个用于 HLS。然后，您将创建两个通道输出，每个通道输出对应一个包配置。每个频道的输出都提供了一个用于播放请求的端点。因此，使用前面的示例，该频道将为 HLS 播放请求提供端点，为 DASH 播放请求提供端点。

如果您想自动检测清单中广告标记的偏移量，则每个广告标记在所有套餐配置中必须以相同的偏移量显示，并且持续时间为零。对于 HLS， MediaTailor 将检测`DATERANGE`并` EXT-X-CUE-OUT`标记。对于 DASH，HLS 将检测每个标签中的第一个事件`EventStream`标签。

在以下示例中，由于`DATERANGE`标签的持续时间为 0.0，因此将在 12000 毫秒的偏移量处检测到广告中断机会。偏移量为 0ms 的第一个`DATERANGE`标签不会被检测到，因为它的持续时间为 10.0。

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=10.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=0.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

在以下示例中，将在 0 毫秒的偏移量时检测到广告中断机会，因为该`EXT-X-CUE-OUT`标签的持续时间为 0，紧随其后的是`EXT-X-CUE-IN`标签。第二个`EXT-X-CUE-OUT`/`EXT-X-CUE-IN`对不会被检测到，因为它的持续时间为 10。

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-CUE-OUT:10
...
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

在以下示例中，将在 0 毫秒的偏移量时检测到广告中断机会，因为中的第一个事件`EventStream`发生在 PT0 .000S 开始的时间段内。`EventStream`将无法检测到`Event`中的第二个。

```
<Period start="PT0.000S" id="9912561" duration="PT29.433S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event duration="0">
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
<Event duration="0"> 
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
</EventStream>
  ...
</Period>
```

# 将 VOD 源添加到您的来源位置
<a name="channel-assembly-add-vod-source"></a>

以下过程说明了如何使用 MediaTailor 控制台将 VOD 源添加到您的来源位置并设置软件包配置。有关如何使用 API 添加 VOD 源的信息，请参阅 MediaTailor AP *AWS Elemental MediaTailor I 参考[CreateVodSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateVodSource.html)*中的。

**重要**  
在添加 VOD 源之前，请确保它们满足以下要求：  
源变体必须具有相同的长度，具体取决于源清单的长度。
在包配置中，每个源必须具有相同数量的子流。
由于这些要求，我们不支持按标题或自动 ABR，因为这些编码方法可能会生成不同的清单长度和子流。  
我们建议您使用包含最小段长度的编码模板，以确保您的编码源满足这些要求。<a name="add-vod-sources-procedure"></a>

**将 VOD 源添加到您的来源位置**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在**来源位置**窗格中，选择您在[创建源位置](channel-assembly-creating-source-locations.md#create-source-location-procedure)过程中创建的来源位置。

1. 选择**添加 VOD 来源**。

1. 在 **VOD 来源详细信息**下，输入您的 VOD 来源的名称：
   + **名称**：您的 VOD 来源的标识符，例如**my-example-video**。

1. 在 P **ackage 配置** > 下，*source-group-name*输入有关软件包配置的信息：
**注意**  
您的来源的软件包配置必须具有相同的持续时间，具体取决于来源的清单。而且，包配置中的所有源都必须具有相同数量的子流。为了满足这些要求，我们建议您为资产使用编码模板。我们建议您使用最小段长度为一秒的编码模板。 MediaTailor 不支持按标题或自动自适应比特率直播 (ABR)，因为这些编码方法违反了这些要求。
   + **源组**：输入描述此包配置的源组名称，例如 HLS-4K。记下这个名字；当你创建频道的输出时，你会引用这个名字。有关更多信息，请参阅 [将来源组与频道的输出配合使用](channel-assembly-source-groups.md)。
   + **类型**：为此配置选择打包格式。 MediaTailor 支持 HLS 和 DASH。
   + **相对路径**：从源位置的**基本 HTTP 网址**到清单的相对路径。例如，**/my/path/index.m** 3u8。
**注意**  
MediaTailor 自动导入父多变体播放列表中包含的所有隐藏式字幕和子流。您无需为每个源代码格式副本 (DASH) 或变体流 (HLS) 创建单独的包配置。

    有关软件包配置的更多信息，请参阅[使用软件包配置](channel-assembly-package-configurations.md)。

1. 选择**添加 VOD 来源**。

   如果要添加更多 VOD 源，请重复该过程中的步骤 4-7。

# 使用直播源
<a name="channel-assembly-working-live-sources"></a>

*直播源*代表您添加到来源位置的单个直播，例如直播足球比赛或新闻广播。创建频道后，您可以将一个或多个直播源添加到您的源位置，然后将每个直播源与一个节目相关联。

MediaTailor 支持以下类型的线性通道组装：
+ 包含内容 VOD-to-live的频道的 VOD 来源
+ 包含与 VOD-to-live内容混合的 live-to-live内容的频道的直播源

 VOD-to-live内容的一个例子是将VOD素材库汇编成直播的频道。内容与 live-to-live VOD-to-live内容混合的一个例子是，除了夜间新闻活动或预先安排的体育赛事直播外，该频道主要播放VOD内容。内容与 live-to-live VOD-to-live内容混合的另一个例子是全 live-to-live频道，其来源因一天中的时间而异。

您可以使用直播资源来建立区域频道，该频道主要播放全国节目，但也包括区域节目重播，并混入 VOD 内容。为此，您需要为全国性内容运行一 encoder/packager 对编码器，然后在这些区域上线时运行区域编码器。然后，您可以创建区域频道组装频道，每个频道都有自己的时间表。这样，观众就可以根据需要来回切换。此设置可帮助您最大限度地 encoding/packaging 降低成本。

每个直播源必须至少有一个软件包配置。*软件包配置*为您的直播源指定包格式、清单位置和来源组。创建频道时，您可以使用包配置的源组在频道上创建相应的输出。例如，如果你的源代码以两种不同的格式（HLS 和 Dash）打包，那么你需要创建两个包配置，一个用于 DASH，一个用于 HLS。然后，您将创建两个通道输出，每个通道输出对应一个包配置。每个频道的输出都提供了一个用于播放请求的端点。在此示例中，该频道为 HLS 播放请求提供端点，为 DASH 播放请求提供终端节点。

## 使用直播源的一般要求
<a name="channel-assembly-live-sources-requirements"></a>

使用直播源时，您的内容必须符合以下一般要求：
+ HLS 直播来源-您必须为清单窗口中的第一个片段以及每个不连续部分提供`#EXT-X-PROGRAM-DATE-TIME`标签。
+ HLS-您必须将广告标记配置为。`DATERANGE`
+ 来源清单窗口-我们建议使用持续时间至少与 Channel Assembly MediaTailor 频道上的清单窗口一样长的清单窗口。作为最佳实践，可以考虑使用比 Channel Assembly 频道上的清单窗口时长 30 秒或更长的清单时长。
+ 使目标持续时间与现有源的持续时间相匹配。
+ 使子播放列表的数量与现有来源的数量相匹配。

## 配置
<a name="channel-assembly-live-sources-elemental-configuration"></a>

如果您在直播源工作流程中使用其他 AWS Elemental 媒体服务，我们建议您在设置 MediaPackage配置时遵循最佳实践。下表描述了如何根据您使用的直播标准配置 MediaPackage 设置。


**MediaPackage 直播源设置**  

|  标准  |  设置  |  值  |  必要性  |  注意  | 
| --- | --- | --- | --- | --- | 
|  HLS  |  端点类型  |  `Apple HLS`  |  除非使用 CMAF，否则为必填项  |  匹配 HLS 职位 `ts` AWS Elemental MediaConvert   | 
|  HLS  |  端点类型  |  `CMAF`  |  除非使用苹果 HLS，否则为必填项  |  匹配 HLS 职位 `mp4` AWS Elemental MediaConvert   | 
|  HLS  |  `ProgramDateTimeIntervalSeconds`  |  `1`  |  必需  |  必须`#EXT-X-PROGRAM-DATE-TIME`对每个片段进行指定，以防止出现不连续播放时出现播放问题。  | 
|  HLS  |  `PlaylistWindowSeconds`  |  比频道集合清单窗口长 30 秒  |  必需  |    | 
|  HLS  |  `AdMarkers`  |  `DATERANGE`  |  通过广告标记时为必填项  |    | 
|  HLS  |  `IncludeIframeOnlyStream`  |  已禁用  |  推荐  |    | 
|  DASH  |  `ManifestLayout`  |  `FULL`  |  推荐  |    | 
|  DASH  |  `SegmentTemplateFormat`  |  `NUMBER_WITH_TIMELINE` 或 `TIME_WITH_TIMELINE`  |  推荐  |  不支持 `NUMBER_WITH_DURATION`。  | 
|  DASH  |  `ManifestWindowSeconds`  |  比频道集合清单窗口长 30 秒  |  必需  |    | 
|  DASH  |  `PeriodTriggers`  |  `ADS`  |  通过广告标记时为必填项  |    | 

# 将直播源添加到您的来源位置
<a name="channel-assembly-add-live-sources"></a>

以下过程说明了如何使用 MediaTailor 控制台将直播源添加到您的源位置并设置软件包配置。有关如何使用 MediaTailor API 添加直播源的信息，请参阅 *AWS Elemental MediaTailor API 参考[CreateLiveSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateLiveSource.html)*中的。

**重要**  
在添加直播源之前，请确保在包配置中，每个源都有相同数量的子流。<a name="add-live-sources-procedure"></a>

**将直播源添加到您的源位置**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在**来源位置**窗格中，选择您在[创建源位置](channel-assembly-creating-source-locations.md#create-source-location-procedure)过程中创建的来源位置。

1. 在 “**直播源**” 选项卡上，选择 “**添加直播源**”。

1. 在**直播源详细信息**下，输入直播源的名称：
   + **名称**：直播源的标识符，例如**my-example-video**。

1. 在 P **ackage 配置** > 下，*source-group-name*输入有关软件包配置的信息：
**注意**  
在套餐配置中，所有 VOD 源和直播源必须具有相同数量的子流。我们建议您以相同的方式配置源流。
   + **源组**：输入描述此包配置的源组名称，例如 HLS-4K。记下这个名字；当你创建频道的输出时，你会引用这个名字。有关更多信息，请参阅 [将来源组与频道的输出配合使用](channel-assembly-source-groups.md)。
   + **类型**：为此配置选择打包格式。 MediaTailor 支持 HLS 和 DASH。
   + **相对路径**：从源位置的**基本 HTTP 网址**到清单的相对路径。例如，**/my/path/index.m** 3u8。
**注意**  
MediaTailor 自动导入父多变体播放列表中包含的所有隐藏式字幕和子流。您无需为每个源代码格式副本 (DASH) 或变体流 (HLS) 创建单独的包配置。

    有关软件包配置的更多信息，请参阅[使用软件包配置](channel-assembly-package-configurations.md)。

1. 选择 “**添加直播源**”。

   如果要添加更多直播源，请重复该过程中的步骤 4-6。

# 使用软件包配置
<a name="channel-assembly-package-configurations"></a>

包配置是源代码的表示形式，它包含在不同设备上播放所需的各种封装特性。例如，您的源可能有三种打包格式：带有 DRM 的 HLS、带区段时间轴寻址的 DASH 和带有 CMAF 片段的 HLS。

 频道集合不会重新打包你的来源。如果要为给定来源包含多种打包格式，则必须使每种打包格式在源位置可用，并指定每种打包格式的路径。

 每个软件包配置对象必须包括以下内容：
+ **相对路径**-源文件打包格式相对于源位置的完整路径。例如，**/my/path/index.m** 3u8。
+ **来源组**-用于将包配置与频道输出关联的源组的名称。
+ **类型**-HLS 或 DASH。

 创建频道后，还必须声明要用于频道输出的每个源组。

# 清单缓存
<a name="channel-assembly-manifest-caching"></a>

MediaTailor 定期并有机会地缓存源播放列表，以提高频道组合的性能和可靠性。有时，与源位置的原始版本相比，缓存的版本会过时。 MediaTailor 要强制刷新源代码的缓存版本，请调用[UpdateVodSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_UpdateVodSource.html)。例如，当源代码中的嵌入路径发生变化时，使用此调用。即使你看到的请求很少，也要确保在你的来源位置上始终保留一个可用的源 up-to-date版本 MediaTailor。

# 使用通道
<a name="channel-assembly-channels"></a>

频道将您的源清单汇编成线性流。每个通道包含一个或多个与您的封装配置相对应的输出。

 首先创建频道，然后通过创建*节目*将 VOD 源和直播源添加到频道的日程安排中。每个节目都与 VOD 源或直播源相关联。

**Topics**
+ [使用 MediaTailor 控制台创建频道](channel-assembly-creating-channels.md)
+ [将来源组与频道的输出配合使用](channel-assembly-source-groups.md)
+ [使用 MediaTailor 控制台删除频道](channel-assembly-starting-stopping-channels.md)

# 使用 MediaTailor 控制台创建频道
<a name="channel-assembly-creating-channels"></a>

 以下过程介绍如何使用 MediaTailor 控制台创建频道。<a name="create-channel-procedure"></a>

**创建通道**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 在导航栏上，选择**创建频道**。

1. 在 “**频道详情**” 下，输入有关您的频道的详细信息：
   + **名称**：输入频道的名称。
   + **等级**：等级决定频道支持哪些功能以及运营该频道的成本。有关定价的更多信息，请参阅 [Channel Assembly 定价页面](https://aws.amazon.com/mediatailor/pricing/#Channel_Assembly_Pricing)。 MediaTailor 支持以下等级：
     + **基本**-基本层支持线性和循环播放模式，不支持直播源。
     + **标准**-标准层支持直播源，需要线性播放模式。

       当您在**频道详细信息**中选择**标准**时，可以在受众**详细信息下定义受众**。当你要为默认节目创建 AudienceMedia 时，这些受众将用于 Progrules。
       + 选择**添加**。
       + 在文本框中输入**受众**名称。它的长度必须介于 1 到 32 个字母数字字符之间。
       +  选择**确认**。
       + 选择**下一步**。
   + <a name="playback-mode"></a><a name="playback-mode.title"></a>**播放模式**：播放模式设置频道的播放行为。 MediaTailor 支持以下播放模式：
     + **Loop**-日程安排中的节目无休止 back-to-back地循环播放。按计划播放最后一个节目后，回放会循环播放到第一个节目。播放会继续循环，直到您停止频道为止。
     + **线性**-时间表中的每个节目播放一次， back-to-back。

1. <a name="filler-slate"></a>在 **Filler slat** e 中，选择引用 slate **位置的来源位置名称**和用作板块的 **VOD 来源名称**。 MediaTailor 使用名单来填补时间表中节目之间的空白。如果 slate 的持续时间小于程序之间间隔的持续时间，则 MediaTailor 循环使用 slate。如果您的频道使用线性播放模式，则必须将 filler slate 字段配置为。 MediaTailor 不支持循环播放模式的填充板。

1. 选择**下一步**。

1. 根据节目规则指定受众详细信息。

1. 当您在**频道详细信息**中选择**标准**时，可以在受众详细信息下定义**受众**。当你要为默认**节目创建 **AudienceMed** ia 时，这些受众将用于 Progrule** s：
   + 选择**添加**，然后在文本框中添加受众，然后选择**确认**。
**注意**  
输入长度不超过 \$1 32 个字母数字字符的名称。
   + **输出类型**：选择频道的直播格式。支持 DASH 和 HLS。
   + **来源组**：输入您在软件包配置中创建的源组的名称，如中所述[将 VOD 源添加到您的来源位置](channel-assembly-add-vod-source.md)。

1. 选择**下一步**。

1. 在**清单设置**下，输入有关清单设置的其他信息：
   + **清单窗口（秒）**：每个清单中包含的时间窗口，以秒为单位。最小值为 30 秒，最大值为 3600 秒。
   + **广告标记类型（仅限 HLS 输出）**：VOD 节目广告插播中显示的广告标签类型。选择`Daterange`在带有`EXT-X-DATERANGE`标签的 VOD 节目中 MediaTailor 插入广告片段。选择`Scte35 Enhanced`使用和`EXT-X-CUE-IN`标签在 VOD 节目中 MediaTailor 插入广告片`EXT-X-CUE-OUT`段。有关这些标签类型的更多信息，请参阅[SCTE-35 广告时段的消息](ca-scte-35-messages.md)。对于直播工作流程，无论所选的广告标记类型如何，都要 MediaTailor 始终传递标签，并且不会通过任何增强型 Scte35 标签。`DATERANGE`

1. 如果要配置多通道输出，请在**输出**下选择**添加**。然后，通过完成此过程中的步骤 6 和步骤 7 来配置输出的详细信息。

1. 选择**下一步**。

1. 在**渠道政策**下，选择您频道的 IAM 策略设置：
   + **请勿附加频道政策**：仅允许有权访问此账户凭证的用户进行播放。
   + **附加自定义策略**：定义自己的策略，将访问权限限制为任意数量或任意数量。
   + **附加公共政策**：接受所有传入的客户端请求到频道的输出。如果您想使用 MediaTailor 广告插播，则必须使用此选项。

1. 选择**下一步**。

1. 在 “查看**并创建” 窗格上查看**您的设置。

1. 选择 **Create channel (创建通道)**。
**注意**  
频道是在停止状态下创建的。在您使用 MediaTailor 控制台或 MediaTailor StartChannel API 启动频道之前，您的频道才会处于活动状态。

# 将来源组与频道的输出配合使用
<a name="channel-assembly-source-groups"></a>

源组将包配置与频道上的输出相关联。在源上创建包配置时，可以识别源组的名称。然后，当您在频道上创建输出时，输入相同的名称以将输出与包配置相关联。添加到频道上节目的 VOD 源和直播源必须属于输出中标识的来源组。

 例如：
+ **VOD 来源 1 和 2 都有三种包含源组的软件包配置：**HLS、**DASH** 和 HLS-** 4K。**
+ **VOD 来源 3 有两种包配置，分别是源组 **HLS** 和 DASH。**





 如果频道 A 有两个输出以及源组 **HLS** 和 **DASH**，则频道输出可以使用所有三个 VOD 源。**这是因为 VOD 来源 1、2 和 3 都具有带有源组标签 **HLS** 和 DASH 的软件包配置。**

如果频道 B 有两个输出，其源组为 **HLS 和 HL** **S-4K**，则它可以使用 VOD 源 1 和 2，但不能使用 3。**这是因为 VOD 源 1 和 2 都具有带有源组标签 **HLS 和 HLS-** 4K 的软件包配置。**

如果频道 C 在源组 **DASH** 中只有一个输出，则它可以使用所有三个 VOD 源。所有三个 VOD 源都有 **DASH** 源组的软件包配置。

# 使用 MediaTailor 控制台删除频道
<a name="channel-assembly-starting-stopping-channels"></a>

 要删除您的频道，请完成以下步骤。<a name="delete-channel"></a>

**删除您的频道**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要删除的频道。

1. 如果您的频道正在播出，请从 “**操作**” 下拉菜单中选择 “**停止**”。您必须先停止您的频道，然后才能将其删除。

1. 频道停止后，从 “**操作**” 下拉菜单中选择 “**删除**”。

# 将节目添加到频道的日程安排中
<a name="channel-assembly-programs"></a>

每个节目都包含一个 VOD 源或作为您账户中来源位置一部分的直播源。您可以将节目添加到频道的日程安排中，以控制它们在频道直播中的播放顺序。

包含 VOD 来源的节目可以配置一个或多个广告插播时间。每个广告时段都包含一个名单，即来自某个来源位置的 VOD 来源。要制作广告插播时间，您需要将偏移量（以毫秒为单位）添加到程序中。

**Topics**
+ [使用 MediaTailor 控制台在频道时间表内创建节目](channel-assembly-adding-programs.md)
+ [使用节目规则定义受众群组和替代内容](working-with-program-rules.md)
+ [生成针对特定受众的清单](generating-audience-specific-manifests.md)

# 使用 MediaTailor 控制台在频道时间表内创建节目
<a name="channel-assembly-adding-programs"></a>

 以下过程介绍如何使用 MediaTailor 控制台在频道的节目表中创建节目。它还描述了如何配置广告插播时间（可选）。有关如何使用 MediaTailor API 创建程序的信息，请参阅 *AWS Elemental MediaTailor API 参考[CreateProgram](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateProgram.html)*中的。<a name="add-programs-procedure"></a>

**添加程序**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 在**频道**窗格中，选择您在[创建通道](channel-assembly-creating-channels.md#create-channel-procedure)过程中创建的频道。

1. 在**计划详细信息**中，输入有关您的计划的详细信息：
   + **名称**：这是您添加到频道的节目的名称。
   + **来源类型**：确定程序播放的源视频类型。此选项仅适用于标准频道。
     + **VOD**-该节目播放 video-on-demand来源，例如预先录制的电视剧集。
     + **直播**-该节目播放实时来源，例如新闻直播。
   + **源位置名称**：与程序 MediaTailor 关联的源位置。
     + 如果选择 **“选择现有来源位置**”，请从 “选择来源位置” 菜单**中选择源位置**名称。或者，按名称搜索您的来源位置。如果您有大量的来源位置，这会很有用。
     + 如果选择 “**输入来源地点名称**”，请按名称搜索来源地点。
     + **VOD 来源名称**：与该节目 MediaTailor 关联的 VOD 源的名称：
       + 如果您选择**选择现有 VOD 来源**，请从与您的账户关联的 VOD 来源列表中选择一个 VOD 来源名称。或者，按名称搜索您的 VOD 来源。如果您有大量的 VOD 来源，这会很有用。
       + 如果您选择 “**按名称**搜索”，请按名称搜索直播源。
     + **直播源名称**：要与节目关联的直播源的名称。只有选择 “**直播**” 作为源类型时，此选项才可用。
       + 如果选择 **“选择现有来源位置**”，请从 “选择来源位置” 菜单**中选择源位置**名称。或者，按名称搜索您的来源位置。如果您有大量的来源位置，这会很有用。
       + 如果选择 “**输入来源地点名称**”，请按名称搜索来源地点。
       + **VOD 来源名称**：与该节目 MediaTailor 关联的 VOD 源的名称：
         + 如果您选择 **“选择现有直播源**”，请从与您的账户关联的直播源列表中选择直播源名称。或者，您也可以按名称搜索直播源。如果你有大量的直播源，这会很有用。
         + 如果您选择 “**按名称**搜索”，请按名称搜索直播源。

1. 选择 “**下一步**” 转至 “**计划配置**” 选项卡。

1. 在 “**播放配置”** 下，定义节目在频道的日程安排中何时播放：
   + **持续时间（以毫秒为单位）**：定义程序的持续时间（以毫秒为单位）。此选项仅适用于使用实时源的节目。
   + **过渡类型**：定义调度中从一个程序到另一个程序的过渡：
     + **相对**：该节目在日程安排中的另一个节目之前或之后播放。此选项仅适用于使用 VOD 源的节目。
     + **绝对**：程序在特定的挂钟时间播放。 MediaTailor 尽最大努力在您指定的时钟时间播放该节目。 MediaTailor 在前一个节目或板块之间的公共片段边界上开始播放该节目。此选项仅适用于配置为使用线性的通道[**播放模式**：播放模式设置频道的播放行为。 MediaTailor 支持以下播放模式：](channel-assembly-creating-channels.md#playback-mode)。
     + **节目开始时间**：对于绝对过渡类型，指节目预定播放时的挂钟时间。如果要将此程序添加到正在运行的线性通道中，则必须输入自当前时间起 15 分钟或更晚的开始时间。
     + **相对位置**：选择将程序插入时间表中相对于另一个程序的位置。您可以选择 “**程序之前**” 或 “**程序之后**”。如果这是您频道节目表中的第一个节目，则此设置不适用。
       + 如果您选择 **“选择现有节目**”，请从 “**使用现有节目” 菜单中从该频道接下来播放的 100 个节目的预定义列表中选择节目**名称。
       + 如果您选择 “**按名称搜索节目**”，请输入频道中现有节目的名称。

   如果您想在节目中添加广告插播时间，请继续下一步。广告时段只能为使用 VOD 来源的节目进行配置。对于直播来源，DASH 清单中的广告插播和使用该`EXT-X-DATERANGE`标签的 HLS 清单中的广告插播时间会自动传递。

1. 选择 “**下一步**” 转至 “**添加广告插播时间**”。

1. 选择 “**添加广告插播时间**”。在 “**广告插播时间**” 下，配置广告插播时间点的设置：
   + **Slate 来源位置名称**：**选择 “选择现有源位置**”，然后选择您之前在本任务中创建的 Slate 存储来源位置。
   + **VOD 来源名称**：选择 **“选择现有 VOD 来源**”，然后选择您在本任务之前添加的 Slate 所用的 VOD 来源。广告的持续时间决定了广告插播的持续时间。
   + **偏移量（以毫秒为单位）**：此值确定广告插播开始时间（以毫秒为单位），即相对于节目开头的偏移量。输入任何小于 VOD 源持续时间且与节目 VOD 源内所有轨道（所有音频、视频和隐藏字幕轨道）上的片段边界对齐的值，否则广告插播将被跳过。例如，如果您输入 **0**，则会创建一个在节目开始之前播放的前贴片广告插播时间。
   + **可用编号**：按照 SCTE-35 规范 9.7.3.1 节 “[数字节目插入](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022)提示消息” 中的定义， MediaTailor 写入此值。`splice_insert.avail_num`默认值是 0。值必须介于 0 和 256 之间（含）。
   + **预期可用：按**照 SCTE-35 规范第 9.7.3.1 节的定义`splice_insert.avails_expected`，将此值 MediaTailor 写入。默认值是 0。值必须介于 0 和 256 之间（含）。
   + **拼接事件 ID**：按照 SCTE-35 规范第 9.7.3.1 节中的定义`splice_insert.splice_event_id`，将此值 MediaTailor 写入。默认值是 1。
   + **唯一程序 ID**：按照 SCTE-35 规范第 9.7.3.1 节的定义`splice_insert.unique_program_id`，将此值 MediaTailor 写入。默认值是 0。值必须介于 0 和 256 之间（含）。

1. 对于标准线性通道，请选择 “**下一步**” 转至 “**设置备用媒体**”。

   有关使用创建备用媒体 MediaTailor 的更多信息，请参阅[创建备用媒体](working-with-program-rules.md#program-rules-creating-alternate-media)。

   有关使用对广告插播时间 MediaTailor 进行个性化设置的更多高级信息，请参阅[在频道直播中插入个性化广告和广告插播时间](channel-assembly-integrating-mediatailor-ssai.md)。

1. 选择 “**下一步**” 转至 “**查看并创建”**。

1. 选择 “**添加程序**”。

   有关使用对广告插播时间 MediaTailor 进行个性化设置的更多高级信息，请参阅[在频道直播中插入个性化广告和广告插播时间](channel-assembly-integrating-mediatailor-ssai.md)。

1. 
**重要**  
对于循环频道，如果您修改了计划在接下来的 10 分钟内的节目的节目列表，则编辑要等到下一个循环才会显现出来。

   在 “**计划详情**” 下，输入有关您的计划的详细信息：
   + **名称**：这是您添加到频道的节目的名称。
   + **来源类型**：确定节目播放的源类型。此选项仅适用于标准频道。
     + **VOD**-该节目播放 VOD 来源，例如预先录制的电视剧集。
     + **直播**-该节目播放实时来源，例如新闻直播。
   + **源位置名称**：要与程序关联的源位置。

     如果选择 **“选择现有来源位置**”，请从 “选择来源位置**” 下拉菜单中选择来源位置**名称。或者，您也可以按名称搜索来源位置。如果您有大量的来源位置，这会很有用。

     如果选择 “**输入来源地点名称**”，请按名称搜索来源地点。
   + **VOD 来源名称**：要与节目关联的 VOD 源的名称。

     如果您选择**选择现有 VOD 来源**，请从与您的账户关联的 VOD 来源列表中选择一个 VOD 来源名称。您也可以按名称搜索您的 VOD 来源。如果您有大量的 VOD 来源，这会很有用。

     如果您选择 “**按名称搜索**”，请按名称搜索您的 VOD 来源。
   + **直播源名称**：要与节目关联的直播源的名称。只有选择 “**直播**” 作为源类型时，此选项才可用。

     如果您选择 **“选择现有直播源**”，请从与您的账户关联的直播源列表中选择直播源名称。或者，您也可以按名称搜索直播源。如果你有大量的直播源，这会很有用。

     如果您选择 “**按名称**搜索”，请按名称搜索直播源。

1. 在 “**播放配置”** 下，定义节目在频道的日程安排中何时播放：
   + **持续时间（以毫秒为单位）**：定义程序的持续时间（以毫秒为单位）。此选项仅适用于使用实时源的节目。
   + **过渡类型**：定义调度中从一个程序到另一个节目的过渡。
     + **相对**节目-节目在日程安排中的另一个节目之前或之后播放。此选项仅适用于使用 VOD 源的节目。
     + **绝对**-节目在特定的挂钟时间播放。 MediaTailor 尽最大努力在您指定的时钟时间播放该节目。我们开始在前一个节目或板块之间的公共片段边界上播放该节目。此选项仅适用于配置为使用[linear playback mode](channel-assembly-creating-channels.md#linear-playback-mode)。
**注意**  
请注意绝对过渡类型的以下行为：  
如果调度中的前一个节目的持续时间超过挂钟时间，则在最接近挂 MediaTailor 钟时间的公共段边界上截断前一个节目。
如果日程安排中的节目之间存在间隔，则 MediaTailor 播放[filler slate](channel-assembly-creating-channels.md#filler-slate)。如果石板的持续时间小于间隙的持续时间，则 MediaTailor 循环石板。
   + **节目开始时间**-对于绝对过渡类型，指节目预定播放时的挂钟时间。如果要将此程序添加到正在运行的线性通道中，则必须输入自当前时间起 15 分钟或更晚的开始时间。
   + **相对位置**：选择将程序插入计划相对于另一个程序的位置。您可以选择 “**程序之前**” 或 “**程序之后**”。如果这是您频道节目表中的第一个节目，则此设置不适用。
   + **相对程序**：用于在之前或之后插入新程序的程序的名称。如果这是您频道节目表中的第一个节目，则此设置不适用。

     如果您选择 **“选择现有节目**”，请在 “**使用现有节目” 下拉菜单中从该频道接下来播放的 100 个节目的预定义列表中选择节目**名称。

     如果您选择 “**按名称搜索节目**”，请输入频道中现有节目的名称。

   如果您想在节目中添加广告插播时间，请继续下一步。广告时段只能为使用 VOD 来源的节目进行配置。对于直播来源，DASH 清单中的广告插播和使用该`EXT-X-DATERANGE`标签的 HLS 清单中的广告插播时间会自动传递。

1. 选择 “**添加广告插播时间**”。在 “**广告插播时间**” 下，配置广告插播时间点的设置：<a name="channel-assembly-programs-ad-breaks"></a>
   + **Slate 源位置名称**：**选择 “选择现有源位置**”，然后选择您在本教程前面创建的 Slate 存储来源位置。
   + **VOD 来源名称**：选择 **“选择现有 VOD 来源**”，然后选择在本教程前面部分添加的 VOD 来源。广告的持续时间决定了广告插播的持续时间。
   + 对于 O **ffset（以毫秒为单位）**：此值确定广告插播开始时间（以毫秒为单位），即相对于节目开头的偏移量。输入任何小于 VOD 源持续时间且与节目 VOD 源内所有轨道（所有音频、视频和隐藏字幕轨道）上的片段边界对齐的值，否则广告插播将被跳过。例如，如果您输入 **0**，则会创建一个在节目开始之前播放的前贴片广告插播时间。
**注意**  
如果 MediaTailor 检测到 VOD 来源中持续时间`EXT-X-CUE-OUT`为零的广告标记（例如 HLS 和 `EventStream` DASH 的广告标记），则可以从下拉菜单中选择这些广告标记的偏移量作为广告插播时间的偏移量。`DATERANGE`为了检测到广告机会，VOD 来源内所有套餐配置中的广告机会必须以相同的偏移量出现，并且其持续时间必须为零。
   + **消息类型**：SCTE-35 广告插入类型。**选择 **SPLICE\$1INSERT 或 TIME\$1SIGNA** L：**
     + **SPLICE\$1INSERT：使用拼接插入**参数提供有关广告插播时间的基本元数据。
     + **TIME\$1SIGN** AL：使用分段描述符提供更高级的元数据。有关消息类型之间差异的更多信息，请参阅[SCTE-35 广告时段的消息](ca-scte-35-messages.md)。

     对于 **SPLICE\$1INSERT 消息，请键入**：
     + 对于 **Avail 编号**`splice_insert.avail_num`，按照 SCTE-35 规范第 9.7.3.1 节中的定义，将其写入。默认值为 `0`。值必须介于`0`和之间`256`，含在内。
     + 对于**预期可用性，按**照 SCTE-35 规范`splice_insert.avails_expected`第 9.7.3.1 节的定义，将其写入。默认值为 `0`。值必须介于`0`和之间`256`，含在内。
     + 对于 **Splice 事件 ID**，按照 SCTE-35 规范第 9.7.3.1 节中的定义`splice_insert.splice_event_id`，将其写入。默认值为 `1`。
     + 对于**唯一程序 ID**，按照 SCTE-35 规范第 9.7.3.1 节中的定义，将其写入。`splice_insert.unique_program_id`默认值为 `0`。值必须介于`0`和之间`256`，含在内。

     对于 **TIME\$1SIGNAL** 消息类型：
     + 对于**分段事件 ID**，按照 SCTE-35 规范第 10.3.3.1 节中的定义，将其写入。`segmentation_descriptor.segmentation_event_id`默认值为 `1`。
     + 对于**分段类型 ID**，按照 SCTE-35 规范第 10.3.3.1 节中的定义，将其写入。`segmentation_descriptor.segmentation_type_id`默认值为 `48` (0x30)。值必须介于`0`和之间`256`，含在内。
     + 对于**分段 UPID**，按照 SCTE-35 规范第 10.3.3.1 节中的定义，将其写入。`segmentation_descriptor.segmentation_upid`该值必须是包含字符和的十六进制字符串。`0-9` `A-F`默认值是空字符串。
     + 对于**分段 UPID 类型**，按照 SCTE-35 规范第 10.3.3.1 节中的定义`segmentation_descriptor.segmentation_upid_type`，将其写入。默认值为 `14` (0x0E)。值必须介于`0`和之间`256`，含在内。
     + 对于**分段编号**，按照 SCTE-35 规范第 10.3.3.1 节中的定义，将其写入。`segmentation_descriptor.segment_num`默认值为 `0`。值必须介于`0`和之间`256`，含在内。
     + 对于**预期的区段，按**照 SCTE-35 规范`segmentation_descriptor.segments_expected`第 10.3.3.1 节中的定义，将其写入。默认值为 `0`。值必须介于`0`和之间`256`，含在内。

1. 选择 “**添加程序**”。

    有关使用对广告插播时间 MediaTailor 进行个性化设置的更多高级信息，请参阅[在频道直播中插入个性化广告和广告插播时间](channel-assembly-integrating-mediatailor-ssai.md)。
**注意**  
如果您的频道至少有一个`Enhanced Scte35`广告标记类型的输出，则可以提交广告插播元数据。 MediaTailor 将提交的键值对写入广告插播`EXT-X-ASSET`时间段的标签。

# 使用节目规则定义受众群组和替代内容
<a name="working-with-program-rules"></a>

使用节目规则，您可以为频道定义受众群组，并指定要为这些受众播放的替代媒体。您可以将一个或多个备用内容源与节目的受众相关联。节目结束后，除非您指定其他替代媒体，否则将播放默认的受众内容。

节目规则适用于采用线性播放模式的标准级频道。 MediaTailor频道支持所有 VOD 来源和直播源的替代媒体。

有关使用示例，请参阅将[程序规则与一起使用 AWS MediaTailor](https://aws.amazon.com/blogs/media/using-program-rules-with-aws-elemental-mediatailor/)。

## 定义受众
<a name="defining-audiences-program-rules"></a>

在配置频道时，通过逐个键入受众来定义 MediaTailor频道上的受众。您可以通过 MediaTailor 控制台或 MediaTailor `CreateChannel` API 执行此操作。每个受众的长度必须介于 1 到 32 个字母数字字符之间。如果为受众提供的值无效，则请求将失败。

您只能使用线性播放模式在标准级别的频道上定义受众。

当你需要更新受众时，你可以使用 MediaTailor 控制台或 MediaTailor `UpdateChannel` API 来完成此操作。

如果您正在使用该`ProgramRules`功能，请确保在`CreateProgram`或`UpdateProgram`请求中`AudienceMedia`定义的内容包含频道中定义的现有受众。

## 创建备用媒体
<a name="program-rules-creating-alternate-media"></a>

以下任务说明如何使用 MediaTailor 控制台定义备用媒体。有关如何使用 MediaTailor API 定义替代媒体的信息，请参阅 *AWS Elemental MediaTailor API 参考[https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateProgram.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateProgram.html)*中的。

要在新节目中定义备用媒体，请执行以下操作：

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**频道集合** > **频道**。

1. 选择要向其添加备用媒体的频道名称。

1. 创建程序。有关更多信息，请参阅 [使用 MediaTailor 控制台在频道时间表内创建节目](channel-assembly-adding-programs.md)。

1. 配置备用媒体：
   + 在 “**受众**” 框中选择 “**添加**”，选择要为其定义替代媒体的受众。
   + 从 “受众” 菜单中选择在频道上定义的**受众**。
   + 选择 “**添加备用媒体**”，开始为节目定义备用媒体。
   + MediaTailor 创建一个 “**备用媒体 1**” 盒子。这是第一个在节目 MediaTailor 中作为备用媒体播放的内容。
   + 在 “**备用媒体 1**” 框中：
     + 选择**来源位置**。
     + 选择 **VOD** 或 **Live Source** 类型：

       适用于 VOD
       + 为**来源类型**选择 VOD。
       + （可选）指定**剪辑范围**。使用 VOD 源（包括备用媒体 VOD 源），您可以指定要播放 VOD 源的一部分，从来源的开头开始 and/or 剪辑。指定起始和结束偏移以毫秒为单位。
       + （可选）a\$1 添加广告插播时间。这与创建程序时的方式相同。有关更多信息，请参阅 [使用 MediaTailor 控制台在频道时间表内创建节目](channel-assembly-adding-programs.md)。

       为了直播
       + 为**来源类型选择 “直播”**。
       + 选择**直播源**。
       + 输入**开始时间**，以此直播源应启动的挂钟时间为单位的毫秒。直播源只能在定义它的默认程序的时间范围内播放。如果启动时间早于默认程序的启动，则要等到默认程序启动后才会开始。如果开始时间是在默认程序结束之后，则 MediaTailor 不会播放直播源。
       + 输入**持续时间**（以毫秒为单位）。持续时间必须至少为 10 分钟。
       + 通过再次选择 “添加备用媒体”，可以将其他**备用媒体添加到**该节目中，供观众使用。这将创建另一个标有 “**备用媒体 2**” 的盒子。每个节目、每个受众最多可以指定 5 个替代媒体来源。
       + 为所有所需受众定义替代媒体后，选择 “**下一步**” 并继续创建节目。

         有关更多信息，请参阅 [使用 MediaTailor 控制台在频道时间表内创建节目](channel-assembly-adding-programs.md)。
**注意**  
备用媒体只能在定义的节目时间范围内播放。如果所有备用内容都超出了默认内容，则 MediaTailor 会将其截断。 MediaTailor 按定义的顺序播放备用媒体。直播备用媒体的开始时间将始终优先，并将截断之前安排的 VOD 源或直播源。任何没有为观众准备的替代媒体时，都将填满频道定义的填充名单
   + 要为其他受众定义受众媒体，请再次选择受**众**旁边的**添加**。如上所述，选择新创建的受众，设置受众 ID 并添加备用媒体。任何一个节目最多可以有 5 位观众使用备用媒体。

# 生成针对特定受众的清单
<a name="generating-audience-specific-manifests"></a>

要检索特定受众的清单，请使用`aws.mediatailor.channel.audienceId`查询参数。此查询参数可以由您的 CDN 动态追加，也可以通过调用您的内容或客户管理系统来添加。您必须保持给定播放会话与`audienceId`外部的关联 MediaTailor。这将检索特定受众的清单，其中包含为该受众定义的任何替代媒体来代替默认内容。重要的是，在为特定受众请求清单后，玩家必须始终使用相同的受众 ID 请求清单，否则可能会出现播放错误。

如果向频道中不存在的观众发出了请求，则会 MediaTailor 返回 404 错误。

**Example 为受众获取清单**  
`https:// prefix>.channel-assembly.mediatailor.us-west-2.amazonaws.com/v1/channel/ExampleChannel/index_dash.mpd?aws.mediatailor.channel.audienceId=Seattle`

# 在频道直播中插入个性化广告和广告插播时间
<a name="channel-assembly-integrating-mediatailor-ssai"></a>

借助 MediaTailor，您可以通过在节目中插入广告插播来通过频道组装线性流获利，而无需使用 SCTE-35 标记来调整内容。您可以将频道组合与 MediaTailor 广告插入服务或任何服务器端广告插入 (SSAI) 配合使用。

以下主题介绍如何在频道的线性直播中插入个性化广告和广告插播时间。

**Topics**
+ [使用设置广告插入 MediaTailor](ca-setting-up-emt-ssai.topic.md)
+ [SCTE-35 广告时段的消息](ca-scte-35-messages.md)

# 使用设置广告插入 MediaTailor
<a name="ca-setting-up-emt-ssai.topic"></a>

要将个性化广告插入频道的直播中，您的频道的端点网址就是其内容来源 AWS Elemental MediaTailor。本指南介绍如何设置广告 MediaTailor 插播。

## 先决条件
<a name="ca-setting-up-emt-ssai-prereqs"></a>

在您开始之前，确保您满足以下要求：
+ 为 HLS 和 DASH 直播做好 MediaTailor 广告投放准备。
  + 如果您尚未准备好内容流，请参阅 [第 2 步：准备直播](getting-started-ad-insertion.md#getting-started-prep-stream) “* MediaTailor 广告插入入门*” 主题。
+ 拥有广告决策服务器 (ADS)。
+ 在程序中配置**广告**插播设置。有关更多信息，请参阅[Configuring ad breaks for your program](channel-assembly-adding-programs.md#channel-assembly-programs-ad-breaks)步骤。<a name="considerations"></a>

作为最佳实践，可以考虑在渠道组装和 MediaTailor 广告插入之间使用内容分发网络 (CDN)。 MediaTailor 广告插入服务可以生成其他源站请求。因此，最佳做法是将 CDN 配置为代理来自频道集合的清单，然后使用内容源 URL 前缀 URLs 的 CDN。

## MediaTailor 为广告插入进行配置
<a name="name"></a>

以下内容显示了如何配置 MediaTailor 主机设置，以便您可以将个性化广告插入频道的直播中。<a name="ca-integrating-ssai-procedure"></a>

**为广告插入 MediaTailor 进行配置**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在导航窗格中，选择**配置**。

1. 在 **“必填设置”** 下，输入有关您的配置的基本必填信息：
   + **名称**：您的配置的名称。
   + **内容来源**：输入频道输出中的播放网址，减去文件名和扩展名。有关 MediaTailor配置的高级信息，请参阅[必需的设置](configurations-create.md#configurations-create-main)。
   + **广告决策服务器**：输入广告的网址。

1. 您可以选择**配置别名**、**个性化详细信息和****高级设置**。有关这些设置的信息，请参阅[可选配置设置](configurations-create.md#configurations-create-addl)。

1. 在导航栏上，选择**创建配置**。

既然你已经设置了广告 MediaTailor 插播，你还可以设置广告插播时间。有关详细说明，请参阅[MediaTailor 广告插入入门](getting-started-ad-insertion.md)。

# SCTE-35 广告时段的消息
<a name="ca-scte-35-messages"></a>

使用 MediaTailor，您可以根据来源位置和 VOD 源资源创建内容频道。然后，您可以根据频道的时间表为每个节目设置一个或多个广告时段。您可以使用基于 SCTE-35 规范的消息来限制内容是否有广告插播时间。例如，您可以使用 SCTE-35 消息来提供有关广告时段的元数据。有关 SCTE-35 规范的更多信息，请参阅[数字节目插入提示消息](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022)。

您可以通过以下两种方式之一来设置广告插播时间：
+ 正在附上一条 `time_signal` SCTE-35 消息和一条`segmentation_descriptor`消息。此`segmentation_descriptor`消息包含更高级的元数据字段，例如内容标识符，用于传达有关广告插播时间的更多信息。 MediaTailor 将广告元数据作为 `EXT-X-DATERANGE` (HLS) 或 `EventStream` (DASH) 广告标记的 SCTE-35 数据的一部分写入输出清单。
+ 附上一条 `splice_insert` SCTE-35 消息，提供有关广告插播时间的基本元数据。
+ HLS：
  + 当广告标记类型为时`Daterange`，在清单中将广告插播`EXT-X-DATERANGE`时间 MediaTailor 指定为标签。
  + 当广告标记类型为时`Scte35 Enhanced`，使用以下标签 MediaTailor 指定广告插播时间：
    + MediaTailor `EXT-X-CUE-OUT`在广告板的第一部分放置一个，表示从内容到广告插播时间已被切断。它包含广告插播的预期持续时间，例如`EXT-X-CUE-OUT:Duration=30`。
    + `>EXT-X-ASSET`：此标签与创建或更新程序 AdBreak 时提供的广告插播元数据出现在同一片段上，`EXT-X-CUE-OUT`并且包含该广告插播元数据。它总是包含`CAID`。
    + `EXT-OATCLS-SCTE35`：此标签与 SCTE-35 消息出现在同一段中，`EXT-X-CUE-OUT`并且包含 base64 编码字节。
    + `EXT-X-CUE-OUT-CONT`：此标签显示在广告列表中的每个后续细分中，并包含持续时间和经过的时间信息。它还包含 base64 编码的 SCTE-35 消息，以及. `CAID` 
    + `EXT-X-CUE-IN`：广告插播结束后，此标签会显示在第一段内容上，表示从广告插播到内容的剪辑。

下图显示了使用 SCTE-35 消息在频道中设置广告时段的两种方法：
+ 使用`splice_insert()`消息设置带有基本元数据的广告时段。
+ 将消息与`time_signal()`消息结合使用，设置带有更详细元数据的广告时段。`segmentation_descriptor()`

![\[使用 SCTE-35 消息在频道中设置广告时段的两种方法。\]](http://docs.aws.amazon.com/zh_cn/mediatailor/latest/ug/images/scte-35-splice-insert-vs-time-signal-segmentation-descriptor.png)


有关使用的信息`time_signal`，请参阅 2022 SCTE-35 规范第 9.7.4 节 “[数字节目插入提示消息”。](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022)

广告插播信息显示在输出的 `splice_info_section` SCTE-35 数据中。使用 MediaTailor，您可以将一条`segmentation_descriptor`消息与一条`time_signal`消息配对。

**注意**  
如果您发送`segmentation_descriptor`消息，则必须将其作为`time_signal`消息类型的一部分发送。该`time_signal`消息仅包含使用给定时间戳 MediaTailor 构造的`splice_time`字段。

下表描述了每`segmentation_descriptor`条消息 MediaTailor 所需的字段。有关更多信息，请参阅 2022 年 SCTE-35 规范第 10.3.3.1 节，您可以在 [ANSI](https://webstore.ansi.org/Standards/SCTE/ANSISCTE352022) 网上商店网站上购买该规范。


**`segmentation_descriptor`消息的必填字段**  

| 字段 | Type | 默认 值 | 说明 | 
| --- | --- | --- | --- | 
| segmentation\$1event\$1id | 整数 | 1 | 这是写给的segmentation\$1descriptor.segmentation\$1event\$1id。 | 
| segmentation\$1upid\$1type | 整数 | 14 (0x0E) | 这是写给的segmentation\$1descriptor.segmentation\$1upid\$1type。该值必须介于 0 和 256 之间（含）。 | 
| segmentation\$1upid | 字符串 | ""（空字符串） | 这是写给的segmentation\$1descriptor.segmentation\$1upid。该值必须是包含字符和的十六进制字符串。0-9 A-F | 
| segmentation\$1type\$1id | 整数 | 48 (0x30) | 这是写给的segmentation\$1descriptor.segmentation\$1type\$1id。该值必须介于 0 和 256 之间（含）。 | 
| segment\$1num | 整数 | 0 | 这是写给的segmentation\$1descriptor.segment\$1num。该值必须介于 0 和 256 之间（含）。 | 
| segments\$1expected | 整数 | 0 | 这是写给的segmentation\$1descriptor.segments\$1expected。该值必须介于 0 和 256 之间（含）。 | 
| sub\$1segment\$1num | 整数 | null | 这是写给的segmentation\$1descriptor.sub\$1segment\$1num。该值必须介于 0 和 256 之间（含）。 | 
| sub\$1segments\$1expected | 整数 | null | 这是写给的segmentation\$1descriptor.sub\$1segments\$1expected。该值必须介于 0 和 256 之间（含）。 | 

下表显示了为`segmentation_descriptor`消息的某些字段 MediaTailor 自动设置的值。


**为`segmentation_descriptor`消息 MediaTailor 的字段设置的值**  

| 字段 | Type | 值 | 
| --- | --- | --- | 
| segmentation\$1event\$1cancel\$1indicator | 布尔值 | True | 
| program\$1segmentation\$1flag | 布尔值 | True | 
| delivery\$1not\$1restricted\$1flag | 布尔值 | True | 

MediaTailor 始终将设置`segmentation_duration_flag`为`True`。 MediaTailor用状态内容的持续时间（以刻度为单位）填充该`segmentation_duration`字段。

**注意**  
 MediaTailor 发送`time_signal`消息时，它将`splice_info_section`消息中的`splice_command_type`字段设置为 6 (0x06)。

在 HLS 输出中，对于`AdBreak`带有`time_signal`消息的，输出`EXT-X-DATERANGE`标签包括一个设置为消息序列化版本的`SCTE-35``splice_info_section`字段。例如，以下`EXT-X-DATERANGE`标签显示`splice_info_section`消息的序列化版本：

```
#EXT-X-DATERANGE:ID=\"1\",START-DATE=\"2020-09-25T02:13:20Z\",DURATION=300.0,SCTE35-OUT=0xFC002C00000000000000FFF00506800000000000160214435545490000000100E000019BFCC00E0030000000000000
```

在 DASH 输出中，对于`AdBreak`带有`time_signal`消息的，输出`EventStream`元素包括一个以`scte35:TimeSignal`和`scte35:SpliceInfoSection`元素为子`scte35:SegmentationDescriptor`元素的元素。该`scte35:TimeSignal`元素有一个子`scte35:SpliceTime`元素，而该`scte35:SegmentationDescriptor`元素有一个子`scte35:SegmentationUpid`元素。例如，以下 DASH 输出显示了`EventStream`元素的子元素结构：

```
<EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
    <Event duration="27000000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
            <scte35:TimeSignal>
                <scte35:SpliceTime ptsTime="0" />
            </scte35:TimeSignal>
            <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="27000000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="48" segmentsExpected="0">
                <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">012345</scte35:SegmentationUpid>
            </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
</EventStream>
```

您学习了如何使用 SCTE-35 消息在频道集合中设置广告时段、这些消息的结构和必填字段，以及包含 SCTE-35 消息的 HLS 和 DASH 输出示例。

# 对频道的播放进行时移
<a name="channel-assembly-time-shift"></a>

通过 MediaTailor 频道组合，您可以对频道的播放进行时移。时移允许观众在原始播出时间以外的时间观看频道的内容。例如，观众可以从头开始观看节目，即使他们在节目开始后才加入广播。或者，观众可以暂停节目，稍后再继续观看。

要对频道的播放进行时移，可以在该频道的播放 URL 中添加一个`start`参数。该`start`参数指定应开始播放的时间（相对于当前时间）。例如，如果当前时间是下午 2:00，而您想从下午 1:00 开始播放，则应将`start`参数设置为`-3600`，即 -1 小时（以秒为单位）。

该`start`参数接受正值和负值，以秒为单位：
+ 负值表示相对于当前时间的过去时间。例如，`start=-3600`表示 “从 1 小时前开始播放”。
+ 正值表示相对于当前时间的 future 时间。例如，`start=3600`表示 “将来 1 小时后开始播放”。

以下示例说明如何将`start`参数添加到频道的播放 URL：

```
https://a1b2c3d4e5f6.mediapackage.us-west-2.amazonaws.com/out/v1/examplechannel/index.m3u8?start=-3600
```

在此示例中，播放从 1 小时前开始。

该`start`参数受以下限制：
+ 过去或将来的最大时移窗口为 24 小时。
+ 时移仅适用于使用线性回放模式的频道。
+ 时移不适用于使用循环播放模式的频道。

如果您指定的`start`参数超出了可用的时移窗口，则 MediaTailor 会返回错误。