

# 媒体质量感知弹性
<a name="media-quality-score"></a>

媒体质量感知弹性（MQAR，Media Quality-Aware Resiliency）是 [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 与 [AWS Media Services](https://aws.amazon.com/media-services/) 之间的一项集成功能。MQAR 提供基于媒体质量置信度分数（MQCS，Media Quality Confidence Score）的自动跨区域源选择。MQCS 由 AWS Elemental MediaLive 根据影响观众感知的媒体质量体验的参数合成。您可以使用多种选项（在 CloudFront 源组失效转移标准中指定），将 CloudFront 和 AWS Media Services 配置为高弹性地分发实时事件流。

当您为分配启用 MQAR 功能时，即授权 CloudFront 自动选择被认为具有最高质量得分的源。

质量得分代表在您的源端感知到的媒体流媒体质量问题，例如黑框、卡滞或丢帧或者重复帧。例如，如果您的 AWS Elemental MediaPackage v2 源部署在两个不同的 AWS 区域中，其中一个源报告的媒体质量得分高于另一个源，则 CloudFront 将自动切换到报告了较高得分的源。

为此，CloudFront 执行以下操作：

1. CloudFront 将 `GET` 请求转发到主 MediaPackage 源，同时还会向辅助 MediaPackage 源发起 `HEAD` 请求。CloudFront 接受每个源的响应标头中的媒体质量得分。

1. 接下来，CloudFront 跟踪每个源的分数，并在收到新请求时，使用此信息来确定分数较高的源。

您来源的媒体质量得分会实时改变。CloudFront 使用 MQCS 更改来确定这种情况，并在源之间切换，以确保观众看到更高质量的媒体内容。有关更多信息，请参阅《AWS Elemental MediaPackage V2 User Guide**》中的 [Leveraging media quality scores with MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/userguide/mqcs.html)。

MQAR 帮助 CloudFront 尽早确定是否存在可能影响客户的问题。例如，网络连接、视频处理、音频损失或丢失、编码器速度问题等，均可能影响观众的媒体质量得分。

MQAR 提供无缝的源切换，这样您就可以在 AWS 上，部署高弹性的跨区域端到端媒体分发工作流，为观众提供高质量的内容。

**注意**  
目前，此功能仅支持 MediaPackage v2 源。

要为分配启用此功能，请完成以下步骤：

1. 如果您还没有 MediaPackage v2 源，请创建该源并在端点配置中启用此功能。对于跨区域部署，请使用相同的设置在不同的 AWS 区域中创建辅助频道。有关更多信息，请参阅《AWS Elemental MediaPackage V2 User Guide》**中的以下主题：
   + [创建频道和端点](https://docs.aws.amazon.com/mediapackage/latest/userguide/getting-started.html)
   + [启用媒体质量得分](https://docs.aws.amazon.com/mediapackage/latest/userguide/mqcs.html)

1. 要为 CloudFront 使用您的 MediaPackage v2 源，请创建或更新 CloudFront 分配。请参阅[创建分配](distribution-web-creating-console.md)和[更新分配](HowToUpdateDistribution.md)。

1. 创建源组，然后选择您的两个源作为主源和辅助源。在源组中，启用**媒体质量得分**选项。有关更多信息，请参阅 [创建源组](high_availability_origin_failover.md#concept_origin_groups.creating)。

1. 在分配的缓存行为中，选择您创建的[源组](DownloadDistValuesCacheBehavior.md#DownloadDistValuesTargetOriginId)。我们建议缓存行为应与频道路径模式相匹配。

如果 CloudFront 确定两个 MediaPackage v2 源的得分相同，该服务会将请求转发到源组中列出的主源。如果最初选择的源回复了错误代码，而该代码与您在源组中指定的失效转移标准相匹配，则 CloudFront 会重试将请求发送到源组中的备用源，无论其媒体质量得分如何。

**备注**  
对于所用源组启用了媒体质量得分的缓存行为，CloudFront 跟踪每个缓存行为的质量得分。如果为多个频道使用相同源组且源组发送媒体质量得分，则为每个频道的路径模式创建单独的缓存行为，以避免混淆其分数。有关源组配额的更多信息，请参阅[分配的一般配额](cloudfront-limits.md#limits-web-distributions)。
目前，当您在面向源的触发器（源请求和源响应）中使用 [Lambda@Edge](lambda-at-the-edge.md) 函数，并且触发器与您分配的缓存行为相关联，则 MQAR 不可用。有关更多信息，请参阅 [缓存行为设置](DownloadDistValuesCacheBehavior.md)。
如果您启用了 MQAR 功能和来源访问控制（OAC），请将 `mediapackagev2:GetHeadObject` 操作添加到 IAM 策略中。MQAR 需要此权限，才能向 MediaPackage v2 源发送 `HEAD` 请求。有关 OAC 的更多信息，请参阅[限制对 AWS Elemental MediaPackage v2 源的访问](private-content-restricting-access-to-mediapackage.md)。

## MQAR 日志字段
<a name="media-quality-score-log-fields"></a>

CloudFront 在实时访问日志中提供以下字段，以反映质量得分和选定的源。您可以在 CloudFront 实时访问日志中启用这些字段：
+ `r-host`
+ `sr-reason`
+ `x-edge-mqcs`

有关更多信息，请参阅[字段](real-time-logs.md#real-time-logs-fields) 65-67。