本頁面說明如何在轉碼完成的影片中插入疊加層。重疊圖片是指插入輸出影片頂端的圖片,可在指定時間內淡入或淡��。如要插入疊加層,請在 JobConfig
範本中使用 overlays
陣列。
請參閱支援的圖片檔案格式清單。
將圖片上傳至 Cloud Storage
如要開始使用,請按照下列步驟將疊加圖片上傳至 Cloud Storage 值區:
- 前往 Google Cloud 控制台的「Cloud Storage �����器」頁面。
前往 Cloud Storage 瀏覽器頁面 - 按一下值區名稱即可開啟。
- 按一下「上傳檔案」。
- 從本機電腦選取要上傳的圖片檔案。
建立重疊
您可以建立兩種類型的疊加層:靜態或動畫。兩種疊加層都會使用靜態圖片。您可以顯示或隱藏靜態疊加層。動畫覆疊層支援圖片的淡入和淡出動畫。
您可以在單一輸出影片中插入多個疊加層。
建立靜態重疊
在 image
物件中,使用 uri
欄位指定 Cloud Storage 中的疊加圖片。在 resolution
物件中,將 x 和 y 值設為 0 到 1.0。值為 0 時,系統會維持該維度的來源圖片解析度;值為 1.0 時,系統會拉伸圖片,使其與輸出影片的維度相符。舉例來說,使用 x: 1
和 y:
0.5
值,可將疊加圖片延伸至輸出影片的完整寬度和一半高度。
在 animations
陣列中,建立 animationStatic
物件,其中 x 和 y 座標介於 0 到 1.0 之間。這些座標是根據輸出影片解析度計算。使用 x: 0
和 y: 0
值,將疊加圖片的左上角置於輸出影片的左上角。使用 startTimeOffset
欄位,指定疊加圖層應在輸出影片時間軸的何時顯示。
如要移除靜態動畫,請建立 animationEnd
物件。使用 startTimeOffset
欄位,在輸出影片時間軸中指定動畫結束時間 (也就是重疊圖層應消失的時間)。
REST
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:您在 IAM 設定中列出的 Google Cloud 專案 ID。LOCATION
:工作執行的位置。使用支援的地區之一。顯示地區us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
STORAGE_BUCKET_NAME
:您建立的 Cloud Storage 值區名稱。STORAGE_INPUT_VIDEO
:Cloud Storage 值區中要轉碼的影片名稱,例如my-vid.mp4
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-vid.mp4
)。STORAGE_INPUT_OVERLAY
:您用於疊加圖片的 Cloud Storage 值區圖片名稱,例如my-overlay.png
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-overlay.png
)。STORAGE_OUTPUT_FOLDER
:您要儲存已編碼影片輸出的 Cloud Storage 資料夾名稱。
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- 建立���義工作欄位的
request.json
檔案。針對gcloud
指令進行下列替換:- STORAGE_BUCKET_NAME:您建立的 Cloud Storage 值區名稱。
- STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如
my-vid.mp4
。這個欄位應考量您在 bucket 中建立的任何資料夾 (例如input/my-vid.mp4
)。 - STORAGE_INPUT_OVERLAY:您用於疊加圖片的 Cloud Storage 值區圖片檔案名稱,例如
my-overlay.png
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-overlay.png
)。 - LOCATION:工作執行的位置。請使用下列清單中的地點。顯示地區
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
- STORAGE_OUTPUT_FOLDER:您要儲存已編碼影片輸出內容的 Cloud Storage 資料夾名稱。
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 1, "y": 0.5 }, "alpha": 1 }, "animations": [ { "animationStatic": { "xy": { "x": 0, "y": 0 }, "startTimeOffset": "0s" } }, { "animationEnd": { "startTimeOffset": "10s" } } ] } ] } }
- 請執行下列指令:
您應該會看到類似以下的回應:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 C#。 詳情請參閱 Transcoder API C# API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Go。 詳情請參閱 Transcoder API Go API 參考說明��件。
如要向 Transcoder API 驗證,請��定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Java。 詳情請參閱 Transcoder API Java API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Node.js。 詳情請參閱 Transcoder API Node.js API 參考說明文件。
如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 PHP。 詳情請參閱 Transcoder API PHP API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Python。 詳情請參閱 Transcoder API Python API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Ruby。 詳情請參閱 Transcoder API Ruby API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
在輸出影片中,靜態重疊廣告具有下列特性:
- 會顯示在時間軸的開頭,並持續 10 秒。
- 這會將輸出影片的寬度和高度分別拉伸至全寬和一半。
- 位於輸出影片的左上角。
建立動畫重疊
在 image
物件中,使用 uri
欄位指定 Cloud Storage 中的疊加圖片。在 resolution
物件中,將 x 和 y 值設為 0 到 1.0。值為 0 時,系統會維持該維度的來源圖片解析度;值為 1.0 時,系統會拉伸圖片,使其與輸出影片的維度相符。舉例來說,您可以使用 x: 0
和 y: 0
值,維持疊加圖片的原始解析度。
在 animations
陣列中,建立 animationFade
物件,其中 fadeType
為 FADE_IN
。將 x 和 y 座標設為 0 到 1.0。這些座標會根據輸出影片解析度而定。使用 x: 0.5
和 y: 0.5
值,將疊加層的左上角置於輸出影片的中心。使用 startTimeOffset
欄位,指定疊加圖層應在輸出影片時間軸的何時開始顯示。在 endTimeOffset
欄位中設定的時間內,疊加層應完全顯示。
如要淡出疊加層,請建立另一個 animationFade
物件。這次請將 fadeType
設為 FADE_OUT
。輸入位置座標和開始/結束時間。
REST
使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:您在 IAM 設定中列出的 Google Cloud 專案 ID。LOCATION
:工作執行的位置。使用支援的地區之一。顯示地區us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
STORAGE_BUCKET_NAME
:您建立的 Cloud Storage 值區名稱。STORAGE_INPUT_VIDEO
:Cloud Storage 值區中要轉碼的影片名稱,例如my-vid.mp4
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-vid.mp4
)。STORAGE_INPUT_OVERLAY
:您用於疊加圖片的 Cloud Storage 值區圖片名稱,例如my-overlay.png
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-overlay.png
)。STORAGE_OUTPUT_FOLDER
:您要儲存已編碼影片輸出的 Cloud Storage 資料夾名稱。
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- 建立定義工作欄位的
request.json
檔案。針對gcloud
���令進行下列替換:- STORAGE_BUCKET_NAME:您建立的 Cloud Storage 值區名稱。
- STORAGE_INPUT_VIDEO:Cloud Storage 值區中要轉碼的影片名稱,例如
my-vid.mp4
。這個欄位應考量您在 bucket 中建立的任何資料夾 (例如input/my-vid.mp4
)。 - STORAGE_INPUT_OVERLAY:您用於疊加圖片的 Cloud Storage 值區圖片檔案名稱,例如
my-overlay.png
。這個欄位應考量您在 bucket 中建立的所有資料夾 (例如input/my-overlay.png
)。 - LOCATION:工作執行的位置。請使用下列清單中的地點。顯示地區
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
me-west1
me-central1
me-central2
- STORAGE_OUTPUT_FOLDER:您要儲存已編碼影片輸出內容的 Cloud Storage 資料夾名稱。
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 0, "y": 0 }, "alpha": 1 }, "animations": [ { "animationFade": { "fadeType": "FADE_IN", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "5s", "endTimeOffset": "10s" } }, { "animationFade": { "fadeType": "FADE_OUT", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "12s", "endTimeOffset": "15s" } } ] } ] } }
- 請執行下列指令:
您應該會看到類似以下的回應:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 C#。 詳情請參閱 Transcoder API C# API ���考說明�����。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Go。 詳情請參閱 Transcoder API Go API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Java。 詳情請參閱 Transcoder API Java API 參考說明文件。
如要向 Transcoder API 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Node.js。 詳情請參閱 Transcoder API Node.js API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 PHP。 詳情請參閱 Transcoder API PHP API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Python。 詳情請參閱 Transcoder API Python API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
在試用這個範例之前,請先按照 Transcoder API 快速入門:使用用戶端程式庫中的操作說明設定 Ruby。 詳情請參閱 Transcoder API Ruby API 參考說明文件。
如要向 Transcoder API 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
在產生的影片中,動畫覆疊有下列特性:
- 在輸出影片的 5 秒處開始淡入。疊加層的 Alpha 值從 0 開始,結束於 1.0。疊加圖片的左上角會顯示在輸出影片的中央。重疊圖像會以原始解析度顯示。
- 淡入後,重疊廣告會顯示 2 秒。
- 在輸出影片的 12 秒處開始淡出。疊加層的 Alpha 值從 1.0 開始,結束於 0。
- 動畫會在 15 秒後消失。
如需這項設定的示範影片,請參閱輸出影片示範。這部影片使用範例重疊圖片。