本页介绍了如何创建和管理 Live Stream API 数字视频录制器 (DVR) 会话。DVR 会话是频道的子资源。您可以使用 DVR 会话录制未来的直播。如需了解详情,请参阅单独的指南创建 DVR 会话。
设置 Google Cloud 项目和身份验证
如果您尚未创建 Google Cloud 项目和凭据,请参阅开始前须知。前提条件
您必须先创建以下资源,然后才能创建 DVR 会话:
创建 DVR 会话
如需创建 DVR 会话,请使用 projects.locations.channels.dvrSessions.create 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:频道所在的位置;请使用某个受支持的地区显示位置us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:用户定义的渠道标识符DVR_SESSION_ID:DVR 会话的用户定义标识符INTERVAL_START_TIME:原始直播流清单中的标记时间(与 Unix 计时原点之间相隔的时间);使用 RFC3339 UTC“Zulu”格式的时间戳(例如2014-10-02T15:01:23Z)INTERVAL_END_TIME:原始直播流清单中的标记时间戳(Unix 纪年时间戳);使用 RFC3339 UTC“Zulu”格式的时间戳(例如2014-10-02T15:01:23Z)
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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/dvrSessions/DVR_SESSION_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
此命令会创建一个长时间运行的操作 (LRO),您可以使用该操作来跟踪请求的进度。如需了解详情,请参阅管理长时间运行的操作 。
获取 DVR 会话详情
如需获取 DVR 会话的详细信息,请使用 projects.locations.channels.dvrSessions.get 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:频道所在的位置;请使用某个受支持的地区显示位置us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:用户定义的渠道标识符DVR_SESSION_ID:DVR 会话的用户定义标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
"createTime": CREATE_TIME,
"startTime": START_TIME,
"updateTime": UPDATE_TIME,
"state": "SUCCEEDED",
"dvrManifests": [
{
"manifestKey": "manifest_hls",
"outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8"
}
],
"dvrWindows": [
{
"timeInterval": {
"startTime": "INTERVAL_START_TIME",
"endTime": "INTERVAL_END_TIME"
}
}
]
}
当第一个片段根据父级频道的 retentionConfig 过期时,DVR 会话和生成的清单会被移除。如果您希望会话持续时间超出所配置的保留期,请改为创建渠道剪辑。
更新 DVR 会话
如需更新 DVR 会话,请使用 projects.locations.channels.dvrSessions.patch 方法。
以下示例会更新 DVR 会话使用的 DVR 时间范围。并非所有字段都可以更新;请参阅支持的字段列表。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:频道所在的位置;请使用某个受支持的地区显示位置us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:用户定义的渠道标识符DVR_SESSION_ID:DVR 会话的用户定义标识符INTERVAL_START_TIME:原始直播流清单中的标记时间(与 Unix 计时原点之间相隔的时间);使用 RFC3339 UTC“Zulu”格式的时间戳(例如2014-10-02T15:01:23Z)INTERVAL_END_TIME:原始直播流清单中的标记时间戳(Unix 纪年时间戳);使用 RFC3339 UTC“Zulu”格式的时间戳(例如2014-10-02T15:01:23Z)
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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/dvrSessions/DVR_SESSION_ID",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
此命令会创建一个长时间运行的操作 (LRO),您可以使用该操作来跟踪请求的进度。如需了解详情,请参阅管理长时间运行的操作 。
如果 DVR 会话状态为 LIVE,并且更新可能会覆盖当前的 DVR 清单,则系统会拒绝更新请求。唯一的例外情况是,更新会缩短 DVR 会话(例如,将结束时间更改为现在或过去的某个时间);在这种情况下,DVR 会话会立即停止,并进入 COOLDOWN 状态。60 秒冷却期过后,DVR 清单会被覆盖,以反映更新后的开始时间和结束时间。
列出 DVR 会话
如需列出您为某个频道创建的所有 DVR 会话,请使用 projects.locations.channels.dvrSessions.list 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:频道所在的位置;请使用某个受支持的地区显示位置us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:用户定义的渠道标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{
"dvrSessions": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
"createTime": CREATE_TIME,
"startTime": START_TIME,
"updateTime": UPDATE_TIME,
"state": "SCHEDULED",
"dvrManifests":[
{
"manifestKey": "manifest_hls",
"outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8"
}
],
"dvrWindows":[
{
"timeInterval": {
"startTime": "INTERVAL_START_TIME",
"endTime": "INTERVAL_END_TIME"
}
}
]
},
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/my-other-DVR-session",
"createTime": CREATE_TIME,
"startTime": START_TIME,
"updateTime": UPDATE_TIME,
"state": "SCHEDULED",
"dvrManifests":[
{
"manifestKey": "manifest_hls2",
"outputUri": "gs://BUCKET_NAME/dvr/my-other-DVR-session/main.m3u8"
}
],
"dvrWindows":[
{
"timeInterval": {
"startTime": "INTERVAL_START_TIME",
"endTime": "INTERVAL_END_TIME"
}
}
]
},
]
}
删除 DVR 会话
如需删除 DVR 会话,请使用 projects.locations.channels.dvrSessions.delete 方法。此方法会删除 DVR 会话任务和生成的清单。系统会根据保留配置删除在 Cloud Storage 存储分区中创建的资源。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:频道所在的位置;请使用某个受支持的地区显示位置us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:用户定义的渠道标识符DVR_SESSION_ID:DVR 会话的用户定义标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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/dvrSessions/DVR_SESSION_ID",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
此命令会创建一个长时间运行的操作 (LRO),您可以使用该操作来跟踪请求的进度。如需了解详情,请参阅管理长时间运行的操作 。