本頁說明如何解決 Transcoder API 的問題。這個頁面顯示的錯誤專屬於 Transcoder API。如要瞭解 Google API 的一般錯誤,請參閱 Cloud API 的「錯誤」頁面。
服務會使用作業資源的 error
欄位回報錯誤。這個欄位包含 google.rpc.Status
類型的物件。這個物件包含額外的錯誤資訊,包括錯誤代碼、錯誤訊息和錯誤詳細資料。
系統只會傳回第一個錯誤。如果工作發生多項錯誤,您必須修正傳回的錯誤,然後重新建立工作,才能查看下一個錯誤。
Cloud Storage 權限遭拒
如果 Transcoder API 服務帳戶沒有 Cloud Storage 中某個位置的輸入或輸出讀取/寫入權限,就會發生下列問題。
{ "code":7, # HTTP error code 403 "message":"Permission denied for Google Cloud Storage.", "details":[ { "@type":"type.googleapis.com/google.rpc.ErrorInfo", "reason":"GCSPermissionDenied", "domain":"transcoder.googleapis.com", "metadata":{ "details":"my_service_account@my_project.iam.gserviceaccount.com does not have storage.objects.get access to gs://example/input/video.mp4." } } }
如要解決這個問題,請確認自動建立的服務帳戶具備正確權限。如要進一步瞭解服務帳戶,請參閱「存取 Cloud Storage 和 Pub/Sub」。
Pub/Sub 權限遭拒
如果 Transcoder API 服務帳戶沒有發布至 Pub/Sub 主題的適當權限,就會發生下列問題。
{ "code":7, # HTTP error code 403 "message":"Permission denied for PubSub.", "details":[ { "@type":"type.googleapis.com/google.rpc.ErrorInfo", "reason":"PubSubPermissionDenied", "domain":"transcoder.googleapis.com", "metadata":{ "details":"my_service_account@my_project.iam.gserviceaccount.com does not have pubsub.topic.publish access to /projects/test-project/topic/test-topic." } } }
如要解決這個問題,請確認自動建立的服務帳戶具備正確權限。如要進一步瞭解服務帳戶,請參閱「存取 Cloud Storage 和 Pub/Sub」一節。
Pub/Sub 目的地無效
如果 Pub/Sub 目的地是無效的 Pub/Sub 主題資源路徑,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"No video stream found in ffprobe output.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.pubsubDestination.topic", "description":"InvalidPubsubDestination" } ] }
如要解決這個問題,請確認 Pub/Sub 主題存在,且指定格式正確。詳情請參閱工作更新的 Pub/Sub 通知。
找不到輸入內容
如果系統在 Cloud Storage 中找不到輸入檔案,就會發生下列問題。
{ "code": 5, # HTTP error code 404 "message": "No such object: my-bucket/input.mp4", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "InputNotFound", "domain": "transcoder.googleapis.com", "metadata": { "details": "No such object: my-bucket/input.mp4" } } ] }
如要解決這個問題,請確認輸入檔案存在、inputUri
檔案的路徑正確無誤,且 Transcoder API 服務帳戶有權存取該檔案。如果輸入檔案位於不同專案,您可能需要將 Cloud Storage bucket 設為公開 (詳情請參閱 Cloud Storage 存取權控管)。
缺少設定
缺少工作設定欄位時,會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"endTimeOffset of atom atom0 not set.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.editList[0].endTimeOffset", "description":"ConfigurationMissing" } ] }
如要解決這個問題,請檢查錯誤訊息中提及的 JobConfig
欄位。
無效的設定值
如果工作設定包含無效值,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"config.inputs[1].preprocessingConfig.crop is invalid, the input (input0) to have a video track with width and height", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.input[1].processingConfig.crop", "description":"InvalidConfigValue" } ] }
如要解決這個問題,請檢查錯誤訊息中提及的 JobConfig
欄位。
時間偏移無效
如果作業設定中的開始時間偏移或結束時間偏移無效,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"Request field config.editList[0].startTimeOffset is 200s, expected start time less than the minimum duration of all inputs for this atom (198.86s).", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.editList[0].startTimeOffset", "description":"InvalidTimeOffset" } ] }
如要解決這個問題,請確認 endTimeOffset
大於 startTimeOffset
。兩個偏移量皆不得超過輸入檔案的長度。
超出轉碼限制
如果輸入內容或輸入設定超出服務限制,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"at most 400 GB input.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.editList[0].startTimeOffset", "description":"ExceedTranscodeLimit" } ] }
如要解決這個問題,請確保工作設定符合服務限制。
缺少影片
如果設定中未指定影片串流,或輸入檔案中未偵測到影片,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"No video stream found in ffprobe output.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.input", "description":"VideoMissing" } ] }
如要解決這個問題,請檢查工作設定中是否指定了影像串流,以及輸入檔案是否包含影像串流。
缺少音訊
如果未在 editList
中指定音軌,或系統未在輸入檔案中偵測到音軌,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"atom atom0 does not have any inputs (input0) with an audio track.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.editList[0].input[0]", "description":"AudioMissing" } ] }
如要解決這個問題,請檢查作業設定中是否指定音軌,以及輸入檔案是否包含音軌。
缺少文字
如果指定了文字串流,但編輯清單或輸入檔案中沒有可用的文字軌,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"atom atom0 does not have any inputs (input0) with a text track.", "details":[ { "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.editList[0].input[0]", "description":"TextMissing" } ] }
如果工作設定中指定了文字軌,請確認 editList
和輸入檔案中都有文字軌。請參閱設定範例。
缺少有效曲目或頻道
如果基本串流對應中的輸入軌或頻道未參照有效的音訊/文字串流軌或頻道,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"Request field config.elementaryStreams[0].mapping[0].channels[0].inputs[0].track is 2, no valid audio track available, expected an index to a valid audio track in input input0.", "details":[ "@type":"type.googleapis.com/google.rpc.BadRequest", "field":"config.elementaryStreams[0].mapping[0].channels[0].inputs[0].track", "description":"ValidTrackOrChannelMissing" ] }
如要解決這個問題,請檢查輸入的影片/音訊/文字和基本串流對應 (請參閱串流對應範例)。
不支援的輸入內容
如果輸入檔案已損毀或格式不受支援,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"Input files are not supported", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "UnsupportedInput", "domain": "transcoder.googleapis.com", "metadata": { "details": "Input is not supported. Input key = example_key, input uri = gs://example/input/video.mp4." } } ] }
如要解決這個問題,請確認輸入檔案有效,且採用支援的格式。
輸入內容格式錯誤
如果輸入檔案格式錯誤,無法解碼,就會發生下列問題。
{ "code":3, # HTTP error code 400 "message":"Input is malformed and cannot be decoded.", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "MalformattedInput", "domain": "transcoder.googleapis.com", "metadata": { "details": "Input is malformed. Input key = example_key, input uri = gs://example/input/video.mp4." } } ] }
如要解決這個問題,請確認輸入檔案有效,且採用支援的格式。
發生內部錯誤
如果內部服務發生錯誤,導致工作無法順利完成,就會發生下列問題。
{ "code":13, # HTTP error code 500 "message":"InternalError", "details":[ { "@type":"type.googleapis.com/google.rpc.ErrorInfo", "reason":"InternalError", "domain":"transcoder.googleapis.com", "metadata":{ "details":"Failed to transcode job" } } ] }
如要嘗試解決問題,請按照下列步驟操作:
- 確認輸入檔案有效,且採用支援的格式。
- 確認
JobConfig
沒有錯誤。 - 在其他地點重試這項工作。
- 請重試工作,並停用
optimization
。
如需其他支援選項,請參閱「取得支援」。
品質問題
如果輸出內容的視訊或音訊品質不佳,例如出現影像失真、遺失影格或影音同步問題,可能是因為輸入檔案的特性 (例如非標準的封裝或編碼)。你可以採取下列步驟來減輕這些問題:
- 確認輸入檔案有效,且採用支援的格式。
- 確認
JobConfig
沒有錯誤,並使用建議的編碼設定檔。 - 請重試工作,並停用
optimization
。 - 將
fillContentGaps
設為true
,並將frameRateConversion
設為DROP_DUPLICATE
,然後重試工作。
如需其他支援選項,請參閱「取得支援」。