MPEG-DASH 直播快速入門
本頁說明如何使用 Live Stream API 的預設設定,透過 curl、PowerShell 或用戶端程式庫,建立基本的 MPEG-DASH 即時串流直播工作。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Live Stream API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable livestream.googleapis.com
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/livestream.editor, roles/storage.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Live Stream API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable livestream.googleapis.com
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/livestream.editor, roles/storage.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
建立 Cloud Storage 值區
建立 Cloud Storage bucket,以保存即時串流資訊清單和區隔檔案。
Google Cloud 控制台
- 前往 Google Cloud 控制台的 Cloud Storage「Buckets」(值區) 頁面。
- 點選 「Create」(建立)。
- 在「建立 bucket」頁面中,輸入 bucket 資訊。如要前往下一個步驟,請按「繼續」。
- 在「開始使用」部分,執行下列操作:
-
在「Choose where to store your data」(選擇資料的儲存位置) 專區中,執行下列操作:
- 選取「位置類型」。
- 從「位置類型」下拉式選單中,選擇要永久儲存 bucket 資料的位置。
- 如果您選取「雙區域」位置類型,也可以使用相關核取方塊啟用強化型複製。
- 如要設定跨值區複製,請選取「透過 Storage 移轉服務新增跨值區複製作業」,然後按照下列步驟操作:
設定跨 bucket 複製作業
- 在「Bucket」選單中選取 bucket。
在「複製設定」部分,按一下「設定」,設定複製作業的設定。
系統隨即會顯示「設定跨 bucket 複製作業」窗格。
- 如要依物件名稱前置字串篩選要複製的物件,請輸入要納入或排除物件的前置字串,然後按一下「新增前置字串」。
- 如要為複製的物件設定儲存空間級別,請從「儲存空間級別」選單中選取儲存空間級別。如果略過這個步驟,複製的物件預設會使用目標值區的儲存空間級別。
- 按一下 [完成]。
-
在「選擇資料儲存方式」部分,執行下列操作:
- 在「設定預設類別」部分,選取「Standard」。
- 如要啟用階層命名空間,請在「為資料密集型工作負載提供最理想的儲存空間」部分,選取「為這個值區啟用階層命名空間」。
- 在「選取如何控制物件的存取權」部分,選取 bucket 是否要強制執行禁止公開存取,並為 bucket 的物件選取存取權控管方法。
-
在「選擇保護物件資料的方式」部分,執行下列操作:
- 在「資料保護」下方,選取要為 bucket 設定的選項。
- 如要啟用虛刪除,請按一下「虛刪除政策 (用於資料復原)」核取方塊,並指定要保留物件的天數 (刪除後)。
- 如要設定「物件版本管理」,請按一下「物件版本管理 (用於版本管控)」核取方塊,並指定每個物件的版本數量上限,以及非現行版本失效的天數。
- 如要為物件和 bucket 啟用保留政策,請勾選「保留 (符合法規)」核取方塊,然後執行下列操作:
- 如要啟用 Object Retention Lock,請按一下「啟用物件保留功能」核取方塊。
- 如要啟用「Bucket Lock」,請勾選「Set bucket retention policy」(設定值區保留政策) 核取方塊,然後選擇保留期限的時間單位和長度。
- 如要選擇物件資料的加密方式,請展開「資料加密」部分 (),然後選取「資料加密」方法。
- 在「資料保護」下方,選取要為 bucket 設定的選項。
- 點選「建立」。
指令列
-
建立 Cloud Storage bucket:
gcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME 替換為符合值區命名規定的值區名稱。
安裝編碼器
如要使用 API,必須要有編碼器產生 API 處理的輸入串流。
安裝 ffmpeg,因為本頁面說明如何使用 ffmpeg 產生輸入串流。您可以在 Cloud Shell 中使用下列指令安裝這項工具。
sudo apt install ffmpeg
建立輸入端點
如要開始直播,請先使用 projects.locations.inputs.create 方法建立輸入端點。您會將輸入串流傳送至這個端點。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:要建立輸入端點的位置;請使用其中一個支援的區域顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
INPUT_ID:要建立的新輸入端點 (您要將輸入串流傳送至該端點) 的使用者定義 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 C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
複製傳回的 OPERATION_ID,以便在下一節中使用。
查看結果
使用 projects.locations.operations.get 方法檢查輸入端點是否已建立。如果回應包含 "done: false",請重複執行指令,直到回應包含 "done: true" 為止。在區域中建立第一個輸入端點最多可能需要 10 分鐘。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:輸入端點所在位置;請使用支援的區域之一。顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
OPERATION_ID:作業的 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,
"endTime": END_TIME,
"target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input",
"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"
}
}
找到 uri 欄位,然後複製傳回的 INPUT_STREAM_URI,以便稍後在「傳送輸入串流」部分使用。
建立管道
如要將輸入串流轉碼為輸出串流,必須建立管道資源。
如要建立管道,請使用 projects.locations.channels.create 方法。以下範例會建立管道,產生由單一高畫質 (1280x720) 轉譯版本組成的 MPEG-DASH 直播串流。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:建立管道的位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:要建立的管道使用者定義 ID;這個值必須介於 1 至 63 個字元之間,開頭和結尾須為[a-z0-9],且字元之間可包含破折號 (-)INPUT_ID:使用者定義的輸入端點 IDBUCKET_NAME:您建立的 Cloud Storage bucket 名稱,用於保存即時串流資訊清單和區隔檔案
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 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
}
取得頻道
您可以使用新的作業 ID,查看頻道建立作業的結果。
建立頻道後,請使用 projects.locations.channels.get 方法查詢頻道狀態。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 ID
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"inputAttachments": [
{
"key": "INPUT_ID",
"input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
}
],
"activeInput": "INPUT_ID",
"output": {
"uri": "gs://BUCKET_NAME"
},
"elementaryStreams": [
{
"videoStream": {
"h264": {
"widthPixels": 1280,
"heightPixels": 720,
"frameRate": 30,
"bitrateBps": 3000000,
"gopDuration": "2s",
"vbvSizeBits": 3000000,
"vbvFullnessBits": 2700000,
"entropyCoder": "cabac",
"profile": "high"
}
},
"key": "es_video"
},
{
"audioStream": {
"codec": "aac",
"bitrateBps": 160000,
"channelCount": 2,
"channelLayout": ["fl", "fr"],
"sampleRateHertz": 48000
},
"key": "es_audio"
}
],
"muxStreams": [
{
"key": "mux_video",
"container": "fmp4",
"elementaryStreams": ["es_video"],
"segmentSettings": { "segmentDuration": "2s" }
},
{
"key": "mux_audio",
"container": "fmp4",
"elementaryStreams": ["es_audio"],
"segmentSettings": { "segmentDuration": "2s" }
}
],
"manifests": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video",
"mux_audio"
],
"maxSegmentCount": 5,
"segmentKeepDuration": "60s"
}
],
"streamingState": "STOPPED"
}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
完整回應包含下列欄位。(上述部分程式碼範例只會傳回回應中的特定欄位,但可以修改為傳回完整回應)。
{
...
"streamingState": "STOPPED"
...
}
這項回應表示你現在可以啟動頻道。
啟動管道
請使用 projects.locations.channels.start 方法啟動管道。頻道必須先啟動,才能接受輸入串流或產生輸出串流。
在區域中啟動第一個頻道約需 10 分鐘。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 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 C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
傳送輸入串流
如要判斷頻道是否已啟動,請如先前所述取得頻道資訊。回覆內容應包含下列項目:
{
...
"streamingState": "AWAITING_INPUT"
...
}
頻道準備就緒後,請將測試輸入串流傳送至輸入端點,生成直播。
開啟新的終端機視窗。使用「檢查結果」一節中的 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
確認頻道正在直播
如要查看直播作業的狀態,請如先前所述取得頻道資訊。回覆應包含下列內容:
{
...
"streamingState": "STREAMING"
...
}
驗證 Cloud Storage bucket 中的內容
開啟 Cloud Storage bucket。確認其中包含下列檔案和目錄:
main.mpdmux_audio/- 多個
segment-segment-number.m4s檔案 - 單一
segment-initialization_segment_0000000000.m4s檔案
- 多個
mux_video/- 多個
segment-segment-number.m4s檔案 - 單一
segment-initialization_segment_0000000000.m4s檔案
- 多個
播放系統產生的即時串流內容
如要在 Shaka Player 中播放產生的媒體檔案,請完成下列步驟:
- 將您建立的 Cloud Storage bucket 設為可公開讀取。
- 如要在 Cloud Storage bucket 上啟用跨源資源共享 (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 bucket 中,找出系統產生的
main.mpd檔案。在該檔案的「公開存取權」欄中,按一下「複製網址」。 - 前往 Shaka Player (這是一個線上直播播放器)。
- 按一下頂端導覽列中的「Custom Content」(自訂內容)。
- 按一下「+」按鈕。
將檔案的公開網址貼到「Manifest URL」(資訊清單網址) 方塊中。

在「Name」(名稱) 方塊中輸入名稱。
按一下「Save」(儲存)。
按一下「Play」(播放)。
這時候應該就會看到即時串流內容以測試模式播放。
在直播中加入廣告插播時間點標記
如要在直播中加入廣告插播時間點標記,請使用 projects.locations.channels.events.create 方法。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 IDEVENT_ID:使用者定義的事件 ID
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/events/EVENT_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"adBreak": {
"duration": "100s"
},
"executeNow": true,
"state": "PENDING"
}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
確認廣告插播時間點標記存在
在直播中插入廣告標記後,DASH 資訊清單中會顯示標示為<SpliceInfoSection> 的事件,代表指定廣告時間長度 (100 秒)。
執行下列指令,查看產生的 DASH 資訊清單內容:
gcloud storage cat gs://BUCKET_NAME/main.mpd
您可能需要多次執行 gcloud storage cat 指令,直到出現 <SpliceInfoSection> 區段為止:
<EventStream timescale="10000000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event duration="100000000" id="809">
<SpliceInfoSection xmlns="urn:scte:scte35:2013:xml">
<SpliceInsert outOfNetworkIndicator="true" spliceImmediateFlag="true">
<BreakDuration autoReturn="true" duration="100000000"/>
</SpliceInsert>
</SpliceInfoSection>
</Event>
</EventStream>
清除所用資源
為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請按照下列步驟操作。
停止管道
使用 projects.locations.channels.stop 方法停止頻道。你必須先停止頻道,才能刪除。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 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": "stop",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用 OPERATION_ID 檢查作業狀態,直到結果中出現 "done":true 為止。
停止輸入串流
如果使用 ffmpeg 傳送輸入串流,停止頻道後,連線會自動中斷。
如果您使用其他具有重試機制的編碼器,可能需要手動停止輸入串流。
刪除活動
使用 projects.locations.channels.events.delete 方法刪除廣告插播事件。你必須先刪除頻道活動,才能刪除頻道。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 IDEVENT_ID:使用者定義的事件 ID
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
刪除頻道
使用 projects.locations.channels.delete 方法刪除頻道。你必須先刪除頻道,才能刪除頻道使用的輸入端點。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:頻道所在位置;請使用支援的區域之一顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
CHANNEL_ID:使用者定義的管道 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": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用 OPERATION_ID 檢查作業狀態,直到結果中出現 "done":true 為止。
刪除輸入端點
使用 projects.locations.inputs.delete 方法刪除輸入端點。
REST
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_NUMBER:您的 Google Cloud 專案編號,位於「IAM Settings」(IAM 設定) 頁面的「Project number」(專案編號) 欄位LOCATION:輸入端點所在位置;請使用支援的區域之一。顯示地區us-central1us-east1us-east4us-west1us-west2northamerica-northeast1southamerica-east1asia-east1asia-east2asia-south1asia-northeast1asia-southeast1australia-southeast1europe-north1europe-west1europe-west2europe-west3europe-west4
INPUT_ID:使用者定義的輸入端點 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/inputs/INPUT_ID",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
C#
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API C# API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Go API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Java API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Node.js API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API PHP API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Python API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Live Stream API 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Live Stream API Ruby API 參考文件。
如要向 Live Stream API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
刪除 Cloud Storage 值區
請注意,停止頻道後,系統會刪除 Live Stream API 產生的儲存空間中的所有檔案和資料夾。
前往 Google Cloud 控制台的 Cloud Storage 瀏覽器頁面。
找出您建立的值區,並選取旁邊的核取方塊。
點選「刪除」。
在出現的彈出式視窗中,按一下 刪除,即可永久刪除值區及其內容。
撤銷憑證
-
選用:撤銷您建立的驗證憑證,並刪除本機憑證檔案。
gcloud auth application-default revoke
-
選用:從 gcloud CLI 撤銷憑證。
gcloud auth revoke
後續步驟
- 請試試 HTTP 即時串流直播的快速入門操作說明。
- 瞭解如何設定備份輸入串流。