本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除 MediaPackage、CDN 和集成 MediaTailor
AWS Elemental MediaTailor AWS Elemental MediaPackage 与内容分发网络 (CDN) 的集成可能会遇到影响播放、缓存或其他集成功能的常见问题。遇到播放问题、缓存问题或其他与集成相关的错误时,请使用本指南。
有关全面的 CDN 故障排除指南,包括适用于所有 MediaTailor 实现的通用缓存性能问题、HTTP 错误解决方案、测试程序和诊断技术,请参阅对 CDN 集成进行故障排除。本节重点介绍 MediaPackage 特定的故障排除要求。
在进行故障排除之前,请确保您已正确完成基本的集成设置。如果您尚未设置集成或需要查看设置步骤,请参阅 MediaTailor 与 CDN MediaPackage 集成 。有关在解决问题后优化缓存性能的指导,请参阅CDN 缓存。
清单筛选错误
根据记录的错误情况, MediaPackage 清单筛选功能存在问题:
- 清单筛选时出现 HTTP 400 错误
-
症状:带
aws.manifestfilter
参数的请求返回 HTTP 400 错误请求经过验证的原因(来自 AWS 文档):
-
筛选条件导致清单为空(没有符合过滤条件的直播流)
-
过滤器参数名称或值无效
-
格式错误的查询字符串语法
-
重复或重复的过滤器参数
-
筛选参数字符串超过 1024 个字符
-
应用于媒体播放列表或片段的查询参数(不支持)
解决方案
-
查看您的过滤器参数,确保它们与可用的内容流相匹配。如果筛选结果没有匹配流,则 MediaPackage返回 HTTP 400。
-
根据支持的参数名称和值格式验证过滤器语法。
-
检查查询字符串中是否有重复的参数。
-
确保过滤器参数仅适用于多变体播放列表,而不适用于媒体播放列表或片段。
-
验证您的参数字符串总数是否低于 1024 个字符。
-
- 清单筛选不起作用(HTTP 200 但未应用筛选)
-
症状:请求返回 HTTP 200 但清单包含所有流,而不是过滤后的子集
可能的原因:
-
CDN 未将
aws.manifestfilter
查询参数转发到 MediaPackage -
在可用流中找不到过滤器参数(返回未经过滤的带有 HTTP 200 的清单)
解决方案
-
验证您的 CDN 缓存策略是否包含
aws.manifestfilter
在转发的查询字符串列表中。 -
直接针对 MediaPackage 端点测试过滤器参数(绕过 CDN),以验证它们是否按预期工作。
-
检查过滤器值是否与内容流的实际特征相匹配。
-
诊断程序
系统的诊断程序可帮助您快速、高效地确定集成问题的根本原因。遵循结构化方法可以防止将时间浪费在错误的假设上,并确保您解决的是实际问题而不是症状。这些基于证据的诊断步骤旨在隔离问题并指导您找到适当的解决方案。
按照以下循证诊断步骤识别问题:
分析缓存性能
缓存性能分析对于 EMP 集成至关重要,因为较差的缓存效率会导致源负载增加、成本上涨和潜在的播放问题。
有关全面的缓存性能故障排除,包括缓存命中率分析、缓存密钥优化和系统诊断步骤,请参阅 CDN 主故障排除指南CDN 缓存性能问题中的。
EMP 特定的缓存注意事项:
-
EMP 缓存控制标头:验证你的 CDN 是否支持 EMP 的缓存控制标头,而不是覆盖它们
-
EMP 查询参数:确保缓存密钥中仅包含必要的 EMP 查询参数
-
EMP TTL 行为:确认不同的 EMP 内容类型具有适当的缓存持续时间
有关优化 EMP 缓存策略和 TTL 设置的详细指南,请参阅。优化 CDN 缓存 MediaTailor 和 MediaPackage 内容交付
验证清单筛选配置
清单筛选验证至关重要,因为筛选问题可能会导致查看者收到不正确的内容、不支持的格式或他们不应该访问的内容。系统测试有助于确定问题是否与 CDN 配置、过滤器参数语法或内容可用性有关。
系统地测试清单筛选功能:
-
直接针对 MediaPackage 端点测试过滤器参数(绕过 CDN),以验证它们是否正常工作。
-
比较已筛选和未经过滤的清单,以确认包含/排除预期的直播流。
-
验证您的 CDN 缓存策略是否转发了
aws.manifestfilter
查询参数。 -
检查 HTTP 400 错误,并将其与记录的错误条件进行匹配。
如果您在解决问题后需要实现或修改清单筛选,请参阅使用 MediaTailor、 MediaPackage和 CDN 设置清单筛选以获取完整的设置指南。
验证查询参数配置
确保您的 CDN 仅转发所需的查询参数:
-
查看您的 CDN 缓存策略以确认其仅包含 AWS 推荐的参数:
-
aws.manifestfilter
-用于清单筛选 -
aws.manifestsettings
-用于时移观看 -
_HLS_msn
还有_HLS_part
-用于 LL-HLS 支持
-
-
从缓存密钥中移除任何其他查询参数,因为 MediaPackage 忽略它们会降低缓存效率。
参考:使用 AWS Elemental MediaPackage 和 CDNs
错误代码参考
有关记录在案的错误情况及其原因的参考资料:
- HTTP 400 错误请求(清单筛选)
-
记录在案的原因:
-
应用过滤器会导致清单为空
-
参数名称或值无效
-
格式错误的查询字符串语法
-
重复的过滤器参数
-
参数字符串超过 1024 个字符
-
查询媒体播放列表或片段的参数
-
- HTTP 200 OK(未应用任何筛选)
-
记录在案的原因:
-
在可用直播中找不到过滤器参数(返回未经过滤的清单)
-
筛选后仅显示字幕流(返回未经过滤的清单)
-
其他故障排除资源
对于本主题中未涉及的问题,请查阅以下官方 AWS 资源:
-
从中预览清单 AWS Elemental MediaPackage-使用清单预览来解决内容打包问题
-
提高 CloudFront 缓存命中率-CDN 缓存优化综合指南
-
清单筛选- MediaPackage 筛选功能完整指南