

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

# MediaTailor 与 CDN MediaPackage 集成
<a name="mediapackage-integration"></a>

AWS Elemental MediaTailor 与集成 AWS Elemental MediaPackage ，通过内容分发网络 (CDN) 投放个性化视频广告。 MediaPackage 是一项 just-in-time视频打包和制作服务，用于准备和保护您的视频内容，以便通过互联网传送。它可以将你的直播或点播视频内容打包成HLS和DASH等流媒体格式，为各种设备上的观众做好准备。

当你 MediaPackage 与 MediaTailor 和 CDN 结合使用时，你就创建了一个完整的流媒体工作流程，可以大规模投放个性化广告。CDN 在全球范围内分发您的内容，从而减少延迟并改善观众体验，同时在您的直播中 MediaTailor 插入有针对性的广告。

本主题重点介绍让 MediaTailor MediaPackage、和 CDN 协同工作的基本集成步骤。有关高级配置选项、故障排除和监控指南，请参阅[后续步骤](#emp-cdn-next-steps)。

## 了解 MediaPackage 和 CDN 工作流程
<a name="emp-cdn-overview"></a>

在配置集成之前，请务必了解 MediaPackage MediaTailor、和 CDN 是如何协同工作的：

1. **内容准备**： MediaPackage 接收您的直播或点播视频内容，并将其打包成流媒体格式（HLS 或 DASH 清单和片段）。

1. **广告插入**： MediaTailor 向观众请求清单 MediaPackage，插入个性化广告，并将修改后的清单提供给观众。

1. **全球分发**：您的 CDN 会缓存内容区段（来自 MediaPackage）和广告细分（来自），并将其分发给全球 MediaTailor观众。

1. **观看者播放**：视频播放器通过 CDN 请求清单，CDN 在 MediaTailor（对于清单）和 MediaPackage （对于内容分段）之间适当地路由请求。

这种架构具有以下几个优点：
+ **可扩展性**：CDN 可在不影响源服务器的情况下处理高观看者负载
+ **性能**：内容从离观众最近的边缘位置传送
+ **成本效益**：通过缓存降低带宽成本
+ **可靠性**：多个边缘位置提供冗余

## 先决条件
<a name="emp-cdn-prerequisites"></a>

在开始之前，请确保已配置以下组件：

1. **MediaPackage 端点**：用于接收和打包您的视频内容的已配置 MediaPackage 端点。有关设置说明，请参阅 MediaPackage 用户指南 MediaPackage中的[入门](https://docs.aws.amazon.com/mediapackage/latest/ug/getting-started.html)。

1. **MediaTailor 配置**：使用您的 MediaPackage 终端节点作为内容来源的 MediaTailor 配置。有关设置说明，请参阅[整合用于 MediaTailor 广告插入的内容来源](integrating-origin.md)。

1. **CDN 分发**：配置为使用流媒体的 CDN 分发（例如 CloudFront）。有关设置说明，请参阅 CloudFront 开发者指南中的[创建发行版](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)。

1. **广告决策服务器**：已配置的广告决策服务器，可返回 VAST 或 VMAP 响应以进行广告插入。

## 步骤 1：配置基本的 CDN 设置
<a name="mediapackage-best-practices"></a>

正确的 CDN 配置对于成功 MediaPackage 集成至关重要。设置不正确可能会导致播放失败、缓存性能不佳和成本增加。如果没有正确的缓存策略和查询参数转发，您的 CDN 可能无法正确交付清单，或者可能完全绕过缓存，从而导致源服务器负载过高和观看者体验降低。

### 配置基本缓存设置
<a name="mediapackage-cache-control"></a>

配置基本缓存至关重要，因为 MediaPackage 使用特定的缓存控制标头来优化内容交付。如果没有适当的缓存设置，您的 CDN 可能会忽略这些标头，从而导致不必要的源站请求和延迟增加。请按照以下步骤确保最佳的缓存行为：

要配置与之配合使用的基本缓存，请执行 MediaPackage以下操作：

1. 在 CloudFront 控制台中打开您的 CloudFront 分发设置。

1. 为您的 MediaPackage 源选择或创建缓存策略。

1. 启用 “Origin Cache-Control 标头” 选项。

1.  MediaPackage 允许通过其缓存控制标头来控制缓存行为。

此基本配置允许 MediaPackage 自动为不同的内容类型设置适当的缓存持续时间。要使用特定 TTL 值和性能调整实现高级缓存优化，请先完成此基本设置，然后继续。[优化 CDN 缓存 MediaTailor 和 MediaPackage 内容交付](cdn-emp-caching.md)

### 配置基本查询参数
<a name="mediapackage-query-strings"></a>

查询参数配置对于 MediaPackage 功能至关重要。您的 CDN 必须转发特定的查询参数才能启用时移观看和低延迟直播等功能。不正确的查询参数设置可能会使这些功能无法运行，我担心会降低缓存效率。按照以下步骤配置查询参数转发：

为确保您的 CDN 将所需的查询参数转发至： MediaPackage

1. 在 CloudFront 分发设置中，为清单请求选择或创建缓存策略。

1. 在 “缓存密钥设置” 下，选择 “包括指定的查询字符串”。

1. 添加以下基本查询参数：
   + `start`和 `end`-用于时移查看功能。将这些参数传递 MediaPackage 到以定义特定的内容窗口，以便从头到尾查看和追赶查看
   + `_HLS_msn`和 `_HLS_part`-用于支持 LL-HLS 播放请求
   + `m`-用于捕获端点 ti/compame 的修改内容。 MediaPackage 响应始终包含用于捕获端点修改时间的`?m=###`标签。如果已经使用此标签的不同值缓存了内容，则会 CloudFront 请求新的清单，而不是提供缓存的版本
   + `aws.manifestfilter`-用于清单筛选功能。如果您使用的是清单筛选，则必须包含此参数才能将分配配置为将`aws.manifestfilter`查询字符串转发到 MediaPackage源，这是清单筛选功能起作用所必需的

1. 仅包括 MediaPackage 使用的查询字符串。包含不必要的查询字符串会为相同的内容创建多个缓存变体，从而降低缓存效率。

这些参数使您的 CDN 具有基本 MediaPackage 功能。如果您需要针对不同的订阅等级或设备类型实现内容筛选，请先完成此基本查询参数设置，然后继续[使用 MediaTailor、 MediaPackage和 CDN 设置清单筛选](cdn-emp-manifest-filtering.md)。

有关如何 MediaTailor 将查询参数传递给`start`和`end`传递到 MediaPackage 时移查看的信息，请参阅[MediaTailor 原点的查询参数处理](origin-query-parameters.md)中的。[MediaTailor 清单查询参数](manifest-query-parameters.md)

### 配置 LL-HLS 的响应超时
<a name="mediapackage-response-timeout"></a>

超时配置对于低延迟 HLS 至关重要，因为 LL-HLS 使用 “阻止请求” 机制，CDN 会等待新的内容分段。如果超时时间过短，请求就会失败，然后 MediaPackage 才能用新的片段进行响应，从而导致播放中断和观众体验不佳。配置适当的超时时间以确保流畅播放 LL-HLS：

如果您使用的是低延迟 HLS，请配置 CDN 超时设置：

1. 在您的 CDN 设置中，找到源站超时配置。

1. 将响应超时值设置为零件持续时间的至少三倍。

1. 例如，如果您的零件持续时间为 0.3 秒，请将超时设置为至少 0.9 秒。

这样可以确保 CDN 在使用阻止请求机制时等待足够长的时间 MediaPackage 才能做出响应。

## 第 2 步：验证您的集成
<a name="manifest-filtering-integration"></a>

测试您的集成对于确保所有组件在观众遇到问题之前都能正常协同工作至关重要。集成失败可能会导致播放中断、广告丢失或效果不佳。此验证过程可帮助您在受控环境中识别和解决问题。

配置 CDN 设置后，通过测试从内容请求到广告插入的完整工作流程，验证您的集成是否正常运行。

### 步骤 2.1：测试基本播放
<a name="manifest-filtering-overview"></a>

基本播放测试可验证您的 CDN 是否正确处理清单请求并将其转发给。 MediaTailor此测试有助于识别缓存策略、查询参数转发和清单处理方面的配置问题。请按照以下步骤测试基本清单交付：

通过您的 CDN 请求清单，测试您的基本集成是否正常运行：

1. 使用网络浏览器或 curl 通过您的 CDN 请求清单网址。

1. 验证清单是否成功加载并且包含内容和广告细分。

1. 检查清单 URLs 中的内容区段是否指向你的 CDN 域。

1. 确认广告区段 URLs 也指向您的 CDN 域名。

如果清单正确加载并包含预期内容 URLs，则说明您的基本集成正在运行。有关全面的测试方法和高级验证程序，请参阅[CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)。要设置对集成的性能和运行状况的全面监控，请参阅[监控 CDN 和 MediaTailor 集成的性能 MediaPackage](cdn-emp-monitoring.md)。

### 步骤 2.2：测试视频播放
<a name="manifest-filtering-cdn-config"></a>

视频播放测试可确保您的完整集成正常运行 end-to-end，包括广告插入和通过 CDN 交付内容。此测试可验证内容细分和广告区段是否已正确缓存和投放，以及观看者体验是否符合您的质量标准。请按照以下步骤测试完整的播放功能：

测试插入广告后视频播放是否能正常播放：

1. 使用视频播放器（例如 Video.js 或 HLS.js）通过 CDN 播放您的内容。

1. 确认视频播放流畅无缓冲问题。

1. 确认广告在播放期间按预期的时间插入。

1. 检查内容和广告区段是否都从您的 CDN 加载（而不是直接来自来源）。

如果广告可以顺畅播放，则说明您的集成运行正常。有关全面的测试方法和高级验证程序，请参阅[CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)。如果您遇到任何播放问题、缓冲或广告插入问题，请参阅[故障排除 MediaPackage、CDN 和集成 MediaTailor](cdn-emp-troubleshooting.md)。

## 后续步骤
<a name="emp-cdn-next-steps"></a>

完成基本集成后，您可以实现高级功能和优化：

**高级 CDN 优化**  
有关缓存优化、TTL 配置和性能调整的详细信息，请参阅[优化 CDN 缓存 MediaTailor 和 MediaPackage 内容交付](cdn-emp-caching.md)。

**清单筛选**  
要对分层服务、设备优化或访问控制实施内容筛选，请参阅[使用 MediaTailor、 MediaPackage和 CDN 设置清单筛选](cdn-emp-manifest-filtering.md)。

**问题排查**  
如果您在集成时遇到问题，请参阅[故障排除 MediaPackage、CDN 和集成 MediaTailor](cdn-emp-troubleshooting.md)。

**性能监控**  
要设置全面监控并了解关键性能指标，请参阅[监控 CDN 和 MediaTailor 集成的性能 MediaPackage](cdn-emp-monitoring.md)。