Transcoder API 總覽

本頁提供 Transcoder API 的技術總覽,包括功能、術語和實用概念。Transcoder API 會實作 REST 和 RPC API,讓您在 Google Cloud中提交、監控及管理轉碼工作。如要使用 Transcoder API 提交工作,請先將媒體資產上傳至 Cloud Storage。處理工作後,Transcoder API 會將產生的媒體儲存回 Cloud Storage。

功能

Transcoder API 支援下列功能:

如要進一步瞭解 MP4 和 MPEG-DASH 標準,請造訪 The Moving Picture Experts Group 網站。如要進一步瞭解 HLS 標準,請參閱「HTTP 即時串流」。

支援的內容加密容器

下表列出支援內容加密功能的容器。

串流通訊協定 容器 DRM 系統 加密配置
HLS TS ClearKey aes128
HLS TS FairPlay sampleAes
HLS fMP4 FairPlay 僅限 mpegCenc cbc
MPEG-DASH fMP4 Widevine mpegCenc cenc 或 cbcs
MPEG-DASH fMP4 PlayReady mpegCenc cenc 或 cbcs

存取權控管

Transcoder API 的存取權控管模式是根據 Google 的身分與存取權管理建立。您可以透過 IAM 的精細權限,控管媒體資料的使用方式,以及可執行這些操作的使用者。

限制

下表列出每個轉碼工作可用的限制。

工作限制
輸入寬度上限4096 像素
輸入高度上限4096 像素
最大輸出寬度4096 像素
輸出高度上限2160 像素
總輸出大小400 GB
最大 EditList 時間長度24 小時
影片串流數量上限70
音訊串流數量上限50
文字串流數量上限50
Mux 串流數量上限100
資訊清單數量上限100
圖像片段影格數量上限10

概念

本節將介紹影片檔案的重要概念,以及如何搭配 Transcoder API 使用這些檔案。

影片檔案的元件

每個影片檔案都有一個容器,也就是整個檔案的包裝函式。Transcoder API 會使用 MuxStreams 定義容器。每個容器都包含一組 ElementaryStreams,用於定義檔案的影片、音訊和字幕文字軌編碼。影片和音訊會使用轉碼器進行壓縮。

在以下範例中,視訊會使用 H.264 進行壓縮,音訊則會使用 AAC 進行壓縮。兩者都會放入 MP4 容器。

影片檔案的元件和範例
圖 1.影片檔案的元件 (左圖) 和 MP4 檔案範例 (右圖)。

串流通訊協定結構

對於串流媒體,內容供應商會以多種比特率 (以千位元每秒為單位) 編碼相同內容。供應器接著產生資訊清單檔案,指向不同位元率的不同檔案。串流媒體播放器會使用資訊清單檔案選取適當的檔案,然後每次提取幾秒的影片。每個位元率可能為單一檔案或多個短檔案,具體取決於播放器支援的內容。

不同解析度的媒體通常會針對不同的位元率進行編碼。舉例來說,較低的比特率會以標準畫質 (SD) 編碼,而非高畫質 (HD)。位元率、解析度和編解碼器的組合稱為適應性位元率 (ABR) 階梯。串流內容供應商可以根據 CDN 成本、使用者裝置類型、區域內頻寬和其他因素,調整自己的階梯式定價。

串流通訊協定結構的元件和示例
圖 2. 串流通訊協定結構的元件 (上方),以及 HTTP 即時串流 (HLS) 實作範例 (下方)。

術語

本節提供 Transcoder API 實用詞彙的字典。

廣告插播

廣告插播是指在媒體播放前或播放期間顯示的短廣告。Transcoder API 支援工作設定中的廣告插播關鍵影格。Transcoder API 不會插入或播放廣告,也不會停止媒體播放作業;影片播放器用戶端負責處理關鍵影格。

Atom

原子是用來定義影片中繼資料和位置的基本資料結構。影片可包含不同類型的原子,包括音訊、編輯和文字原子,形成複雜的巢狀階層。

音訊原子

音訊原子會將基本串流中的音訊對應至編輯清單。

編解碼類型和設定檔

選取視訊串流的轉碼器時,您會指定轉碼器類型 (例如 H.264) 和設定檔 (例如預設的 high 設定檔)。

容器

容器是一種包裝函式,可說明多重串流中各個元件 (包括媒體檔案和中繼資料) 之間的關係。Transcoder API 支援 MP4、MPEG-DASH 和 HLS 容器格式。

編輯原子

編輯原子會定義要透過編輯清單合併的串流個別區段的起始和結束偏移量。

編輯清單

編輯清單會定義一系列編輯作業,做為轉碼工作產生的檔案或資訊清單的時間表。

基本串流

基本串流是輸入檔案的編碼,例如音訊、影片或字幕文字軌。您必須先將基本串流打包,再將串流對應至不同輸出格式並分享。

熵編碼

熵編碼是 Transcoder API 支援的無損壓縮格式。設定工作時,您可以指定內容適應可變長度編碼 (CAVLC) 或內容適應二進位算術編碼 (CABAC) 熵編碼器。

工作

工作是使用 Transcoder API 管理工作的基本單位。將工作提交至 Transcoder API 後,系統會在稱為「region」的地理位置中以非同步方式處理工作。您可以列出並管理某個區域的所有工作。

工作生命週期包含三個步驟:準備、轉碼和封裝。

  • 準備
    • 從 Cloud Storage 下載輸入內容
    • 分析輸入內容
    • 驗證輸入內容
  • 轉碼
    • 在輸入內容上執行轉碼作業
  • 包裝
    • 拼接輸入
    • 多重輸入
    • 將輸出內容上傳至 Cloud Storage

工作已更新狀態。服務會使用 error ���位���������誤。

工作設定

工作設定代表許多可自訂的設定,您可以在建立工作並提交至 Transcoder API 時進行自訂。您可以指定編輯清單等設定,以及在輸出資訊清單中插入廣告插播標記的位置。您可以建立可重複使用的作業設定,做為在 Google Cloud 區域中使用的作業範本。

工作模式

Transcoder API 支援兩種工作模式:互動模式和批次模式。

互動模式是工作預設模式。如果您希望盡快開始工作處理作業,或是想更精細地控管要先執行哪些工作,請使用這個模式。在這個模式中,並行工作數量配額會控制同時執行的工作數量。達到這個配額後,您嘗試啟動的任何工作都會遭到拒絕。

使用批次模式提交許多工作,這些工作的處理延遲時間不像在預設互動模式中提交的工作那麼重要。您可以在這個模式中指定工作的工作處理優先順序。以批次模式提交且具有相同優先順序值的工作會放入先進先出的佇列,且在等待執行時,工作狀態為 PENDING。在這個模式中,批次待處理工作數量配額會控制排入佇列的工作數量。達到這個配額後,您嘗試啟動的任何工作都會遭到拒絕。工作在執行時會轉換為 RUNNING 狀態。批次並行工作數量配額可控制同時執行的工作數量。

您可以同時使用這兩種模式。兩種模式之間沒有優先順序。如要進一步瞭解如何設定工作模式,請參閱「以批次模式建立工作」。

工作範本

根據預設,Transcoder API 會套用名為 preset/web-hd 的預設範本,用於填入工作設定。這個工作設定會產生下列輸出檔案:

  • manifest.m3u8:HLS 媒體串流的主要播放清單。這個檔案包含輸出內容高畫質 (HD) 變化版本和輸出內容標準畫質 (SD) 變化版本的播放清單參照。
    • media-hd.m3u8:高畫質變化版本的播放清單
      • media-hd0000000000.ts:高畫質影片片段檔案
    • media-sd.m3u8:標準畫質變體的播放清單
      • media-sd0000000000.ts:標準畫質影片片段檔案
  • manifest.mpd:MPEG-DASH 媒體串流的播放清單。這個檔案包含純影片和純音訊片段檔案的參照項目。
    • audio-only0000000000.m4s:僅提供音訊的區隔檔案
    • video-only-hd0000000000.m4s:高畫質的單純視訊片段檔案
    • video-only-sd0000000000.m4s:標準畫質的僅限影片片段檔案
  • sd.mp4:獨立的標準畫質影片檔案
  • hd.mp4:獨立高畫質影片檔案

您可以建立及管理自訂工作範本,並在建立工作時指定這些範本。

預先處理

預處理是指在主要轉碼作業之前進行的工作階段。

預先處理設定

預處理設定代表在工作轉碼階段前,可套用至影片的設定。您可以套用裁剪或邊框間距,做為這項設定的一部分。

費率控制模式

費率控制模式會指出是否要使用固定比率因數 (CRF) 或可變比率 (VBR) 模式處理工作。CRF 可確保處理過的媒體素材資源維持一致的品質。VBR 會最佳化編碼程序,以縮減已處理媒體素材資源的檔案大小。針對串流用途,請選取 VBR 速率控制模式。如要進行備份,請選取 CRF 速率控制模式。

資訊清單

資訊清單是用來向用戶端說明自適應媒體串流的可用內容和中繼資料。在 Transcoder API 中,您可以設定工作,以便輸出資訊清單,其中包含檔案名稱、多重串流清單,以及資訊清單的類型 (必須為 HLS 或 MPEG-DASH)。

文字原子

文字原子會將基本串流中的文字對應至編輯清單。

文字串流

文字串流會對與影片相關聯的文字資料進行編碼,例如隱藏式輔助字幕或字幕。

後續步驟