Dépannage

Cette page explique comment résoudre les problèmes liés à l'API Transcoder. Les erreurs affichées sur cette page sont spécifiques à l'API Transcoder. Pour en savoir plus sur les erreurs génériques dans les API Google, consultez la page Erreurs.

Le service signale les erreurs à l'aide du champ error de la ressource de la tâche. Ce champ contient un objet de type google.rpc.Status. Cet objet contient des informations d'erreur supplémentaires, y compris le code de l'erreur, le message d'erreur et les détails de l'erreur.

Seule la première erreur est renvoyée. Si une tâche rencontre plusieurs erreurs, vous devez corriger l'erreur renvoyée et recréer la tâche pour afficher l'erreur suivante.

Autorisation Cloud Storage refusée

Le problème suivant se produit lorsque le compte de service de l'API Transcoder ne dispose pas d'une autorisation en lecture/écriture pour l'entrée ou la sortie d'un emplacement dans 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."
         }
      }
}

Pour résoudre ce problème, assurez-vous que le compte de service créé automatiquement dispose des autorisations appropriées. Consultez la section Accéder à Cloud Storage et à Pub/Sub pour plus d'informations sur le compte de service.

Autorisation Pub/Sub refusée

Le problème suivant se produit lorsque le compte de service de l'API Transcoder ne dispose pas des autorisations appropriées pour la publication dans un sujet 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."
         }
      }
}

Pour résoudre ce problème, assurez-vous que le compte de service créé automatiquement dispose des autorisations appropriées. Pour en savoir plus sur le compte de service, consultez la section Accéder à Cloud Storage et à Pub/Sub.

Destination Pub/Sub non valide

Le problème suivant se produit lorsque la destination Pub/Sub est un chemin de ressource de sujet Pub/Sub non valide.

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

Pour résoudre ce problème, assurez-vous que le sujet Pub/Sub existe et est spécifié au bon format. Consultez la section Notifications Pub/Sub pour les mises à jour de tâches pour plus d'informations.

Entrée introuvable

Le problème suivant se produit lorsque le fichier d'entrée est introuvable sur 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"
      }
   ]
}

Pour résoudre ce problème, assurez-vous que le fichier d'entrée existe, que le fichier inputUri est correct et que le compte de service de l'API Transcoder est autorisé à accéder le fichier. Si le fichier d'entrée existe dans un autre projet, vous devrez peut-être rendre le bucket Cloud Storage public (consultez la page Contrôle des accès pour Cloud Storage pour plus d'informations).

Configuration manquante

Le problème suivant se produit lorsqu'un champ de configuration de la tâche est manquant.

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

Pour résoudre ce problème, consultez le champ JobConfig mentionné dans le message d'erreur.

Valeur de configuration non valide

Le problème suivant se produit lorsque la configuration de la tâche contient une valeur non valide.

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

Pour résoudre ce problème, consultez le champ JobConfig mentionné dans le message d'erreur.

Décalage horaire non valide

Le problème suivant se produit lorsque le décalage de début ou de fin dans la configuration de la tâche n'est pas valide.

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

Pour résoudre ce problème, assurez-vous que la valeur de endTimeOffset est supérieure à startTimeOffset. Les deux décalages ne doivent pas dépasser la durée des entrées ou des sorties.

Dépassement des limites de transcodage

Le problème suivant se produit lorsqu'une entrée ou la configuration d'entrée dépasse les limites du service.

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

Pour résoudre ce problème, assurez-vous que la configuration de la tâche respecte les limites de service.

Vidéo manquante

Le problème suivant se produit lorsqu'aucun flux vidéo n'est spécifié dans la configuration ou qu'aucune vidéo n'est détectée dans le fichier d'entrée.

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

Pour résoudre ce problème, vérifiez qu'un flux vidéo est spécifié dans la configuration de la tâche et que le fichier d'entrée contient un flux vidéo.

Audio manquant

Le problème suivant se produit lorsqu'aucune piste audio n'est spécifiée dans editList ou lorsqu'aucune piste audio n'est détectée dans le fichier d'entrée.

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

Pour résoudre ce problème, vérifiez qu'une piste audio est spécifiée dans la configuration de la tâche et que le fichier d'entrée contient une piste audio.

Texte manquant

Le problème suivant se produit lorsqu'un flux de texte est spécifié, mais qu'aucune piste de texte n'est disponible dans la liste de modifications ou dans le fichier d'entrée.

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

Si une piste de texte est spécifiée dans la configuration de la tâche, assurez-vous qu'elle existe dans editList et dans le fichier d'entrée. Consultez un exemple de configuration.

Canal ou chaîne valide manquant

Le problème suivant se produit lorsque la piste d'entrée ou le canal d'une mise en correspondance de flux élémentaire ne fait pas référence à une piste ou à un canal de flux audio/texte valide.

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

Pour résoudre ce problème, vérifiez le mappage vidéo/audio/textuelle d'entrée et le mappage de flux élémentaire (voir les exemples de mappages de flux).

Entrée non compatible

Le problème suivant se produit lorsque le fichier d'entrée est corrompu ou n'est pas dans un format compatible.

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

Pour résoudre ce problème, vérifiez que le fichier d'entrée est valide et dans un format compatible.

Saisie incorrecte

Le problème suivant se produit lorsque le fichier d'entrée est mal formé et ne peut pas être décodé.

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

Pour résoudre ce problème, vérifiez que le fichier d'entrée est valide et dans un format compatible.

Erreur interne

Le problème suivant se produit lorsqu'une erreur de service interne a empêché la tâche de se terminer.

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

Pour résoudre ce problème, vérifiez que le fichier d'entrée est valide et dans un format compatible. Vérifiez que JobConfig ne contient pas d'erreurs.

Pour plus d'options d'assistance, consultez la page Assistance.