排查问题

本页介绍如何解决 Video Stitcher API 的问题。本页显示的错误特定于 Video Stitcher API。如需了解各种 Google API 中的一般性错误,请参阅 Cloud API 错误页面。

仅返回第一个错误。如果请求遇到多个错误,您需要修复返回的错误并重试请求,以查看下一个错误。

创建会话时无法提取播放列表

如果 Video Stitcher API 无法从指定的 sourceUri 提取视频清单,则会出现以下问题。

{
  "error": {
    "code": 404,
    "message": "got status code 403 when fetching playlist from URI \"https://example.com/manifest.m3u8\"",
    "status": "NOT_FOUND",
  }
}

如需解决此问题,请按以下步骤操作:

  1. 验证提供的 sourceUri 是否链接到有效的视频清单。

    • curlsourceUri 搭配使用。如果清单要公开提供,请确保网址可供公开访问。
    • 如果 sourceUri 正确无误且视频清单需要网址签名,请继续执行下一步。
  2. 确保 CDN 密钥已在与请求相同的区域内注册到 Video Stitcher API。

  3. 如果您怀疑用于对网址进行签名的私钥不正确,则可以使用正确的私钥更新已注册的 CDN 密钥

CDN 密钥已过时

如果您最近注册或更新了 CDN 密钥,并且 Video Stitcher API 尚未开始使用新配置对网址进行签名,请按以下步骤诊断问题:

  1. 如果 CDN 密钥是最近通过 Video Stitcher API 注册的,请至少等待 5 分钟,以便更新传播。如果问题仍然存在,请继续执行下一步。

  2. 验证为该区域的一个主机名注册的 CDN 密钥是否只有一个。如果使用相同的主机名注册了多个 CDN 密钥,Video Stitcher API 将选择其中一个 CDN 密钥来对网址进行签名。

在直播期间未插入任何广告

如果直播会话中未插入任何广告,请按照以下步骤诊断问题:

  1. 验证来源直播是否在清单中插入了广告插播时间点。直播视频清单中需要包含以下广告标记,以指示 Video Stitcher API 将来源视频片段替换为广告片段。

    • 如果来源视频清单没有任何广告标记,则说明您的编码器未触发广告插播时间点,或者需要进行更改以插入受支持的广告标记

    • 如果广告标记在来源清单中清晰可见,请继续执行下一步。

  2. 验证所提供的广告代码是否会返回非空的 VAST 响应。

    • 将广告代码复制到网络浏览器(例如 Chrome)的地址栏中,并验证其是否返回不为空的 VAST 响应。以下是空的 VAST 响应:

      <VAST version="3.0"/>
      
    • 如果返回的 VAST 响应为空,则问题出在广告代码上。验证广告代码是否已与广告服务器正确设置。

    • 如果已填充 VAST 响应,请使用 curl 请求广告代码。某些广告服务器要求提供 User-Agent header。请尝试使用以下 curl 命令:

      curl AD_TAG_URI
      
    • 如果 curl 命令返回空的 VAST 响应,请将 User-Agent 标头添加到 curl 命令中:

      curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" \
          AD_TAG_URI
      
    • 如果返回已填充的 VAST 响应,则问题在于创建直播会话时需要将 User-Agent 标头传递给 Video Stitcher API。Video Stitcher API 在执行广告代码以检索广告时会使用该标头。

    • 如果仍返回空响应,则表示给定广告代码存在问题。与客户确认广告代码是否正确,以及所有广告代码宏值是否正确。

    • 如果客户的广告代码问题已得到解决,但广告尚未插入,请继续执行下一步。

  3. 检查实时会话。 如果受影响的会话显示广告是从广告服务器返回的,请继续执行下一步。

  4. 广告缺失的另一个可能原因是广告重新编码。API 会在首次遇到广告时重新编码广告,以便将广告编码为与源视频匹配的广告。通常,广告需要几分钟才能编码。请在几分钟后重试创建新会话,看看是否插入了广告。

    如果未插入任何广告,问题可能是因为广告未能编码。广告媒体网址可能无法访问。在这种情况下,客户需要与广告提供商合作,确定其广告媒体存在的问题。

在 VOD 会话中未插入任何广告

  1. 验证所提供的广告代码是否返回了非空的 VAST 或 VMAP 响应。 请按照以下说明使用提供的广告代码:

    • 将广告代码复制到网络浏览器(例如 Chrome)的地址栏中,并验证其是否返回不为空的 VAST、VMAP 或 SmartXML 响应。以下是空 VAST 响应:
    • 将广告代码放入网络浏览器(例如Chrome、Firefox 等)地址栏中,并验证其是否返回非空的 VAST、VMAP 或 SmartXML 响应。空的 VAST 响应如下所示:

      <VAST version="3.0"/>
      

      以下是空的 VMAP 响应:

      <VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0"/>
      
    • 如果返回的 VAST 响应为空,则问题出在广告代码上。验证广告代码是否已与广告服务器正确设置。

    • 如果已填充 VAST 响应,请使用 curl 请求广告代码。某些广告服务器要求提供 User-Agent header。请尝试使用以下 curl 命令:

      curl AD_TAG_URI
      
    • 如果 curl 命令返回空的 VAST 响应,请将 User-Agent 标头添加到 curl 命令中:

      curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" \
          AD_TAG_URI
      
    • 如果返回已填充的 VAST 或 VMAP 响应,则问题在于创建 VOD 会话时需要将 User-Agent 标头传递给 Video Stitcher API。Video Stitcher API 在执行广告代码以检索广告时会使用该标头。

    • 如果仍返回空响应,则表示给定广告代码存在问题。与客户确认广告代码是否正确,以及所有广告代码宏值是否正确。

    • 如果客户的广告代码问题已得到解决,但广告尚未插入,请继续执行下一步。

  2. 检查 VOD 会话。 如果受影响的会话显示广告是从广告服务器返回的,请继续执行下一步。

  3. 广告缺失的另一个可能原因是广告重新编码。API 会在首次遇到广告时重新编码广告,以便将广告编码为与源视频匹配的广告。通常,广告需要几分钟才能编码。请在几分钟后重试创建新会话,看看是否插入了广告。

    如果未插入任何广告,问题可能是因为广告未能编码。广告媒体网址可能无法访问。在这种情况下,客户需要与广告提供商合作,确定其广告媒体存在的问题。