Video Stitcher API 的最佳实践

本页面总结了 Video Stitcher API 的最佳实践。如果您刚刚开始使用 Video Stitcher API,请参阅直播快速入门VOD 资产快速入门

条件 VOD 资产

配置源编码器和转码器,以输出支持广告 DASH 时段和 HLS 片段之间的断点。Video Stitcher API 不会拆分 以便拼接广告插播时间点 时段和片段边界

对于返回 VMAP 响应的广告代码:VMAP 中指定的每个广告插播时间点 应与句点或片段边界相匹配。否则,广告插播点将在最近的边界处拼接。

避免 HLS 的广告插播时间点不一致

对于 VOD 拼接,您应该预先调整源视频清单以便 中贴片广告插播时间点,并配置视频多广告播放列表 (VMAP) 广告代码 以在经过预先调节的偏移位置上返回中贴片广告插播时间点。通过 Video Stitcher API 接受转码后的输出结果,并以 尽可能靠近您指定的位置为中贴片广告插播时间点使用预先调节的输入,以使广告拼接行为保持一致和准确。

例如,下面的视频播放列表就展示了 七秒标记:

#EXTM3U

#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4

#EXTINF:2.0
../video/180_250000/hls/segment_0.ts
#EXTINF:2.0
../video/180_250000/hls/segment_1.ts
#EXTINF:2.0
../video/180_250000/hls/segment_2.ts
#EXTINF:1.0
../video/180_250000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:2.0
../video/180_250000/hls/segment_4.ts

下面的音频播放列表显示了第七个音频播放列表处的广告展示位置机会 第二个标记:

#EXTM3U

#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4

#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_0.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_1.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_2.ts
#EXTINF:1.03
../audio/1_stereo_128000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_4.ts

以下 VMAP 配置指定了在 7 秒时刻插播广告。视频和音频播放列表精确的 七秒标记:

<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">
  <vmap:AdBreak timeOffset="00:00:07.000" breakType="linear" breakId="midroll‑1">
    <vmap:AdSource id="midroll-1‑ad‑1" allowMultipleAds="false" followRedirects="true">
      <vmap:AdTagURI templateType="vast3">
      <![CDATA[
      https://securepubads.g.doubleclick.net/gampad/ads?...
      ]]>
      </vmap:AdTagURI>
    </vmap:AdSource>
  </vmap:AdBreak>
</vmap:VMAP>

为直播和 VOD 资产使用多时段 DASH 清单

配置来源编码器和转码器,以便输出包含多个 而不是单个时间段。与 VOD 条件类似,Video Stitcher API 不会拆分时段来拼接广告插播时段,因此包含多个时段的 DASH 清单将有更多机会在预期时长内拼接广告插播时段。

将字幕封装在 ISOBMFF 中

DASH 清单的字幕应封装在 ISO 基本媒体文件格式 (ISOBMFF) 中(例如 MP4),以便与大多数媒体播放器兼容。

使用恒定比特率

为确保提供稳定的直播播放体验,请配置来源 编码器或转码器在输出视频流清单时采用恒定比特率。 这样一来,Video Stitcher API 就可以更一致地拼接广告,以匹配清单中指定的编码配置文件。

使用支持的广告标记

参阅广告标记文档 了解支持哪些广告标记,以及源编码器或 转码器应输出广告标记,以确保广告插播时间点已拼接 成功。

验证来源播放

为了确保直播和视频点播流的稳定播放体验,请考虑在使用 Video Stitcher API 进行拼接之前,使用广泛提供的客户端播放器来验证源流是否可播放。

HLS:

DASH:

管理 CDN 密钥

如果源媒体受网址签名保护,那么您需要: 向 Video Stitcher API 注册 CDN 密钥。这样一来,API 便可以:

  • 获取源视频清单以进行拼接
  • 对源视频片段进行签名,以便播放器可以提取视频片段进行播放

了解如何管理 CDN 密钥

设置媒体 CDN

如果您想设置媒体 CDN 来分发媒体资产,请按照媒体 CDN 快速入门中的说明操作。

为清单和媒体配置具有适当 TTL 的单独路由 细分。有关详情和示例,请参阅 媒体 CDN 高级路由指南

如果您的任何路线使用不公开的 Cloud Storage 源,请参阅使用不公开的 Cloud Storage 存储桶具体而言,将这些路由的缓存模式设置为 FORCE_CACHE_ALL

有关设置 HTTPS 的说明,请参阅 配置 SSL (TLS) 证书

媒体 CDN 签名的请求

如需在启用已签名请求的情况下使用 Media CDN,请参阅使用已签名请求,然后执行以下操作:

  1. 创建非对称密钥对。 如需了解如何创建与 Video Stitcher API 兼容的私钥,请参阅为媒体 CDN 创建私钥

  2. 注册媒体 CDN 私钥 视频拼接器 API。

长时间直播会话的时长限制

除非 5 分钟内没有任何播放列表请求,否则 LiveSession 资源不会过期。不过,系统会强制所有播放的最长生命周期为 180 天 URI。若要在 180 天后继续播放,您必须创建新的直播会话。为确保可靠性,您应该通过以下链接创建一个新的直播会话: 至少每 30 天更新一次。