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.",
   "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.",
   "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.",
   "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": 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"
        }
      }
    ]
}

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.",
   "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",
   "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).",
   "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 dos arquivos de entrada.

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.",
   "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.",
   "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.",
   "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.",
   "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.",
   "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",
    "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."
        }
      }
    ]
}

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.",
   "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."
        }
      }
    ]
}

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":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"
         }
      }
   ]
}

Para tentar resolver o problema, faça o seguinte:

  1. Verifique se o arquivo de entrada é válido e está em um formato compatível.
  2. Verifique se JobConfig está livre de erros.
  3. Tente novamente em um local diferente.
  4. Tente de novo com optimization desativado.

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

Problemas de qualidade

Se você encontrar qualidade de vídeo ou áudio ruim na saída, como artefatos, frames ausentes, problemas de sincronização A/V, isso pode ser devido a características do arquivo de entrada, como empacotamento ou codificação não padrão. Confira algumas etapas para reduzir esses problemas:

  1. Verifique se o arquivo de entrada é válido e está em um formato compatível.
  2. Verifique se JobConfig está livre de erros e usa os perfis de codificação recomendados.
  3. Tente de novo com optimization desativado.
  4. Tente novamente com fillContentGaps definido como true e frameRateConversion definido como DROP_DUPLICATE.

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