Présentation de l'API Transcoder

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page fournit une présentation technique de l'API Transcoder, y compris les fonctionnalités, la terminologie et les concepts utiles. L'API Transcoder implémente une API REST et RPC qui vous permet d'envoyer, de surveiller et de gérer des tâches de transcodage dans Google Cloud. Pour envoyer des tâches à l'aide de l'API Transcoder, vous devez d'abord importer les éléments multimédias dans Cloud Storage. Après le traitement d'une tâche, l'API Transcoder enregistre le contenu multimédia obtenu dans Cloud Storage.

Fonctionnalités

L'API Transcoder est compatible avec les fonctionnalités suivantes :

  • Insérer des images clés pour permettre aux clients du lecteur vidéo d'insérer des annonces
  • Créer des miniatures à partir d'une fiche technique sur les images vidéo générée
  • Créer des modèles de tâches pour enregistrer et réutiliser des configurations personnalisées ou complexes pour les tâches de transcodage
  • Pour en savoir plus sur les normes MP4 et MPEG-DASH, consultez le site Web de Moving Picture Experts Group. Pour en savoir plus sur la norme HLS, consultez la page HTTP Live Streaming.

    Contrôle des accès

    Le modèle de contrôle des accès de l'API Transcoder est basé sur Identity and Access Management (IAM) de Google. Les autorisations IAM vous permettent de contrôler avec précision la manière dont les données multimédias peuvent être traitées, et par qui.

    Limites

    Le tableau suivant indique les limites par tâche de transcodage.

    Limites des tâches
    Taille totale d'entrée400 Go
    Taille totale de sortie400 Go
    Durée EditList maximale24 heures
    Nombre maximal de flux vidéo30
    Nombre maximal de flux audio50
    Nombre maximal de flux de texte50
    Nombre maximal de flux multiplex100
    Nombre maximal de fichiers manifestes100
    Nombre maximal de feuilles de sprites10

    Concepts

    Cette section présente des concepts importants concernant les fichiers vidéo et leur utilisation avec l'API Transcoder.

    Composants d'un fichier vidéo

    Chaque fichier vidéo contient un conteneur, qui est le wrapper de l'intégralité du fichier. L'API Transcoder définit le conteneur à l'aide de MuxStreams. Chaque conteneur comprend un ensemble d'éléments ElementaryStreams permettant de définir l'encodage des pistes audio de vidéos, audio et de sous-titres pour le fichier. Les fichiers vidéo et audio sont compressés à l'aide de codecs.

    Dans l'exemple suivant, la vidéo est compressée au format H.264 et le contenu audio est compressé au format AAC. Les deux sont placés dans un conteneur MP4.

    Composants d'un fichier vidéo et exemple
    Figure 1. Composants d'un fichier vidéo (à gauche) et exemple de fichier MP4 (à droite)

    Structure du protocole de streaming

    Pour les médias diffusés en direct, les fournisseurs de contenu encodent le même contenu à plusieurs débits (mesurés en kilobits par seconde). Le fournisseur génère ensuite un fichier manifeste qui pointe vers les différents fichiers avec des débits différents. Le lecteur multimédia de streaming utilise le fichier manifeste pour sélectionner le fichier approprié, puis extrait la vidéo quelques secondes à la fois. Chaque débit peut être un ou plusieurs fichiers courts, en fonction de la compatibilité du lecteur.

    Différentes résolutions de médias sont généralement encodées pour cibler différents débits. Par exemple, les débits inférieurs sont encodés en définition standard (SD) et non en haute définition (HD). L'ensemble de débits, de résolutions et de codecs est appelé "échelle de débit adaptatif". Les fournisseurs de contenu en streaming peuvent régler leur propre échelle en fonction des coûts CDN, des types d'appareils des utilisateurs, de la bande passante dans la région et d'autres facteurs.

    Composants d'une structure de protocole de traitement par flux et exemple
    Figure 2. Composants d'une structure de protocole de traitement par flux (en haut) et exemple d'implémentation de HTTP Live Streaming (HLS) (en bas)

    Terminologie

    Cette section fournit un glossaire contenant des termes utiles pour l'utilisation de l'API Transcoder.

    Coupure publicitaire

    Une coupure publicitaire est une courte annonce qui apparaît avant ou pendant la lecture d'un contenu multimédia. L'API Transcoder accepte une image clé de coupure publicitaire dans la configuration de la tâche. L'API Transcoder n'insère ou ne diffuse aucune publicité, et n'arrête pas la lecture des contenus multimédias. Les clients du lecteur vidéo sont responsables du traitement de l'image clé.

    Atom

    Un élément atom est une structure de données fondamentale permettant de définir les métadonnées et l'emplacement d'une vidéo. Une vidéo peut comprendre une hiérarchie imbriquée complexe de différents types d'élément atom, y compris des éléments atom audio, d'édition et de texte.

    Élément atom audio

    Un élément atom audio associe l'audio d'un flux élémentaire à une liste d'éditions.

    Type de codec et profil

    Lorsque vous sélectionnez le codec pour un flux vidéo, vous spécifiez le type de codec, tel que H.264, et le profil, par exemple le profil high par défaut.

    Conteneur

    Un conteneur est un wrapper qui décrit la relation entre les différents composants d'un flux multiplexé, y compris les fichiers multimédias et les métadonnées. L'API Transcoder est compatible avec les formats de conteneurs MP4, MPEG-DASH et HLS.

    Élément atom d'édition

    Un élément atom d'édition définit les décalages de début et de fin pour les segments spécifiques d'un flux que vous souhaitez combiner dans une liste d'éditions.

    Modifier la liste

    Une liste d'éditions définit une séquence d'éditions sous la forme d'une chronologie pour le fichier ou le fichier manifeste résultant d'une tâche de transcodage.

    Flux élémentaire

    Un flux élémentaire est un encodage d'un fichier d'entrée, par exemple une piste audio, vidéo ou de texte de sous-titres. Vous devez empaqueter les flux élémentaires avant de mapper et de partager le flux avec différents formats de sortie.

    Codage entropique

    Le codage entropique est une forme de compression sans perte compatible avec l'API Transcoder. Lors de la configuration des tâches, vous pouvez spécifier le codeur entropique CAVLC (Context-Adaptive Variable-Length Coding) ou CABAC (Context-Adaptive Binary Arithmetic Coding).

    Tâche

    Une tâche est l'unité de base pour la gestion du travail à réaliser avec l'API Transcoder. Lorsque vous envoyez une tâche à l'API Transcoder, elle est traitée de manière asynchrone dans un emplacement géographique également appelé région. Vous pouvez répertorier et gérer toutes les tâches d'une région.

    Le cycle de vie d'une tâche comprend trois étapes : préparer, transcoder et empaqueter.

    • Préparer
      • Télécharger les entrées depuis Cloud Storage
      • Analyser les entrées
      • Valider les entrées
    • Transcoder
      • Exécuter des opérations de transcodage sur les entrées
    • Empaqueter
      • Entrées d'assemblage
      • Entrées multiplex
      • Importer les sorties dans Cloud Storage

    Une tâche possède un état mis à jour. Le service signale les erreurs à l'aide du champ error.

    Configuration de la tâche

    Une configuration de tâche représente un grand nombre des paramètres que vous pouvez personnaliser lors de la création et de l'envoi d'une tâche à l'API Transcoder. Vous pouvez spécifier des paramètres de configuration tels que des listes d'éditions et l'endroit où insérer des tags de coupure publicitaire dans un fichier manifeste de sortie. Vous pouvez créer des configurations de tâches réutilisables en tant que modèles de tâches à utiliser dans une région Google Cloud.

    Modèle de tâche

    Par défaut, l'API Transcoder applique un modèle prédéfini appelé preset/web-hd pour renseigner une configuration de tâche. Cette configuration de tâche génère les fichiers de sortie suivants :

    • manifest.m3u8 : la playlist principale pour un flux multimédia HLS. Ce fichier contient des références à des playlists pour la variante en haute définition (HD) de la sortie et la variante en définition standard (SD) de la sortie.
      • media-hd.m3u8 : playlist pour la variante en haute définition
        • media-hd0000000000.ts : fichier de séquence vidéo en haute définition
      • media-sd.m3u8 : playlist pour la variante en définition standard
        • media-sd0000000000.ts : fichier de séquence vidéo en définition standard
    • manifest.mpd : playlist pour un flux multimédia MPEG-DASH. Ce fichier contient des références aux fichiers de séquence vidéo uniquement et de séquence audio uniquement.
      • audio-only0000000000.m4s : fichier de séquence audio uniquement
      • video-only-hd0000000000.m4s : fichier de séquence vidéo uniquement en haute définition
      • video-only-sd0000000000.m4s : fichier de séquence vidéo uniquement en définition standard
    • sd.mp4 : fichier vidéo en définition standard autonome
    • hd.mp4 : fichier vidéo en haute définition autonome

    Vous pouvez créer et gérer vos propres modèles de tâche personnalisés et les spécifier lors de la création des tâches.

    Prétraitement

    Le prétraitement est l'étape d'une tâche qui a lieu avant le transcodage principal.

    Configuration du prétraitement

    Une configuration de prétraitement représente les paramètres que vous pouvez appliquer à une vidéo avant l'étape de transcodage d'une tâche. Vous pouvez appliquer un recadrage ou une marge intérieure à cette configuration.

    Mode de contrôle du taux

    Le mode de contrôle du taux indique si une tâche doit être traitée à l'aide du mode CRF (facteur de taux constant) ou VBR (taux variable). Le mode CRF garantit une qualité constante tout au long des ressources multimédias traitées. Le mode VBR optimise le processus d'encodage afin de réduire la taille de fichier des ressources multimédias traitées. Pour les cas d'utilisation par flux, sélectionnez le mode de contrôle du taux VBR. À des fins d'archivage, sélectionnez le mode de contrôle du taux CRF.

    Fichier manifeste

    Un fichier manifeste est une description du contenu et des métadonnées disponibles d'un flux multimédia adaptatif vers un client. Dans l'API Transcoder, vous pouvez configurer une tâche pour générer un fichier manifeste avec un nom de fichier, une liste de flux multiplexés ainsi que le type du fichier manifeste, qui doit être au format HLS ou MPEG-DASH.

    Élément atom de texte

    Un élément atom de texte mappe le texte d'un flux élémentaire à une liste d'éditions.

    Flux de texte

    Un flux de texte encode les données de texte associées à une vidéo, telles que des sous-titres.

    Étapes suivantes