问题排查

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页介绍如何解决 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 存储分区(如需了解详情,请参阅 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.BadRequest",
         "field":"config.inputs",
         "description":"UnsupportedInput",
      }
   ]
}

如需解决此问题,请检查输入文件是否有效以及是否为支持的格式

输入格式不正确

如果输入文件格式不正确,且无法解码,就会出现以下问题。

{
   "code":3, # HTTP error code 400
   "message":"Input is malformed and cannot be decoded.",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.inputs",
         "description":"MalformattedInput",
      }
   ]
}

如需解决此问题,请检查输入文件是否有效以及是否为支持的格式

内部错误

当内部服务错误阻止作业成功完成时,会发生以下问题。

{
   "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 是否存在错误。

如需了解更多支持选项,请参阅获取支持