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
|
imm:GenerateVideoPlaylist |
none |
*Project
|
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 :
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 :
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://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.
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 |
| 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.
|
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.
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].
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 |
É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.