Solução de problemas

Esta página mostra como resolver problemas com a API Transcoder. Os erros mostrados nesta página são específicos da API Transcoder. Para ver informações sobre erros genéricos nas APIs do Google, consulte a página Erros das APIs do Cloud.

O serviço informa erros usando o campo error do recurso do job. Esse campo contém um objeto do tipo google.rpc.Status. Esse objeto contém informações adicionais do erro, incluindo código, mensagem e detalhes do erro.

Apenas o primeiro erro é retornado. Se houver vários erros em um job, você precisará corrigir o erro retornado e recriar o job para ver o próximo.

Permissão do Cloud Storage negada

O problema a seguir ocorre quando a conta de serviço da API Transcoder não tem permissão de leitura/gravação para entrada ou saída em um local no Cloud Storage.

{
   "code":7, # HTTP error code 403
   "message":"Permission denied for Google Cloud Storage.",
   "status":"PERMISSION_DENIED",
   "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."
         }
      }
}

Para resolver esse problema, verifique se a conta de serviço criada automaticamente tem as permissões corretas. Consulte Acesso ao Cloud Storage e ao Pub/Sub para mais informações sobre a conta de serviço.

Permissão negada do Pub/Sub

O seguinte problema ocorre quando a conta de serviço da API Transcoder não tem as permissões adequadas para publicar em um tópico do Pub/Sub.

{
   "code":7, # HTTP error code 403
   "message":"Permission denied for PubSub.",
   "status":"PERMISSION_DENIED",
   "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."
         }
      }
}

Para resolver esse problema, verifique se a conta de serviço criada automaticamente tem as permissões corretas. Consulte a seção Acesso ao Cloud Storage e ao Pub/Sub para mais informações sobre a conta de serviço.

Destino inválido do Pub/Sub

O seguinte problema ocorre quando o destino do Pub/Sub é um caminho de recurso de tópico do Pub/Sub inválido.

{
   "code":3, # HTTP error code 400
   "message":"No video stream found in ffprobe output.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.pubsubDestination.topic",
         "description":"InvalidPubsubDestination"
      }
   ]
}

Para resolver esse problema, verifique se o tópico do Pub/Sub existe e está especificado no formato correto. Consulte Notificações do Pub/Sub para atualizações de jobs para mais informações.

Entrada não encontrada

O seguinte problema ocorre quando o arquivo de entrada não é encontrado no Cloud Storage.

{
   "code":3, # HTTP error code 400
   "message":"gs://input.mp4 does not exist.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.input",
         "description":"InputNotFound"
      }
   ]
}

Para resolver esse problema, verifique se o arquivo de entrada existe, se inputUri está correto e se a conta de serviço da API Transcoder tem permissões para acessar o arquivo. Se o arquivo de entrada existir em um projeto diferente, talvez seja necessário tornar público o bucket do Cloud Storage. Consulte Controle de acesso do Cloud Storage para mais informações.

Configuração ausente

O seguinte problema ocorre quando um campo de configuração de job está ausente.

{
   "code":3, # HTTP error code 400
   "message":"endTimeOffset of atom atom0 not set.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.editList[0].endTimeOffset",
         "description":"ConfigurationMissing"
      }
   ]
}

Para resolver esse problema, verifique o campo JobConfig mencionado na mensagem de erro.

O valor de configuração é inválido

O seguinte problema ocorre quando a configuração do job contém um valor inválido.

{
   "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",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.input[1].processingConfig.crop",
         "description":"InvalidConfigValue"
      }
   ]
}

Para resolver esse problema, verifique o campo JobConfig mencionado na mensagem de erro.

Ajuste de tempo inválido

O seguinte problema ocorre quando o ajuste de tempo de início ou de término na configuração do job não é válido.

{
   "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).",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.editList[0].startTimeOffset",
         "description":"InvalidTimeOffset"
      }
   ]
}

Para resolver esse problema, verifique se endTimeOffset é maior que startTimeOffset. Os dois ajustes não podem exceder a duração das entradas ou saídas.

Limites de transcodificação excedidos

O problema a seguir ocorre quando uma entrada ou a configuração de entrada excede os limites do serviço.

{
   "code":3, # HTTP error code 400
   "message":"at most 400 GB input.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.editList[0].startTimeOffset",
         "description":"ExceedTranscodeLimit"
      }
   ]
}

Para resolver esse problema, verifique se a configuração do job permanece dentro dos limites do serviço.

Vídeo ausente

O seguinte problema ocorre quando nenhum stream de vídeo é especificado na configuração ou nenhum vídeo é detectado no arquivo de entrada.

{
   "code":3, # HTTP error code 400
   "message":"No video stream found in ffprobe output.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.input",
         "description":"VideoMissing"
      }
   ]
}

Para resolver o problema, verifique se um stream de vídeo é especificado na configuração do job e se o arquivo de entrada contém um stream de vídeo.

Não há áudio

O problema a seguir ocorre quando nenhuma faixa de áudio é especificada no editList ou quando nenhuma faixa de áudio é detectada no arquivo de entrada.

{
   "code":3, # HTTP error code 400
   "message":"atom atom0 does not have any inputs (input0) with an audio track.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.editList[0].input[0]",
         "description":"AudioMissing"
      }
   ]
}

Para resolver esse problema, verifique se uma faixa de áudio está especificada na configuração do job e se o arquivo de entrada tem uma faixa de áudio.

Texto ausente

O seguinte problema ocorre quando um stream de texto é especificado, mas nenhuma faixa de texto está disponível na lista de edição ou no arquivo de entrada.

{
   "code":3, # HTTP error code 400
   "message":"atom atom0 does not have any inputs (input0) with a text track.",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.editList[0].input[0]",
         "description":"TextMissing"
      }
   ]
}

Se uma faixa de texto for especificada na configuração do job, verifique se existe uma no editList e no arquivo de entrada. Veja um exemplo de configuração.

Não foi possível encontrar uma faixa ou um canal válido

O seguinte problema ocorre quando a faixa ou o canal de entrada em um mapeamento de stream primário não se refere a uma faixa ou canal de stream de áudio/texto válido.

{
   "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.",
   "status":"BAD_REQUEST",
   "details":[
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.elementaryStreams[0].mapping[0].channels[0].inputs[0].track",
         "description":"ValidTrackOrChannelMissing"
   ]
}

Para resolver esse problema, verifique o vídeo/áudio/texto de entrada e o mapeamento de stream primário. Consulte exemplos de mapeamentos de stream.

Entrada incompatível

O seguinte problema ocorre quando o arquivo de entrada está corrompido ou não está em um formato compatível.

{
   "code":3, # HTTP error code 400
   "message":"Input files are not supported",
   "status":"BAD_REQUEST",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.BadRequest",
         "field":"config.inputs",
         "description":"UnsupportedInput",
      }
   ]
}

Para resolver esse problema, verifique se o arquivo de entrada é válido e está em um formato compatível.

Entrada incorreta

O seguinte problema ocorre quando o arquivo de entrada está incorreto e não pode ser decodificado.

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

Para resolver esse problema, verifique se o arquivo de entrada é válido e está em um formato compatível.

Erro interno

O seguinte problema ocorre quando um erro de serviço interno impediu a conclusão do job.

{
   "code":14, # HTTP error code 500
   "message":"InternalError",
   "status":"INTERNAL",
   "details":[
      {
         "@type":"type.googleapis.com/google.rpc.ErrorInfo",
         "reason":"InternalError",
         "domain":"transcoder.googleapis.com",
         "metadata":{
            "details":"Failed to transcode job"
         }
      }
   ]
}

Para resolver esse problema, verifique se o arquivo de entrada é válido e está em um formato compatível. Verifique se JobConfig está livre de erros.

Consulte Como receber suporte para mais opções de suporte.