准备工作

本页面介绍如何设置 Google Cloud 项目并配置服务帐号以访问该项目。

设置 Google Cloud 项目

按照以下步骤设置一个 Google Cloud 项目。

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Video Stitcher and Live Stream API。

    启用 API

  5. 创建服务帐号:

    1. 在 Google Cloud 控制台中,转到创建服务帐号页面。

      转到“创建服务帐号”
    2. 选择您的项目。
    3. 服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。

      服务帐号说明字段中,输入说明。例如,Service account for quickstart

    4. 点击创建并继续
    5. 向服务帐号授予以下角色: Video Stitcher Admin, Live Stream Editor, Storage Admin.

      如需授予角色,请找到选择角色列表,然后选择相应角色。

      如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。

    6. 点击继续
    7. 点击完成以完成服务帐号的创建过程。

      不要关闭浏览器窗口。您将在下一步骤中用到它。

  6. 创建服务帐号密钥:

    1. 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
    2. 点击密钥
    3. 点击添加密钥,然后点击创建新密钥
    4. 点击创建。JSON 密钥文件将下载到您的计算机上。
    5. 点击关闭
  7. 将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含凭据的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。

  8. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  9. 确保您的 Google Cloud 项目已启用结算功能

  10. 启用 Video Stitcher and Live Stream API。

    启用 API

  11. 创建服务帐号:

    1. 在 Google Cloud 控制台中,转到创建服务帐号页面。

      转到“创建服务帐号”
    2. 选择您的项目。
    3. 服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。

      服务帐号说明字段中,输入说明。例如,Service account for quickstart

    4. 点击创建并继续
    5. 向服务帐号授予以下角色: Video Stitcher Admin, Live Stream Editor, Storage Admin.

      如需授予角色,请找到选择角色列表,然后选择相应角色。

      如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。

    6. 点击继续
    7. 点击完成以完成服务帐号的创建过程。

      不要关闭浏览器窗口。您将在下一步骤中用到它。

  12. 创建服务帐号密钥:

    1. 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
    2. 点击密钥
    3. 点击添加密钥,然后点击创建新密钥
    4. 点击创建。JSON 密钥文件将下载到您的计算机上。
    5. 点击关闭
  13. 将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为包含凭据的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。

  14. 安装 Google Cloud CLI。
  15. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  16. 使用 gcloud 工具测试您的身份验证环境。检查以下命令是否输出了没有错误的文本字符串:
    gcloud auth application-default print-access-token

激活服务帐号

  1. 在您的终端中,为 gcloud 命令设置活跃项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
    
  2. 激活服务帐号。将 PATH_TO_YOUR_SERVICE_KEY 替换为您下载到本地机器的 JSON 文件的路径。
    gcloud auth activate-service-account --key-file PATH_TO_YOUR_SERVICE_KEY
    

您将使用此服务帐号授予访问权限并调用 Video Stitcher API。

创建服务帐号后,您必须将该服务帐号关联到您的 Ad Manager 帐号。这样一来,Video Stitcher API 便可代表您创建直播活动。为此,请按照相应步骤授予对您的服务帐号的访问权限

  1. 登录 Google Ad Manager (GAM)。
  2. 依次点击管理 > 全局设置
  3. 确保已启用 API 访问权限
  4. 点击添加服务帐号用户
  5. 填写表单,包括之前创建的服务帐号的电子邮件地址。
  6. 选择一个角色,该角色必须包含通过 Google Cloud Video Stitcher 管理具有动态广告插入内容的视频内容权限。您应该创建一个名为直播管理员自定义角色,专门用于管理此服务账号。该自定义角色应至少具有以下权限:
    • 通过 Google Cloud 视频拼接器的动态广告插播管理视频内容
    • 查看广告素材(需要前述权限)
    • 查看视频内容、集合和元数据
    • 查看内容来源
  7. 点击保存并确认添加此服务帐号。

创建仅拥有创建会话权限的服务帐号

由于 OAuth 令牌将传递到客户端应用,因此请创建一个仅具有创建会话权限的单独的服务帐号;因此,已泄露的 OAuth 令牌无法破坏您的资源,例如 CDN 密钥和直播活动。

创建服务帐号:

  1. 在 Google Cloud 控制台中,转到创建服务帐号页面。

    转到“创建服务帐号”
  2. 选择您的项目。
  3. 服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。

    服务帐号说明字段中,输入说明。例如,Service account for quickstart

  4. 点击创建并继续
  5. 向服务帐号授予以下角色: Video Stitcher User.

    如需授予角色,请找到选择角色列表,然后选择相应角色。

    如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。

  6. 点击继续
  7. 点击完成以完成服务帐号的创建过程。

    不要关闭浏览器窗口。您将在下一步骤中用到它。

创建服务帐号密钥:

  1. 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
  2. 点击密钥
  3. 点击添加密钥,然后点击创建新密钥
  4. 点击创建。JSON 密钥文件将下载到您的计算机上。
  5. 点击关闭

创建直播

您可以使用其中一个 Live Stream API 快速入门来设置直播。HLS 和 MPEG-DASH 直播均受支持(请参阅源清单要求)。此过程是可选的;您可以使用自己的现有直播。

Live Stream API 快速入门使用应用默认凭据进行身份验证,但您可以使用已设置的服务帐号。对于此选项,请确保服务帐号具有 Live Stream Editor 角色。

确保使直播活动保持活跃状态;在完成直播之前,请勿按照清理部分中的步骤操作。

源代码清单要求

Video Stitcher API 通过解析源清单向 Ad Manager 注册配置。源清单必须具有特定特性,具体取决于格式。

HLS

  • 容器格式可以是以下任一种:
    • 多路复用 MPEG-TS
    • 无路复用 MPEG-TS
    • 无路复用 FMP4
  • 清单中至少包含一种呈现方式,其中包含以下(正确填充)字段:
    • 编解码器
    • bandwidth

MPEG-DASH

  • MPD@type”已设为动态 (@type="dynamic")
  • MPD@profiles 包含 ISO 直播配置文件 urn:mpeg:dash:profile:isoff-live:2011
  • 一个或多个周期,每个周期包含一个或多个自适应集
  • 每个自适应集包含一个或多个表示法
  • 表示法包含或继承具有 $Number$$Time$ 标识符的 SegmentTemplate
  • 对于所有自适应集,@segmentAlignment 设置为 true
  • 表示法不得为空