本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在典型的广告插入工作流程中,对广告进行 MediaTailor 动态转码以匹配内容流,将其保存,然后将广告拼接到直播中。由于此过程仅在 MediaTailor 收到来自广告决策服务器 (ADS) 的 VAST 响应中的广告后才会发生,因此广告可供拼接的时间会有所延迟。如果在广告拼接工作流程中引入额外的延迟(可能是由于广告超时或其他内容或网络问题),则 MediaTailor 可能会部分填补空白,或者完全错过广告时段。
为了缩短将广告拼接到内容中的时间,您可以使用预处理广告。预处理广告是指您在广告插入中使用之前对其进行转码的 MediaTailor 广告。与其在广告中 URLs 提供无条件广告,不 URLs 如为预处理广告提供。在对 MediaTailor 请求的VAST回应中,ADS包含了指向预处理广告的直接链接。通过删除广告拼接中的转码部分, MediaTailor 只需保存广告并将其拼接到内容流中即可。使用预处理广告的广告拼接过程缩短了从通过 VAST 响应得 MediaTailor 知广告到将广告拼接到内容中的时间。
或者,您也可以使用广告预取,即您配置为在 MediaTailor 需要广告插播之前的预定时间执行广告拼接流程。有关广告预取的更多信息,请参阅。预取广告
预处理广告要求
以下是使用预处理广告设置广告拼接工作流程时需要考虑的要求。
MediaFiles
要求
广告服务器发送到的 VAST 响应 MediaTailor 必须包含MediaFiles
满足以下要求的响应:
广告 (Creative
) 必须具有符合内容流比特率变体的变体。 您有责任确保 VAST 响应使用正确的广告变体来匹配模板清单。
虽然使用预处理广告可以帮助提高广告插入的效率,但 MediaTailor 无法管理转码过程来确保广告的媒体文件与内容清单规范兼容。如果广告与内容流不匹配,则 MediaTailor 可能会错过插入,或者不匹配可能会导致播放设备出错。
此外,要在不进行 MediaTailor 转码的情况下拼接到内容流中,MediaFile
必须满足以下要求:
-
它必须可以在公共互联网上访问,这样 MediaTailor 才能下载它。
它必须使用流式传输,如VAST响应
delivery="streaming"
中所示。它必须是
.m3u8
(对于 HLS)或.mpd
(对于 DASH)文件。
例 反应迅速
在以下 VAST 响应示例中, MediaTailor 插入MediaFile
带有以下内容的 URLs:
-
对于 HLS 直播, MediaTailor 使用
https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8
。这是第一款MediaFile
采用流媒体传输和支持的文件扩展名的 (.m3u8
)。 -
对于 DASH 直播, MediaTailor 使用
https://example-ad-origin.amazonaws.com/ad1/index.mpd
。这是第一款MediaFile
采用流媒体传输和支持的文件扩展名的 (.mpd
)。
<?xml version="1.0" encoding="UTF-8"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0"> <Ad id="ad1"> <InLine> <AdSystem>ExampleAdSystem</AdSystem> <AdTitle>ad1</AdTitle> <Impression><![CDATA[https://example-impression.amazonaws.com]]></Impression> <AdServingId>de8e0d33-9c72-4d77-bb3a-f7e566ffc605</AdServingId> <Creatives> <Creative id="creativeId1" sequence="1"> <Linear skipoffset="00:00:05"> <Duration>00:00:30</Duration> <MediaFiles> <MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/ad1.mp4]]></MediaFile> <MediaFile delivery="streaming" width="1280" height="720" type="application/dash+xml" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index.mpd]]></MediaFile> <MediaFile delivery="streaming" width="640" height="360" type="application/x-mpegURL" bitrate="262" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8]]></MediaFile> <MediaFile delivery="streaming" width="2560" height="1440" type="application/x-mpegURL" bitrate="1066" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_high.m3u8]]></MediaFile> </MediaFiles> </Linear> </Creative> </Creatives> </InLine> </Ad> </VAST>
广告清单要求
要使用预处理广告,您的父广告和子广告清单必须满足以下要求:
-
在 VAST 响应
Creative
部分中链接的清单必须是父广告清单。 -
URLs 面向子女的广告清单必须是相对路径。
-
子广告清单必须与父清单位于同一目录中,且级别相同。子清单不能位于子目录或其他位置。
例 支持的父清单
以下父广告清单包含子广告清单 URLs 的相关内容。子清单也与父清单位于同一个目录中。
#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" index_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" index_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2" index_3.m3u8
例 不支持的父清单:子目录
以下父广告清单包含子清单,这些子清单位于相对于父清单的子目录中。预处理广告不支持此清单。
#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" child/index_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" child/index_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2" child/index_3.m3u8
例 不支持的父清单:绝对 URLs
以下父广告清单包含绝对值 URLs的子清单。预处理广告不支持此清单。
#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" https://example.mediatailor.us-west-2.amazonaws.com/index_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" https://example.mediatailor.us-west-2.amazonaws.com/index_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2" https://example.mediatailor.us-west-2.amazonaws.com/index_3.m3u8
预处理广告工作流程
以下是对预处理广告在广告拼接工作流程中的运作方式的基本描述。 MediaTailor工作流程的第一部分是为使用预处理广告进行设置所必须采取的操作。第二部分描述了如何 MediaTailor 处理广告。
第 1 部分:预处理广告的设置
完成以下步骤,设置在中 MediaTailor使用预处理广告的工作流程。
-
使用转码器服务(例如)将您的广告素材调整为支持模板清单中不同比特率、分辨率和编解码器的变体。 AWS Elemental MediaConvert
-
将预先转码 URLs 的媒体文件提供给 ADS,以便在 VAST 响应中使用。
-
在中@@ 创建您的播放配置 MediaTailor。要使用预处理广告,请在配置中的流媒体文件调节设置中选择 “无”。
-
像往常一样继续设置内容分发。
第 2 部分: MediaTailor 广告处理
MediaTailor 广告拼接按中所 MediaTailor 广告插入的工作原理述完成。当 MediaTailor 收到来自 ADS 的 VAST 回复时,它会使用以下逻辑来确定要对广告采取哪些行动。此逻辑由播放配置上的流媒体文件调节设置决定。
-
当 “流媒体文件调节” 设置为 “转码” 时,在
progressive
交付时对媒体文件进行 MediaTailor 转码,然后将其拼接到清单中。如果没有足够的带有progressive
投放媒体文件的广告来填补空缺,请对这些广告进行 MediaTailor 转码并使用带有streaming
投放效果的广告。 -
当流媒体文件调节设置为 “无” 时,将包含
streaming
投放媒体文件的广告 MediaTailor 拼接到清单中,而无需对其进行转码。如果没有足够的带有streaming
投放媒体文件的广告来填补空缺,请对这些广告进行 MediaTailor 转码并使用带有progressive
投放效果的广告。