本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
MediaTailor 广告插入入门
要使用 AWS Elemental MediaTailor,您需要 AWS 账户 和权限才能访问、查看和编辑 MediaTailor 配置。有关如何执行此操作的信息,请参阅 设置 AWS Elemental MediaTailor。
此入门教程演示如何执行以下任务:
-
准备好您的 HLS 或 DASH 内容流
-
配置广告决策服务器 (ADS) 模板网址
-
创建包含播放端点的 MediaTailor 配置
-
使用您的播放器或内容分发网络 (CDN) 向发送播放请求 MediaTailor
有关使用动态变量和玩家参数的高级 ADS 网址配置,请参阅MediaTailor ADS 请求的动态广告变量。有关通过 CDN 传递参数的信息,请参阅MediaTailor 清单查询参数。
完成后,您可以向发送播放请求,以 MediaTailor 获取直播中的个性化广告内容。
主题
先决条件
开始之前,请确保您已完成 设置 AWS Elemental MediaTailor 中的步骤。
第 1 步:访问 AWS Elemental MediaTailor
使用您的 IAM 证书登录 MediaTailor 控制台,网址为https://console.aws.amazon.com/mediatailor/home。
第 2 步:准备直播
配置您的源服务器,以便为 HLS 或 DASH 生成与 AWS Elemental MediaTailor兼容的清单。您的源服务器必须使用标准 HTTP 端口(端口 80)或 HTTPS 端口(端口 443)。 MediaTailor 不支持用于源服务器通信的自定义端口。
准备 HLS 直播
HLS 清单必须满足以下要求:
-
清单必须可在公共 Internet 上访问。
-
清单必须是直播或视频点播 (VOD)。
-
清单必须具有
EXT-X-VERSION3或更高版本。 -
对于直播内容,清单必须包含描述广告效用的标记。这对于 VOD 内容是可选的,VOD 内容可以改用 VMAP 时间偏移。
清单文件必须包含标有以下内容之一的广告位:
-
#EXT-X-CUE-OUT /# EXT-X-CUE-IN(更常见),持续时间如以下示例所示。
#EXT-X-CUE-OUT:60.00 #EXT-X-CUE-IN -
# EXT-X-DATERANGE(不太常见),其持续时间如以下示例所示。
#EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF #EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF为
#EXT-X-DATERANGE显示的所有字段都是必需的。
在清单中配置广告标记的方式将决定广告是插入到流中还是替换流中的其他片段。有关更多信息,请参阅 了解 AWS Elemental MediaTailor 广告插入行为。
-
-
HLS 多变量播放列表必须遵循 HTTP 直播中记录的 HLS 规范:主播放列表标签。
具体而言, #EXT-X-STREAM-INF必须包含字段RESOLUTION、BANDWIDTH和CODEC。
配置直播后,记下多变量播放列表的内容来源 URL 前缀。在本教程的后面,您需要使用它在 AWS Elemental MediaTailor中创建配置。
准备 DASH 直播
DASH 清单必须满足以下要求:
-
清单必须可在公共 Internet 上访问。
-
清单必须是直播或视频点播 (VOD)。
-
清单必须使用拼接插入标记或时间信号标记将事件标记为广告效用。您可以使用清除 XML 或 base64 编码的二进制提供广告标记。对于拼接插入,必须启用网络外指示符。对于时间信号标记,位于分段 UPID 内的分段类型 ID 必须是可识别的提示值。 AWS Elemental MediaTailor广告效用随相关事件的开始而开始,持续时间与事件持续时间(如果已指定)相同,或者持续到下一个事件开始。
以下示例显示使用拼接插入标记指定为广告效用的事件。此广告效用的持续时间与事件的持续时间相同。
<Period start="PT444806.040S" id="123586" duration="PT15.000S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="1350000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095"> <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="1350000"/> </scte35:SpliceInsert> </scte35:SpliceInfoSection> </Event> </EventStream> <AdaptationSet mimeType="video/mp4" ... </AdaptationSet> </Period>
-
广告效用必须具有与内容流相同的
AdaptationSet和Representation设置。 AWS Elemental MediaTailor 使用这些设置来转码广告以匹配内容流,从而实现两者之间的流畅拼接。
配置流后,请记下 DASH 清单的内容源 URL 前缀。在本教程的后面部分中 AWS Elemental MediaTailor,您需要它来创建配置。
第 3 步:配置 ADS 请求 URL 和查询参数
要确定 ADS 需要的查询参数,请从 ADS 生成一个广告标签 URL。此 URL 充当对 ADS 请求的模板,并包含以下内容:
-
静态值
-
由 AWS Elemental MediaTailor (由
session或avail查询参数表示)生成的值 -
播放器生成的值,从客户端应用程序获取(由
player_params.查询参数指示)
例来自 ADS 的广告标签 URL
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]其中:
-
output 和 content_id 是静态值
-
PlayerSession= [session.id] 是由提供的动态值。 AWS Elemental MediaTailor[session.id] 的值将随每个播放器会话更改,并为针对每个会话的 VAST 请求生成不同的 URL。
-
cust_params 是播放器提供的动态值
来自玩家的多变量播放列表请求必须提供与 ADS 请求 URL 中的player_params.查询参数相对应的键值对。有关在向的请求中配置键值对的更多信息 AWS Elemental MediaTailor,请参阅。MediaTailor ADS 请求的动态广告变量
在中创建源 server/ADS 映射时,输入配置的 “模板” URL 第 4 步:创建配置。 MediaTailor
测试
您可以使用来自 ADS 的静态 VAST 响应进行测试。理想情况下,VAST 响应会返回 AWS Elemental MediaTailor 可以转码的夹层品质的 MP4 呈现。如果来自 ADS 的响应包含多个播放格式副本,则 MediaTailor 选择最高质量和分辨率的 MP4 格式副本并将其发送到转码器。
第 4 步:创建配置
该 AWS Elemental MediaTailor 配置包含源服务器和 ADS 的映射信息。
创建配置(控制台)
在处打开 MediaTailor 控制台https://console.aws.amazon.com/mediatailor/
。 -
在 Configurations (配置) 页面上,选择 Create configuration (创建配置)。
-
在页面底部的 Configuration (配置) 部分,在 Configuration name (配置名称) 中,输入用于描述配置的唯一名称。此名称是配置的主要标识符。允许的最大长度为 512 个字符。
-
对于视频内容来源,输入该直播的 HLS 多变量播放列表或 DASH 清单的网址前缀,减去资产 ID。例如,如果多变播放列表 URL 为
http://origin-server.com/a/master.m3u8,则应输入http://origin-server.com/a/。或者,您也可以输入一个较短的前缀(如http://origin-server.com),但您随后必须在针对内容的播放器请求的资产 ID 中包含/a/。最大长度为 512 个字符。注意
如果您的内容源使用 HTTPS,则其证书必须来自知名的证书颁发机构。(它不能是自签名证书。) 否则,将 AWS Elemental MediaTailor 无法连接到内容来源,也无法提供清单以响应玩家的请求。
-
对于广告决策服务器,输入您的广告的网址。这是包含变量的 URL(如第 3 步:配置 ADS 请求 URL 和查询参数中所述),或用于测试用途的静态 VAST URL。最大长度为 25000 个字符。
注意
如果您的 ADS 使用 HTTPS,则其证书必须来自知名的证书颁发机构。(它不能是自签名证书。) 这同样适用于 ADS 返回的夹层广告 URL。否则, MediaTailor 无法检索广告并将其拼接到来自内容源的清单中。
-
(根据 DASH 需要可选)如果您设置了 CDN 路由规则来访问 MediaTailor 清单,并且您正在使用客户端举报或者您的玩家支持粘性 HTTP 重定向,请在 “位置” 中选择 “禁用”。
有关 Location (位置) 功能的更多信息,请参阅 DASH 定位功能。
-
(可选)如果您的源服务器生成单周期 DASH 清单,请选择 DASH mpd manifest origin type (DASH mpd 清单原始类型),然后选择 SINGLE_PERIOD。默认情况下,将 DASH 清单作为多周期清单 MediaTailor 处理。有关更多信息,请参阅 整合 MPEG-DASH 来源。
-
选择创建配置。
AWS Elemental MediaTailor 在 “配置” 页面上显示新配置。
第 5 步:测试配置
保存配置后,使用适合您的流式处理协议的格式的 URL 测试流:
-
示例:HLS
playback-endpoint/v1/master/hashed-account-id/origin-id/master.m3u8 -
示例:DASH
playback-endpoint/v1/dash/hashed-account-id/origin-id/manifest.mpd
其中:
-
playback-endpoint是 AWS Elemental MediaTailor 在创建配置后生成的唯一播放终端节点。示例
https://777788889999.mediatailor.us-east-1.amazonaws.com -
hashed-account-id是你的 AWS 账户 身份证。示例
777788889999 -
origin-id是您在创建配置时提供的名称。示例
myOrigin -
master.m3u8或manifest.mpd是来自测试流的清单的名称加上其文件扩展名。定义此项,从而在将它附加到您在第 4 步:创建配置中配置的视频内容源时获得完全标识的清单。
通过使用前面示例中的值,完整的 URL 如下所示。
-
示例:HLS
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8 -
示例:DASH
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd
您可以使用以下方法之一测试流。
-
按以上示例中所示,在独立的播放器输入 URL。
-
在您自己的播放器环境中测试流。
第 6 步:将播放请求发送至 AWS Elemental MediaTailor
配置下游播放器或 CDN 以将播放请求发送到从 AWS Elemental MediaTailor提供的配置的播放终端节点。您在第 3 步:配置 ADS 请求 URL 和查询参数中的 ADS 请求 URL 中使用的任何播放器定义的动态变量必须在来自播放器的清单请求中定义。
例
假如您的模板 ADS URL 如下。
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]然后[player_params.cust_params]在玩家请求中通过在键值对开头进行定义。ads. AWS Elemental MediaTailor 将前面没有的参数传递ads.给源服务器而不是 ADS。
播放器请求 URL 是以下 HLS 和 DASH 示例的某个变体。
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8?ads.cust_params=viewerinfohttps://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd?ads.cust_params=viewerinfo当 AWS Elemental MediaTailor 收到玩家请求时,它会根据请求中的信息定义玩家变量。生成的 ADS 请求 URL 是以下内容的某个变体。
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=<filled_in_session_id>&cust_params=viewerinfo有关配置要传递到 ADS 的键-值对的更多信息,请参阅 MediaTailor ADS 请求的动态广告变量。
步骤 7(可选):监控 AWS Elemental MediaTailor 活动
使用亚马逊 CloudWatch 和亚马逊 CloudWatch 日志来跟踪 AWS Elemental MediaTailor 活动,例如请求数、错误数和已填充的广告数量。
如果这是您首次 CloudWatch 使用 with AWS Elemental MediaTailor,请创建 AWS Identity and Access Management (IAM) 角色以允许服务之间的通信。
允许 AWS Elemental MediaTailor 访问 CloudWatch (控制台)
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在 IAM 控制台的导航窗格中,选择角色,然后选择创建角色。
-
选择其他 AWS 账户角色类型。
-
在 “账户 ID” 中,输入您的 AWS 账户 ID。
-
选择 Require external ID (需要外部 ID) 并输入
midas。此选项会在信任策略中自动添加一个条件,即仅当请求包含正确的sts:ExternalID时,该服务才代入该角色。 -
选择下一步: 权限。
-
添加指定此角色可完成的操作的权限策略。从以下选项中选择一项,然后选择 Next: Review (下一步: 审核):
-
CloudWatchLogsFullAccess提供对亚马逊 CloudWatch 日志的完全访问权限
-
CloudWatchFullAccess提供对亚马逊的完全访问权限 CloudWatch
-
-
对于角色名称,输入
MediaTailorLogger,然后选择创建角色。 -
在 Roles (角色) 页上,选择您刚刚创建的角色。
-
编辑信任关系以更新委托人:
-
在角色的 Summary (摘要) 页上,选择 Trust relationship (信任关系) 选项卡。
-
选择编辑信任关系。
-
在策略文档中,将委托人更改为 AWS Elemental MediaTailor 服务。它应如下所示。
"Principal": { "Service": "mediatailor.amazonaws.com" },整个策略的内容现在应如下所示。
-
选择更新信任策略。
-
步骤 8:清除
为避免产生多余的费用,请删除所有不必要的配置。
删除配置(控制台)
-
在 AWS Elemental MediaTailor 配置页面上,执行以下操作之一:
-
为要删除的配置选择 Configuration name (配置名称)。
-
在 Configuration name (配置名称) 列中,选择单选按钮,然后选择 Delete (删除)。
-
-
在 Delete configuration (删除配置) 确认框中,输入
Delete,然后再次选择 Delete (删除)。AWS Elemental MediaTailor 移除配置。