本頁說明如何建立及管理 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:管道的使用者定義 IDDVR_SESSION_ID:DVR 工作階段的使用者定義 IDINTERVAL_START_TIME:原始直播資訊清單中的 Unix Epoch 紀元時間;使用 RFC3339 世界標準時間「Zulu」格式的時間戳記 (例如2014-10-02T15:01:23Z)INTERVAL_END_TIME:原始直播資訊清單中的 Mark-out Unix Epoch 時間;使用 RFC3339 世界標準時間「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:管道的使用者定義 IDDVR_SESSION_ID:DVR 工作階段的使用者定義 ID
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 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:管道的使用者定義 IDDVR_SESSION_ID:DVR 工作階段的使用者定義 IDINTERVAL_START_TIME:原始直播資訊清單中的 Unix Epoch 紀元時間;使用 RFC3339 世界標準時間「Zulu」格式的時間戳記 (例如2014-10-02T15:01:23Z)INTERVAL_END_TIME:原始直播資訊清單中的 Mark-out Unix Epoch 時間;使用 RFC3339 世界標準時間「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:管道的使用者定義 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:管道的使用者定義 IDDVR_SESSION_ID:DVR 工作階段的使用者定義 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/dvrSessions/DVR_SESSION_ID",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
這個指令會建立長期執行作業 (LRO),您可以使用該作業追蹤要求的進度。詳情請參閱「管理長時間執行的作業 」。