Tous les produits
Search
Centre de documentation

:GenerateVideoPlaylist

Dernière mise à jour :Aug 07, 2026

Crée une liste de lecture de transcodage juste à temps qui génère un fichier M3U8 à partir d'un fichier vidéo, permet une lecture instantanée après la génération de la liste de lecture et effectue un transcodage à la demande en fonction de la progression de la lecture. Par rapport au transcodage hors ligne, cette opération réduit considérablement le temps d'attente du transcodage et diminue fortement les coûts de transcodage et de stockage.

Description de l'opération

  • Avant d'utiliser cette opération, assurez-vous de bien comprendre la facturation d'Intelligent Media Management et sa tarification.

  • Avant d'appeler cette opération, assurez-vous qu'un projet actif existe dans la région actuelle. Pour plus de détails, consultez Gestion des projets.

  • Par défaut, cette opération ne traite qu'un seul flux vidéo, audio ou de sous-titres. Vous pouvez configurer le nombre de flux vidéo, audio et de sous-titres à traiter.
    Important Les paramètres Video, Audio et Subtitle sous Targets ne peuvent pas être tous vides. Une valeur vide indique que le traitement correspondant est désactivé. Par exemple, si Video est vide, le traitement vidéo est désactivé et les fichiers TS de sortie ne contiennent pas de flux vidéo.
  • Cette opération requiert que la vidéo source ait une durée minimale d'environ 0,x secondes, qui varie en fonction de la fréquence d'images de sortie.

  • Cette opération prend en charge la génération de listes de lecture média et de listes de lecture principales. Prêtez attention aux descriptions des métriques dans ce document.

  • Il s'agit d'une opération synchrone. Le transcodage synchrone ou asynchrone n'est déclenché que pendant la lecture ou le pré-transcodage. Vous pouvez définir le paramètre de notification de message Notification pour obtenir le résultat de la tâche de transcodage via des notifications de message.

  • Pour plus d'informations sur cette fonctionnalité, consultez Transcodage juste à temps.

  • La capacité de traitement des données d'OSS fournit également une fonctionnalité de génération de liste de lecture, mais elle ne prend en charge que la génération de listes de lecture média avec des paramètres simplifiés. Pour plus de détails, consultez Générer une liste de lecture dans le traitement des données OSS.

Testez maintenant

Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.

Test

Autorisation RAM

Le tableau ci-dessous décrit les autorisations nécessaires pour appeler cette API. Vous pouvez les définir dans une politique Resource Access Management (RAM). Les colonnes du tableau sont détaillées ci-dessous :

  • Action : les actions peuvent être utilisées dans l'élément Action des instructions de politique de permissions RAM pour accorder les autorisations nécessaires à l'exécution de l'opération.

  • API : l'API que vous pouvez appeler pour exécuter l'action.

  • Niveau d'accès : le niveau d'accès prédéfini accordé pour chaque API. Valeurs valides : create, list, get, update et delete.

  • Type de ressource : le type de ressource qui prend en charge l'autorisation pour exécuter l'action. Il indique si l'action prend en charge les permissions au niveau de la ressource. La ressource spécifiée doit être compatible avec l'action. Sinon, la politique sera inefficace.

    • Pour les API avec permissions au niveau de la ressource, les types de ressource requis sont marqués d'un astérisque (*). Spécifiez l'Alibaba Cloud Resource Name (ARN) correspondant dans l'élément Resource de la politique.

    • Pour les API sans permissions au niveau de la ressource, la valeur All Resources est affichée. Utilisez un astérisque (*) dans l'élément Resource de la politique.

  • Clé de condition : les clés de condition définies par le service. La clé permet un contrôle granulaire, applicable aux actions seules ou aux actions associées à des ressources spécifiques. En plus des clés de condition propres au service, Alibaba Cloud fournit un ensemble de clés de condition communes applicables à tous les services pris en charge par RAM.

  • Action dépendante : les actions dépendantes requises pour exécuter l'action. Pour mener à bien l'opération, l'utilisateur RAM ou le rôle RAM doit disposer des permissions pour toutes les actions dépendantes.

imm:GenerateVideoPlaylist

none

*Project

acs:imm:{#regionId}:{#accountId}:project/{#ProjectName}

Aucune Aucune

Paramètres de requête

Paramètre

Type

Requis

Description

Exemple

ProjectName

string

Oui

Le nom du projet. Pour plus d'informations sur la façon d'obtenir le nom du projet, consultez Créer un projet.

immtest

UserData

string

Non

Les informations personnalisées renvoyées dans les notifications de message asynchrones, qui vous aident à associer les notifications de message au sein de votre système. Longueur maximale : 2 048 octets.

{"ID": "user1","Name": "test-user1","Avatar": "http://example.com?id=user1"}

SourceURI

string

Oui

L'URI OSS de la vidéo.

L'URI OSS suit le format oss://${Bucket}/${Object}, où ${Bucket} est le nom du compartiment OSS dans la même zone (région) que le projet actuel, et ${Object} est le chemin complet du fichier, y compris l'extension du nom de fichier.

Remarque

Seuls les compartiments OSS avec la classe de stockage Standard sont pris en charge. Les compartiments avec des paramètres d'accès à la liste blanche de protection contre le hotlinking ne sont pas pris en charge.

oss://test-bucket/test-source-object/video.mp4

SourceStartTime

number

Non

L'heure de début pour la génération de la liste de lecture. Unité : secondes. Valeurs valides :

  • 0 (par défaut) ou vide : commence au début de la vidéo source.

  • Supérieur à 0 : commence à partir du point temporel spécifié dans la vidéo source.

Remarque

Vous pouvez utiliser ce paramètre avec SourceDuration pour générer une liste de lecture pour une portion spécifique de la vidéo source.

0

SourceDuration

number

Non

La durée pour la génération de la liste de lecture. Unité : secondes. Valeurs valides :

  • 0 (par défaut) ou vide : continue jusqu'à la fin de la vidéo source.

  • Supérieur à 0 : continue pendant la durée spécifiée à partir de l'heure de début de la génération de la liste de lecture.

Remarque

Si le point temporel correspondant au paramètre spécifié dépasse la fin de la vidéo source, la valeur par défaut est utilisée.

0

SourceSubtitles

array<object>

Non

La liste des sous-titres à ajouter. Valeur par défaut : vide. Nombre maximal de sous-titres : 2.

object

Non

Les informations sur les sous-titres.

URI

string

Oui

L'URI OSS du sous-titre à intégrer.

L'URI OSS suit le format oss://${Bucket}/${Object}, où ${Bucket} est le nom du compartiment OSS dans la même région que le projet actuel, et ${Object} est le chemin complet du fichier.

Remarque

Le paramètre MasterURI ne doit pas être vide, et l'URI OSS oss://${Bucket}/${Object} du sous-titre à intégrer doit se trouver dans le même répertoire ou un sous-répertoire du paramètre MasterURI.

oss://test-bucket/test-object/subtitle/eng.vtt

Language

string

Non

La langue des sous-titres. La norme est ISO 639-2. Valeur par défaut : vide.

eng

MasterURI

string

Non

L'URI OSS de la liste de lecture principale.

L'URI OSS suit le format oss://${Bucket}/${Object}, où ${Bucket} est le nom du compartiment OSS dans la même région que le projet actuel, et ${Object} est le chemin complet du fichier avec l'extension « .m3u8 ».

Remarque

Si la liste de lecture contient des sous-titres en entrée ou plusieurs sorties Target, MasterURI est requis. L'URI des sous-titres ou l'URI Target doit se trouver dans le même répertoire ou un sous-répertoire de MasterURI.

oss://test-bucket/test-object/master.m3u8

Targets

array<object>

Oui

Le tableau des listes de lecture de transcodage juste à temps. Longueur maximale du tableau : 6. Chaque Target correspond au maximum à une liste de lecture média vidéo et à une ou plusieurs listes de lecture média de sous-titres.

Remarque

Si plus d'un Target est configuré, le paramètre MasterURI ne doit pas être vide.

array<object>

Non

Les détails de la tâche de transcodage juste à temps.

URI

string

Non

Le préfixe d'URI OSS des fichiers de sortie du transcodage juste à temps, y compris les fichiers M3U8 et les fichiers TS.

L'URI OSS suit le format oss://${Bucket}/${Object}, où ${Bucket} est le nom du compartiment OSS dans la même région que le projet actuel, et ${Object} est le préfixe de chemin complet du fichier sans l'extension du nom de fichier.

  • Exemple : Si l'URI est oss://test-bucket/test-object/output-video, un fichier oss://test-bucket/test-object/output-video.m3u8 et plusieurs fichiers oss://test-bucket/test-object/output-video-${token}-${index}.ts sont générés. ${token} est une chaîne de caractères unique générée en fonction des paramètres de transcodage et est incluse dans la réponse de l'API. ${index} est le numéro ordinal du fichier TS commençant à 0.

Remarque

Si le paramètre MasterURI n'est pas vide, l'URI doit se trouver dans le même répertoire ou un sous-répertoire du paramètre MasterURI.

oss://test-bucket/test-object/output-video

Container

string

Non

Le type de conteneur de segment HLS. Valeurs valides :

  • ts (par défaut)

  • mp4

ts

Video TargetVideo

Non

Les paramètres de traitement vidéo. Une valeur vide (par défaut) indique que le traitement vidéo est désactivé et que les fichiers TS de sortie ne contiennent pas de flux vidéo.

Remarque

Les champs Video et Subtitle au sein du même Target sont mutuellement exclusifs. Si le champ Video est défini, le champ Subtitle est ignoré.

Audio TargetAudio

Non

Les paramètres de traitement audio. Une valeur vide (par défaut) indique que le traitement audio est désactivé et que les fichiers TS de sortie ne contiennent pas de flux audio.

Remarque

Les champs Audio et Subtitle au sein du même Target sont mutuellement exclusifs. Si le champ Audio est défini, le champ Subtitle est ignoré. Audio et Video peuvent être définis simultanément, où Audio représente les informations audio dans la vidéo de sortie. Vous pouvez également définir uniquement Audio pour générer une sortie audio uniquement.

Subtitle TargetSubtitle

Non

Les paramètres de traitement des sous-titres.

Remarque

Le champ Subtitle est mutuellement exclusif avec les champs Video ou Audio au sein du même Target. Les sous-titres ne sont générés que lorsque Subtitle est défini seul.

TranscodeAhead

integer

Non

Le nombre de fichiers TS à transcoder à l'avance lorsque le transcodage juste à temps est déclenché. Par défaut, 2 minutes de vidéo sont transcodées à l'avance.

  • Exemple : Si Duration est 10, la valeur par défaut de TranscodeAhead est 12. Vous pouvez spécifier ce paramètre pour contrôler le nombre de fichiers de transcodage asynchrone à l'avance. Valeurs valides : [10, 30].

12

Duration

number

Non

La durée de lecture d'un seul fichier TS. Unité : secondes. Valeur par défaut : 10. Valeurs valides : [5, 15].

10

InitialTranscode

number

Non

La durée de transcodage initiale. Unité : secondes. Valeur par défaut : 30.

  • Si la valeur est 0, aucun pré-transcodage n'est effectué.

  • Si la valeur est inférieure à 0 ou dépasse la longueur de la vidéo source, la vidéo entière est transcodée initialement.

  • Si la durée spécifiée tombe au milieu d'un fichier TS, le transcodage continue jusqu'à la fin de ce fichier TS.

Remarque

Ce paramètre est principalement utilisé pour réduire le temps d'attente pour la lecture vidéo initiale et améliorer l'expérience de lecture. Si vous souhaitez remplacer les scénarios métier VOD traditionnels, essayez de transcoder initialement la vidéo entière.

30

InitialSegments

array

Non

Le tableau des durées des fichiers TS de transcodage initial. Longueur maximale du tableau : 6. Valeur par défaut : vide. Ce paramètre est indépendant du paramètre Duration.

number

Non

La durée d'un fichier TS de transcodage initial. Valeurs valides : [1, Duration].

  • Exemple : Si le tableau de durée des TS de transcodage initial est [2, 2, 4, 4, 8, 8], le fichier TS à l'index 0 a une durée de 2, l'index 1 a une durée de 2, l'index 2 a une durée de 4, l'index 3 a une durée de 4, l'index 4 a une durée de 8 et l'index 5 a une durée de 8.

Remarque

La personnalisation de durées de fichiers TS de transcodage initial plus petites rend le chargement de la vidéo plus fluide.

2

Tags

object

Non

Les balises d'objet OSS à ajouter aux fichiers TS générés. Vous pouvez utiliser les balises OSS pour contrôler le cycle de vie des fichiers OSS.

Remarque

Les valeurs de balise à ce niveau sont fusionnées avec les balises définies au niveau parent pour former les valeurs de balise pour le Target actuel. Si une balise portant le même nom existe, la valeur à ce niveau prévaut.

string

Non

La valeur de la balise.

{\"key1\":\"value1\"}

Tags

object

Non

Les balises d'objet OSS à ajouter aux fichiers TS générés. Vous pouvez utiliser les balises pour contrôler le cycle de vie des fichiers OSS.

{"key1": "value1", "key2": "value2"}

string

Non

La valeur de la balise.

{"key1": "value1", "key2": "value2"}

CredentialConfig CredentialConfig

Non

Laissez ce paramètre vide sauf si vous avez des exigences particulières.

La configuration d'autorisation pour la Chine. Ce paramètre est facultatif. Pour plus d'informations, consultez Utiliser l'autorisation chaînée pour accéder aux ressources d'autres entités.

Notification Notification

Non

La configuration de notification de message. Cliquez sur Notification pour plus de détails. Pour le format des messages de notification asynchrones, consultez Format des messages de notification asynchrones.

OverwritePolicy

string

Non

La stratégie de remplacement lorsque la liste de lecture média existe déjà. Valeurs valides :

  • overwrite (par défaut) : Remplace la liste de lecture média existante.

  • skip-existing : Ignore la génération et conserve la liste de lecture média existante.

overwrite

Éléments de réponse

Élément

Type

Description

Exemple

object

Schéma de la réponse.

RequestId

string

L'identifiant de la requête.

CA995EFD-083D-4F40-BE8A-BDF75FFF*****

Duration

number

La durée totale de la vidéo de sortie.

1082

Token

string

Le jeton de la liste de lecture principale.

92376fbb-171f-4259-913f-705f7ee0****

MasterURI

string

L'URI OSS de la liste de lecture principale.

oss://test-bucket/test-object/master.m3u8

VideoPlaylist

array<object>

La liste des fichiers de liste de lecture média vidéo.

object

Les informations sur le fichier de liste de lecture média vidéo.

Token

string

Le jeton généré pour la liste de lecture média vidéo. Vous pouvez utiliser ce paramètre pour construire les adresses des fichiers TS générés.

Remarque

Sur la base de la valeur Token renvoyée, vous pouvez construire les adresses des fichiers TS transcodés. Le format est le suivant : oss://${Bucket}/${Object}-${Token}-${Index}.ts, où oss://${Bucket}/${Object} est l'URI Target provenant des paramètres d'entrée, ${Token} est le paramètre renvoyé, et ${Index} est le numéro de séquence du fichier TS.

affe0c6042f09722fec95a21b8b******

URI

string

L'URI OSS de la liste de lecture média vidéo.

oss://test-bucket/test-object/output-video.m3u8

Resolution

string

La résolution vidéo.

640x480

FrameRate

string

La fréquence d'images vidéo.

25/1

AudioPlaylist

array<object>

La liste des fichiers de liste de lecture média audio.

object

Les informations sur le fichier de liste de lecture média audio.

Token

string

Le jeton généré pour la liste de lecture média audio. Vous pouvez utiliser ce paramètre pour construire les adresses des fichiers TS générés.

affe0c6042f09722fec95a21b8b******

URI

string

L'URI OSS de la liste de lecture média audio.

oss://test-bucket/test-object/output-audio.m3u8

Channels

integer

Le nombre de canaux audio.

1

SubtitlePlaylist

array<object>

La liste des fichiers de liste de lecture média de sous-titres.

object

Les informations sur le fichier de liste de lecture média de sous-titres.

Token

string

Le jeton généré pour la liste de lecture média de sous-titres. Vous pouvez utiliser ce paramètre pour construire les adresses des fichiers de sous-titres générés.

Remarque

Sur la base de la valeur Token renvoyée, vous pouvez construire les adresses des fichiers de sous-titres transcodés. Le format est le suivant : oss://${Bucket}/${Object}-${Token}_${Index}.ts, où oss://${Bucket}/${Object} est l'URI des sous-titres provenant des paramètres d'entrée, ${Token} est le paramètre renvoyé, et ${Index} est le numéro de séquence du sous-titre.

affe0c6042f09722fec95a21b8b******

URI

string

L'URI OSS de la liste de lecture média de sous-titres.

oss://test-bucket/test-object/output-subtitle.m3u8

Language

string

La langue du flux de sous-titres.

Remarque

La langue est obtenue à partir des informations du flux de sous-titres de la vidéo source spécifiée par SourceURI. Si la vidéo source ne contient pas d'informations de langue, une valeur vide est renvoyée.

eng

Index

integer

Le numéro du flux de sous-titres, commençant à 0.

1

Exemples

JSON format

{
  "RequestId": "CA995EFD-083D-4F40-BE8A-BDF75FFF*****",
  "Duration": 1082,
  "Token": "92376fbb-171f-4259-913f-705f7ee0****",
  "MasterURI": "oss://test-bucket/test-object/master.m3u8",
  "VideoPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-video.m3u8",
      "Resolution": "640x480",
      "FrameRate": "25/1"
    }
  ],
  "AudioPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-audio.m3u8",
      "Channels": 1
    }
  ],
  "SubtitlePlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-subtitle.m3u8",
      "Language": "eng",
      "Index": 1
    }
  ]
}

Codes d'erreur

Consultez Codes d'erreur pour la liste complète.

Notes de version

Consultez Notes de version pour la liste complète.