本页介绍如何解决 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.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。
如需了解更多支持选项,请参阅获取支持。