

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

# 如何 MediaPackage 运作
<a name="what-is-flow"></a>

AWS Elemental MediaPackage (MediaPackage) 使用 just-in-time格式转换将 over-the-top (OTT) 视频从单一来源传送到各种播放设备或内容交付网络 (CDNs)。

以下各节描述了 MediaPackage 工作原理。

**Topics**
+ [实时内容处理](what-is-flow-live.md)
+ [VOD 内容处理](what-is-flow-vod.md)
+ [实时和 VOD 清单参考](what-is-manifest.md)

# 实时内容处理
<a name="what-is-flow-live"></a>

在直播内容的处理流程中，编码器向发送直播 HLS 流。 MediaPackage MediaPackage 然后打包内容，对其进行格式化以响应下游设备的播放请求。

以下几节介绍了实时处理流程。

**Topics**
+ [常规 MediaPackage 实时处理流程](what-is-flow-gen.md)
+ [实时输入冗余 AWS Elemental MediaPackage 处理流程](what-is-flow-ir.md)

# 常规 MediaPackage 实时处理流程
<a name="what-is-flow-gen"></a>

以下内容概述了直播内容的总体流程 MediaPackage：

1. 上游编码器（例如 AWS Elemental MediaLive）通过 WebDAV 将带有摘要身份验证的 HLS 直播发送到 MediaPackage 频道输入 URL，并包括频道的访问凭证（如中所提供）。 MediaPackage如果您使用的是输入冗余，编码器会向频道上的每个输入 URL 发送两个相同的 HLS 直播。 MediaPackage MediaPackage 使用来自一个输入 URL 的直播作为源内容。如果 MediaPackage 停止在活动输入 URL 上接收内容，它会自动切换到源内容的另一个输入 URL。此外，还可以向上和向下 AWS 扩展资源以处理传入流量。

   有关更多信息，请参阅 [实时输入冗余 AWS Elemental MediaPackage 处理流程](what-is-flow-ir.md)。
**注意**  
为了支持时移观看等功能，请在有限的时间内 MediaPackage 存储所有收到的内容。仅在存储的内容位于终端节点上定义的 **startover window (启动时段)** 内时，才能播放该内容。如果存储的内容在启动窗口之外，或者没有在端点上定义窗口，则无法播放。有关更多信息，请参阅 [时移观看参考 AWS Elemental MediaPackage](time-shifted.md)。

1. 下游设备 MediaPackage 通过端点输出 URL 请求内容。下游设备可以是视频播放器，也可以是 CDN。输出 URL 与特定流格式（Apple HLS、DASH-ISO、Microsoft Smooth Streaming 或 CMAF）的端点关联。

1.  MediaPackage 收到来自下游设备的播放请求时，它会根据您在端点上指定的设置动态打包直播。打包可能包括添加加密和配置音频、视频及字幕或字幕轨道输出。

   请务必对输入进行排序，以便在父清单的音频部分首先列出您的首选音频格式副本。对字幕或字幕执行同样的操作。打包音频、字幕或字幕轨道时，将第一个音频和字幕或字幕轨道 MediaPackage 指定为和。`DEFAULT=YES` `AUTO-SELECT=YES`此打包会覆盖输入中的默认设置和自动选择设置。

1. MediaPackage 通过 HTTPS 将输出流传送到发出请求的设备。与输入一样，可以向上和向下 AWS 扩展资源以应对流量的变化。

1. MediaPackage 通过 Amazon 记录活动 CloudWatch。您可以查看诸如内容请求数量以及 MediaPackage 已接收或交付的内容数量之类的信息。有关在中查看 MediaPackage 指标的信息 CloudWatch，请参阅[AWS Elemental MediaPackage 使用 Amazon CloudWatch 指标进行监控](monitoring-cloudwatch.md)。

在整个内容输入和输出过程中， MediaPackage 检测并缓解潜在的基础架构故障，以免它们成为观众面临的问题。

下图显示了总体过程。

![\[MediaPackage 工作流程\]](http://docs.aws.amazon.com/zh_cn/mediapackage/latest/ug/images/bbl_flow1.png)


# 实时输入冗余 AWS Elemental MediaPackage 处理流程
<a name="what-is-flow-ir"></a>

 AWS Elemental MediaPackage 通过将两个数据流发送到一个通道中的单独输入 URLs ，实现输入冗余 MediaPackage。其中一个流成为终端节点的主要活动源，而另一个流继续被动地接收内容。如果 MediaPackage 停止接收来自活动流的内容，它会切换到另一个输入流，这样内容的播放就不会中断。

如果你 MediaPackage 使用 wit AWS Elemental MediaLive h（例如），则输入冗余的流程如下：

1. 您可以在中创建频道 MediaPackage，如中所述[创建通道](channels-create.md)。配置 MediaPackage 通道时，它会 URLs 为该通道创建两个输入。如果您没有使用输入冗余，您可以将流发送到任何一个输入 URL。不要求您向两者发送内容 URLs。
**注意**  
当输入冗余可用时，向现有频道 MediaPackage 添加第二个输入 URL，并将现有 URL 更新为新格式。您可以使用现有的 URL 或新的 URL URLs 进行内容输入。

1. 您可以在中创建终端节点 MediaPackage ，如中所述[创建终端节点](endpoints-create.md)。
**重要**  
如果您使用较短的输出片段，则在 MediaPackage 切换输入时可能会看到缓冲，具体取决于您的播放设备。您可以使用终端节点上的时间延迟功能来减少缓冲。请注意，使用延时会给内容的 end-to-end交付带来延迟。有关启用时间延迟的信息，请参阅[创建终端节点](endpoints-create.md)。

1. 您在中创建输入和频道 AWS Elemental MediaLive，然后向中的频道添加 MediaPackage输出组 MediaLive。有关更多信息，请参阅《AWS Elemental MediaLive 用户指南》**中的[从头开始创建通道](https://docs.aws.amazon.com/medialive/latest/ug/creating-channel-scratch.html)。

   如果您在中使用 HLS 输出组 AWS Elemental MediaLive，则必须将 HLS 组设置中的输入丢失操作设置为在服务未收到输入时暂停输出。如果在缺少输入时 MediaLive 发送黑框或其他填充框，则 MediaPackage 无法分辨何时缺少分段，因此无法执行故障转移。有关在中设置输入丢失操作的更多信息 MediaLive，请参阅《*AWS Elemental MediaLive 用户指南*[》中的 HLS 组字段](https://docs.aws.amazon.com/medialive/latest/ug/hls-group-fields.html)。
**重要**  
如果您使用不同的编码器（不是 AWS Elemental MediaLive），并且将两个单独的直播发送到中的同一个频道 MediaPackage，则这些直播必须具有相同的编码器设置和清单名称。否则，输入冗余可能无法正常工作；如果切换输入，播放可能会中断。

1. 您启动频道 AWS Elemental MediaLive 以将直播发送到 MediaPackage。

1. MediaPackage 接收两个输入的内容 URLs，但一次只能将其中一个流用于源内容。如果活动流缺少任何片段，则 MediaPackage 会自动故障转移到另一个流。 MediaPackage 继续使用此流，直到再次需要进行故障转移。

   用于确定输入是否缺少段的公式基于输入和端点上的段长度。如果输入缺少段并快速恢复，则段长度较长的终端节点将不会切换输入。这可能会导致使用不同输入的通道上出现不同的终端节点（如果一个终端节点切换而另一个不切换）。这是预期的行为，不应影响内容工作流程。

# VOD 内容处理
<a name="what-is-flow-vod"></a>

在 VOD 内容的处理流程中，从 Amazon S3 中 AWS Elemental MediaPackage 提取基于文件的视频内容。 MediaPackage 然后打包内容，对其进行格式化以响应下游设备的播放请求。

以下是 MediaPackage 中的 VOD 内容的一般处理流程：

1.  您可以从 MediaPackage 资产中启动从 Amazon S3 存储桶中提取源内容。此过程可能耗时数分钟。当收录完成且播放 URLs已上线时，您将收到 Amazon CloudWatch 事件。

1. 下游设备 MediaPackage 通过资产上的打包配置 URL 请求内容。下游设备可以是视频播放器，也可以是 CDN。该 URL 与特定流格式（Apple HLS、DASH-ISO、Microsoft Smooth Streaming 或 CMAF）的配置相关联。

1. 当 MediaPackage 收到来自下游设备的播放请求时，它会根据您在打包配置中指定的设置动态打包流。打包可能包括添加加密和配置音频、视频及字幕或字幕轨道输出。

   请务必对输入进行排序，以便在父清单的音频部分首先列出您的首选音频格式副本。对字幕或字幕执行同样的操作。打包音频、字幕或字幕轨道时，将第一个音频和字幕或字幕轨道 MediaPackage 指定为和。`DEFAULT=YES` `AUTO-SELECT=YES`此打包会覆盖输入中的默认设置和自动选择设置。

1. MediaPackage 通过 HTTPS 将输出流传送到发出请求的设备。与输入一样，可以向上和向下 AWS 扩展资源以应对流量的变化。

1. MediaPackage 通过 Amazon 记录活动 CloudWatch。您可以查看内容请求数以及 MediaPackage 传送的内容数量等信息。有关在中查看 MediaPackage VOD 指标的信息 CloudWatch，请参阅[AWS Elemental MediaPackage 使用 Amazon CloudWatch 指标进行监控](monitoring-cloudwatch.md)。

在整个内容输入和输出过程中， MediaPackage 检测并缓解潜在的基础架构故障，以免它们成为观众面临的问题。

# 实时和 VOD 清单参考
<a name="what-is-manifest"></a>

AWS Elemental MediaPackage 向请求的设备提供直播和视频点播 (VOD) 清单。实时清单指示内容不完整。新内容通过播放终端节点持续变得可用。或者，一个 VOD 清单指示节目完整，或者将在未来的指定时间变得完整。

本节介绍直播清单和 VOD 清单的区别，并说明每种清单 MediaPackage 类型的交付时间。

# 清单属性
<a name="manifest-properties"></a>

这些是清单中的主要属性，用于确定清单是实时还是 VOD：
+ 对于 HLS 和 CMAF VOD 清单，`EXT-X-ENDLIST` 是比特率清单的末尾。在实时清单中，此标签不存在。
+ 对于 MPEG-DASH VOD 清单，`type="static"` 位于 `MPD` 属性中。在实时清单中，`type=dynamic`。
+ 对于 Microsoft Smooth VOD 清单，`SmoothStreamingMedia` 属性中不存在 `IsLive`。在实时清单中，`IsLive=TRUE`。

对于 VOD，播放设备上的选段播放条也通常显示节目具有有限持续时间。此持续时间等于当前清单的长度。如果播放请求定义了特定播放时段，此持续时间等于该播放时段的长度。

要确定清单是直播还是 VOD，请参阅[实时和 VOD 清单参考](what-is-manifest.md)。

## 当清单是 VOD 时
<a name="manifest-complete"></a>

MediaPackage 节目内容完成后会提供 VOD 清单。 MediaPackage 在以下条件下认为计划已完成：

**过去有一个 `end` 参数。**  
当播放请求包含一个在过去设置的 `end` 参数时，内容就是完整的。没有向其中添加任何新内容。 MediaPackage 向下游设备提供静态 VOD 清单。  
有关播放请求中的开始和结束参数的信息，请参阅[时移观看参考 AWS Elemental MediaPackage](time-shifted.md)。

**上游编码器传送到 MediaPackage 的清单包含一个 `EXT-X-ENDLIST` 标签。**  
当你停止编码器的输出时，它发送到的清单会 MediaPackage 包含一个`EXT-X-ENDLIST`标签。此标签 MediaPackage 表示内容已完成，不会添加任何新内容。 MediaPackage 向下游设备提供静态 VOD 清单。  
如果您在通往的一个或两个管道停止时手动停止 AWS Elemental MediaLive 频道， MediaPackage 则 MediaLive 不会包含`EXT-X-ENDLIST`在 HLS 清单中。 MediaPackage MediaPackage 继续制作现场清单。  
如果在您停止频道时两条管道都处于活动状态，则 MediaLive包括`EXT-X-ENDLIST`。 MediaPackage 向下游设备提供 VOD 清单。
如果您重新启动来自编码器的输出，来自 MediaPackage 的清单将再次变为活动状态。播放设备可能需要刷新才能继续内容播放。  
如果您使用了输入冗余且活动流结束， MediaPackage 将故障转移到另一个传入流以进行输入。在两个传入流都结束之前，清单不会被标记为完整的。