このページでは、Transcoder API に関する問題を解決する方法について説明します。このページで説明するエラーは、Transcoder API に固有のものです。Google APIs の一般的なエラーについては、Cloud APIs のエラーのページをご覧ください。
サービスは、ジョブリソースの 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 バケットを公開する必要がある場合があります(詳細については、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に設定して、ジョブを再試行します。
その他のサポート オプションについては、サポートの利用をご覧ください。