トラブルシューティング

このページでは、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"
      }
   ]
}

この問題を解決するには、endTimeOffsetstartTimeOffset より大きいことを確認します。 どちらのオフセットも入力ファイルの時間長を超えないようにする必要があります。

コード変換の上限を超えています

次の問題は、入力または入力構成がサービスの上限を超えた場合に発生します。

{
   "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 にエラーがないことを確認します。

その他のサポート オプションについては、サポートの利用をご覧ください。