本页介绍了如何创建可选广告并将其插入直播。 可选广告是指可随时替换主要直播内容的内容(例如,如果您在输入流中遇到技术问题,或者要隐藏输入流中的敏感内容)。
设置您的 Google Cloud 项目和身份验证
如果您尚未创建 Google Cloud 项目和凭据,请参阅 准备工作。将视频上传到 Cloud Storage 存储分区
- 在 Google Cloud 控制台中,前往 Cloud Storage 浏览器页面。
转到“Cloud Storage 浏览器”页面 - 点击存储分区的名称将其打开。
- 点击上传文件。
- 选择要从本地机器上传的视频文件。您可以使用 一个 60 秒的示例视频。
您的视频现已保存到 Cloud Storage 存储分区。
创建资产
素材资源是指可与产品一起使用的视频或图片 Live Stream API。使用资产来创建插入可选广告的频道活动。 您应在计划将资产用于播出信息之前很久就创建该资产,因为 API 需要时间来处理该资产。如果在播出信息事件执行时间过去 2 秒后资源仍未准备就绪,系统会显示黑屏,直到资源准备就绪为止。
要创建素材资源,请使用
projects.locations.assets.create
方法。以下示例会创建视频资产。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中LOCATION
:要创建资源的位置;请使用某个受支持的地区显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
ASSET_ID
:新 要创建的资源。此值必须为 1-63 个字符,以[a-z0-9]
开头和结尾,并且 字符之间可以包含短划线 (-)。例如my-asset
。ASSET_URI
:您的 要使用的 Cloud Storage 存储桶,例如gs://my-bucket/my-video.mp4
(请参阅 支持的媒体格式)
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/assets/ASSET_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API C# API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Go API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Java API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Node.js API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API PHP API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Python API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Ruby API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
创建输入端点
要创建输入端点,请使用
projects.locations.inputs.create
方法。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面LOCATION
:创建输入的位置 endpoint;请使用某个受支持的区域显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
:要创建的新输入端点(您将输入数据流发送到该端点)的用户定义标识符。此值必须为 1-63 个字符,以[a-z0-9]
开头和结尾,字符之间可以包含短划线 (-)。例如my-input
。
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API C# API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Go API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Java API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Node.js API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API PHP API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Python API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Ruby API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
获取输入端点详情
如需获取输入端点的详细信息,请使用 projects.locations.inputs.get
方法。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中LOCATION
:输入端点所在的位置 located;请使用某个受支持的区域显示位置us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
:用户定义的 ID 输入端点
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "type": "RTMP_PUSH", "uri": "INPUT_STREAM_URI", # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b", "tier": "HD" }
C#
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API C# API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Go API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Java API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Node.js API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API PHP API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Python API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Ruby API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
找到 uri
字段并复制返回的
INPUT_STREAM_URI(稍后使用)
在发送输入流部分。
创建频道
如需创建渠道,请使用 projects.locations.channels.create
方法。以下示例会创建一个可实时生成 HLS 内容的频道
。直播视频流包含一个高清 (1280x720) 广告
。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中LOCATION
:要在其中创建 channel;请使用某个受支持的区域显示位置us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
:要创建的渠道的用户定义标识符;此值必须为 1-63 个字符,以[a-z0-9]
开头和结尾,并且字符之间可以包含短划线 (-)INPUT_ID
:用户定义的 ID 输入端点BUCKET_NAME
:Cloud Storage 的名称 您创建的存储桶,用于保存直播清单和片段文件
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API C# API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Go API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Java API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Node.js API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API PHP API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Python API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Ruby API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
启动频道
如需创建频道,请使用
projects.locations.channels.start
方法。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面LOCATION
:频道所在的位置;请使用某个受支持的地区显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
:用户定义的频道标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
C#
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API C# API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Go API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用 Live Stream API 的客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Java API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 有关详情,请参阅 Live Stream API Node.js API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API PHP API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Python API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Live Stream API 客户端库,请参阅 Live Stream API 客户端库。 如需了解详情,请参阅 Live Stream API Ruby API 参考文档。
如需向 Live Stream API 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
发送输入流
如果您使用 ffmpeg
发送测试数据流,请打开一个新的终端窗口。使用获取输入端点详情部分中的 INPUT_STREAM_URI 运行以下命令:
ffmpeg -re -f lavfi -i "testsrc=size=1280x720 [out0]; sine=frequency=500 [out1]" \
-acodec aac -vcodec h264 -f flv INPUT_STREAM_URI
播放直播
如需在 Shaka Player 中播放生成的媒体文件,请完成以下步骤:
- 请将 Cloud Storage 存储分区设为可公开读取。
- 如需在 Cloud Storage 存储分区上启用跨域资源共享 (CORS),请执行以下操作:
- 创建一个包含以下代码的 JSON 文件:
[ { "origin": ["https://shaka-player-demo.appspot.com/"], "responseHeader": ["Content-Type", "Range"], "method": ["GET", "HEAD"], "maxAgeSeconds": 3600 } ]
-
将
JSON_FILE_NAME
替换为您在上一步中创建的 JSON 文件的名称,然后运行以下命令:gcloud storage buckets update gs://BUCKET_NAME --cors-file=JSON_FILE_NAME.json
- 创建一个包含以下代码的 JSON 文件:
- 在 Cloud Storage 存储桶中,找到生成的文件。在该文件的公开访问权限列中,点击复制网址。
- 导航到在线直播播放器 Shaka Player。
- 点击顶部导航栏中的自定义内容。
- 点击 + 按钮。
将文件的公开网址粘贴到清单网址框中。
在名称框中输入一个名称。
点击保存。
点击播放。
您应该会看到作为直播呈现的测试流。
创建频道活动
如需创建频道事件,请使用
projects.locations.channels.events.create
方法。以下示例将片头作为频道活动插入直播中。
如果可选广告资源尚未准备就绪(在事件执行开始 2 秒后), 则系统会显示黑屏,直到可选广告素材资源准备就绪。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面LOCATION
:频道所在的位置;请使用某个受支持的地区显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
:用户定义的渠道标识符EVENT_ID
:事件的用户定义标识符ASSET_ID
:用户定义的播出信息资产标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/events/EVENT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "slate": { "duration": "60s", "asset": "projects/PROJECT_NUMBER/locations/LOCATION/assets/ASSET_ID" }, "executeNow": "true", "state": "PENDING" }
请检查直播,确认是否已插入可选广告。您还可以检查事件是否将 state
设置为 SUCCEEDED
(请参阅获取渠道事件详情)。
如需创建长时间运行的可选广告,请从 slate
中移除 duration
字段
对象。如需移除长时间播放的节目单,请创建返回节目频道事件。