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 :
- Sortie dans différents formats de conteneur, y compris MPEG-4 (MP4), streaming adaptatif dynamique sur HTTP (DASH, également connu sous le nom MPEG-DASH) et HTTP Live Streaming (HLS)
- Sortie à différents débits et différentes résolutions, y compris une sortie audio uniquement
- Conversion vers un format HDR (High Dynamic Range)
- Optimiser la sortie vidéo par programmation, y compris :
- Configurer des paramètres d'encodage de bas niveau, tels que le débit
- Remixer du contenu multimédia existant à l'aide de listes d'éditions complètes
- Définissez le mode de tâche sur le mode interactif à faible latence ou le mode par lot.
- Spécifier la normalisation du volume audio
- Configurer le chiffrement de la vidéo de sortie pour prendre en charge la gestion des droits numériques et la protection du contenu
- 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.
Conteneurs compatibles pour le chiffrement de contenu
Le tableau suivant présente les conteneurs compatibles avec le chiffrement de contenu.
Protocole de streaming | Conteneur | Système DRM | Schéma de chiffrement |
---|---|---|---|
HLS | TS | ClearKey | aes128 |
HLS | TS | FairPlay | sampleAes |
HLS | fMP4 | FairPlay | mpegCenc cbcs uniquement |
MPEG-DASH | fMP4 | Widevine | mpegCenc cenc ou cbcs |
MPEG-DASH | fMP4 | PlayReady | mpegCenc cenc ou cbcs |
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 | |
---|---|
Largeur d'entrée maximale | 4 096 px |
Hauteur d'entrée maximale | 4 096 px |
Largeur de sortie maximale | 4 096 px |
Hauteur de sortie maximale | 2 160 px |
Taille totale de sortie | 400 Go |
Durée EditList maximale | 24 heures |
Nombre maximal de flux vidéo | 70 |
Nombre maximal de flux audio | 50 |
Nombre maximal de flux de texte | 50 |
Nombre maximal de flux multiplex | 100 |
Nombre maximal de fichiers manifestes | 100 |
Nombre maximal de feuilles de sprites | 10 |
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 possède un conteneur, qui est le wrapper de l'ensemble du fichier. L'API Transcoder utilise MuxStreams pour définir le conteneur. Chaque conteneur inclut un ensemble d'ElementaryStreams pour définir l'encodage des pistes vidéo, audio et de texte de sous-titres du fichier. La vidéo et l'audio sont compressés à l'aide de codecs.
Dans l'exemple suivant, la vidéo est compressée avec H.264 et l'audio avec AAC. Les deux sont placés dans un conteneur MP4.
Figure 1. Composants d'un fichier vidéo (à gauche) et exemple de fichier MP4 (à droite).
Structure du protocole de streaming
Pour les contenus multimédias en streaming, 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 différents débits. Le lecteur multimédia en streaming utilise le fichier manifeste pour sélectionner le fichier approprié, puis extrait la vidéo par tranche de quelques secondes. Chaque débit peut être un seul fichier ou plusieurs fichiers courts, en fonction de ce que le lecteur accepte.
Les différentes résolutions de contenu multimédia 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) au lieu de haute définition (HD). L'ensemble des débits, résolutions et codecs est appelé "échelle à débit adaptatif" (ABR). Les fournisseurs de contenus en streaming peuvent ajuster leur propre échelle en fonction des coûts du CDN, des types d'appareils des utilisateurs, de la bande passante dans la région et d'autres facteurs.
Figure 2. Composants d'une structure de protocole de streaming (en haut) et exemple d'implémentation 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.
Mode du job
L'API Transcoder est compatible avec deux modes de tâche : interactif et par lot.
Le mode interactif est le mode de tâche par défaut. Utilisez ce mode si vous souhaitez que le traitement des tâches commence dès que possible ou si vous souhaitez contrôler plus précisément les tâches à exécuter en premier. Dans ce mode, le quota de nombre de tâches simultanées contrôle le nombre de tâches exécutées simultanément. Une fois ce quota atteint, toutes les tâches que vous essayez de démarrer sont refusées.
Utilisez le mode par lot pour envoyer de nombreuses tâches pour lesquelles la latence de traitement n'est pas aussi critique que les tâches envoyées en mode interactif par défaut. Dans ce mode, vous pouvez spécifier la priorité de traitement des tâches pour une tâche. Les tâches envoyées en mode par lot avec la même valeur de priorité sont placées dans une file d'attente "premier arrivé, premier servi" et ont un état de tâche PENDING
en attendant d'être exécutées. Dans ce mode, le quota de nombre de tâches en attente de traitement par lot contrôle le nombre de tâches mises en file d'attente. Une fois ce quota atteint, tous les jobs que vous essayez de démarrer sont rejetés. Une tâche passe à l'état RUNNING
lorsqu'elle est exécutée. Le quota de jobs simultanés par lot contrôle le nombre de jobs exécutés simultanément.
Vous pouvez utiliser les deux modes en même temps. Aucun mode n'a la priorité sur l'autre. Pour en savoir plus sur le paramétrage du mode de tâche, consultez la section Créer des tâches en mode par lot.
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éfinitionmedia-hd0000000000.ts
: fichier de séquence vidéo en haute définition
media-sd.m3u8
: playlist pour la variante en définition standardmedia-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 uniquementvideo-only-hd0000000000.m4s
: fichier de séquence vidéo uniquement en haute définitionvideo-only-sd0000000000.m4s
: fichier de séquence vidéo uniquement en définition standard
sd.mp4
: fichier vidéo en définition standard autonomehd.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 dans le cadre de 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.
Étape suivante
- Lisez le guide de démarrage rapide.
- Découvrez comment effectuer des tâches de l'API Transcoder spécifiques.