Transcodez un fichier MP4 avec Intelligent Media Services (IMS) pour inclure plusieurs pistes audio et attribuer une langue à chaque piste.
Flux de travail
Exemple de structure du fichier de sortie :
Duration: 00:00:31.40, start: 0.000000, bitrate: 816 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 960x540 [SAR 1:1 DAR 16:9], 663 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Stream #0:1[0x2](zho): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
Stream #0:2[0x3](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
Stream #0:3[0x4](jpn): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
Prérequis
Vous avez activé Intelligent Media Services (IMS). Pour plus d'informations, consultez la rubrique Activation du service.
Instructions
Lisez le contenu en anglais pour comprendre CE qui doit être communiqué
Rédigez le français À PARTIR DE ZÉRO — oubliez la structure de phrase anglaise
Conservez exactement tout le formatage markdown, les blocs de code, les liens et les images
Balises xref (
<a data-tag="xref" ...>texte</a>) — conservez la balise ENTIERE avec tous ses attributs dans l'ordre et la casse d'origine, traduisez UNIQUEMENT le texte visible entre > etAppliquez strictement toutes les règles spécifiques à la langue
Appliquez les règles de stopwords avec une tolérance zéro
Utilisez l'impératif dans les étapes numérotées et les listes à puces procédurales
Assurez la cohérence terminologique — même terme = même traduction partout
Variez les débuts de phrase dans les listes/tableaux — aucun début répété 3 fois ou plus
-
Renvoyez UNIQUEMENT le document markdown français, sans explication
Prérequis
Configuration de base d'IMS
Configuration du stockage : associez un bucket Object Storage Service (OSS) à IMS. Pour plus d'informations, consultez la rubrique Configurer une adresse de stockage.
Configuration des rappels : configurez un rappel HTTP ou Message Notification Service (MNS) pour recevoir les notifications d'état des tâches. Pour en savoir plus sur les méthodes de rappel et les événements, consultez la rubrique Présentation des événements de rappel.
Modèles de transcodage
Procédure
Exigences de l'exemple
Codec : H.264/H.265
Résolution vidéo : 360p/540p/720p/1080p
Audio : HE-AAC à 64 kbps (configuration par défaut).
Exemple de configuration
Créez des modèles de transcodage pour les quatre résolutions vidéo décrites ci-dessous. Pour obtenir des instructions, consultez la rubrique Créer un modèle de transcodage.
RemarquePour utiliser le transcodage Narrowband HD™, créez un modèle correspondant en vous basant sur les tableaux. Ensuite, soumettez un ticket afin de demander à Alibaba Cloud une mise à niveau de la configuration backend.
H.264
Modèle de transcodage
Codec
Format de conteneur
Autres paramètres
Video-360P
H.264
mp4
Résolution (bord long fixé) : 640*
Configurez les autres paramètres selon vos besoins.
Video-540P
H.264
mp4
Résolution (bord long fixé) : 960*
Configurez les autres paramètres selon vos besoins.
Video-720P
H.264
mp4
Résolution (bord long fixé) : 1280*
Configurez les autres paramètres selon vos besoins.
Video-1080P
H.264
mp4
Résolution (bord long fixé) : 1920*
Configurez les autres paramètres selon vos besoins.
H.265
Modèle de transcodage
Codec
Format de conteneur
Autres paramètres
Video-360P
H.265
mp4
Résolution (bord long fixé) : 640*
Configurez les autres paramètres selon vos besoins.
Video-540P
H.265
mp4
Résolution (bord long fixé) : 960*
Configurez les autres paramètres selon vos besoins.
Video-720P
H.265
mp4
Résolution (bord long fixé) : 1280*
Configurez les autres paramètres selon vos besoins.
Video-1080P
H.265
mp4
Résolution (bord long fixé) : 1920*
Configurez les autres paramètres selon vos besoins.
Soumettre une tâche de transcodage
Appelez l'opération d'API SubmitMediaConvertJob pour soumettre une tâche de transcodage.
Paramètres audio
Parameter
Type
Description
InputRef
String
Le nom du flux d'entrée pour cette piste audio. Il doit correspondre à un
Namedéfini dans le tableauInputsouAudioSelector.LanguageControl
String
Contrôle la manière dont l'étiquette de langue est définie pour le flux de sortie. Valeurs valides :
InputFirst: utilise l'étiquette de langue du flux d'entrée. Si le flux d'entrée ne comporte aucune étiquette de langue, le service utilise l'étiquette spécifiée dans le paramètreLanguage.Configured: utilise l'étiquette de langue spécifiée dans le paramètreLanguage.None: n'ajoute aucune étiquette de langue. Il s'agit de la valeur par défaut.
Language
String
Le code de langue ISO 639-2 pour la piste audio.
Remove
String
Indique si le flux audio doit être supprimé.
Codec
String
Le codec audio.
Profile
String
Le profil d'encodage audio.
Bitrate
String
Le débit binaire de l'audio de sortie.
Samplerate
String
La fréquence d'échantillonnage.
Channels
String
Le nombre de canaux audio.
Volume
Object
Les paramètres de contrôle du volume.
Scénario 1 : Conserver l'audio d'origine
RemarqueLe tableau
Inputsspécifie trois sources : un fichier vidéo principal avec l'audio par défaut (video), un fichier audio anglais distinct (EnglishAudio) et un fichier audio japonais distinct (JapaneseAudio).Dans
OutputGroups.GroupConfig,"Type": "File"indique que la sortie est un seul fichier conteneur.Chaque piste utilise
InputRefpour spécifier son entrée source etLanguageControlpour déterminer sa logique d'étiquetage linguistique.
{ "Inputs": [ { "Name": "video", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<video-with-default-audio.mp4>"} }, { "Name": "EnglishAudio", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<english-audio.mp4>"} }, { "Name": "JapaneseAudio", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<japanese-audio.mp4>"} } ], "OutputGroups": [ { "GroupConfig": { "Type": "File", "OutputFileBase": { "Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<output-path>/" } }, "Outputs": [ { "Name": "360P", "OutputFileName": "video/360p/360p", "TemplateId": "Video-360P", "OverrideParams": { "Audios": [ { "InputRef": "video", "LanguageControl": "InputFirst" }, { "InputRef": "EnglishAudio", "LanguageControl": "Configured", "Language": "eng" }, { "InputRef": "JapaneseAudio", "LanguageControl": "Configured", "Language": "jpn" } ] } } ] } ] }Scénario 2 : Supprimer l'audio d'origine
RemarqueCette configuration est similaire au Scénario 1, mais elle omet la référence à la piste audio de la vidéo d'origine dans le tableau
Audios. Par conséquent, le fichier de sortie contient uniquement les pistes audio anglaise et japonaise.{ "Inputs": [ { "Name": "video", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<video-with-default-audio.mp4>"} }, { "Name": "EnglishAudio", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<english-audio.mp4>"} }, { "Name": "JapaneseAudio", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<japanese-audio.mp4>"} } ], "OutputGroups": [ { "GroupConfig": { "Type": "File", "OutputFileBase": { "Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<output-path>/" } }, "Outputs": [ { "Name": "360P", "OutputFileName": "video/360p/360p", "TemplateId": "Video-360P", "OverrideParams": { "Audios": [ { "InputRef": "EnglishAudio", "LanguageControl": "Configured", "Language": "eng" }, { "InputRef": "JapaneseAudio", "LanguageControl": "Configured", "Language": "jpn" } ] } } ] } ] }Scénario 3 : Sélectionner l'audio par langue
Cet exemple utilise le paramètre
AudioSelectorpour sélectionner la piste audio étiquetéejpnà partir de l'entréeJapaneseFile. La piste audio de sortie définitLanguageControlsurInputFirst, ce qui permet d'hériter de l'étiquette de langue de l'entrée.{ "Inputs": [ { "Name": "video", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<video-with-default-audio.mp4>"} }, { "Name": "EnglishAudio", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<english-audio.mp4>"} }, { "Name": "JapaneseFile", "InputFile": {"Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<multilingual-file.mp4>"}, "AudioSelector": [{ "Name": "JapaneseAudio", "Rule": "tag", "TagConfig": {"language": "jpn"} }] } ], "OutputGroups": [ { "GroupConfig": { "Type": "File", "OutputFileBase": { "Type": "OSS", "Media": "https://<your-bucket>.<public-endpoint>/<output-path>/" } }, "Outputs": [ { "Name": "360P", "OutputFileName": "video/360p/360p", "TemplateId": "Video-360P", "OverrideParams": { "Audios": [ { "InputRef": "video", "LanguageControl": "InputFirst" }, { "InputRef": "EnglishAudio", "LanguageControl": "Configured", "Language": "eng" }, { "InputRef": "JapaneseAudio", "LanguageControl": "InputFirst" } ] } } ] } ] }Interroger la tâche de transcodage
Appelez l'opération d'API GetMediaConvertJob pour récupérer les détails d'une tâche de transcodage.
Événement de rappel
Type d'événement :
MediaConvertCompleteCet événement n'est pas configurable dans la console. Configurez-le en appelant l'opération d'API SetEventCallback.
Principaux paramètres de rappel
Paramètre
Type
Obligatoire
Description
Name
String
Oui
Le nom de la tâche parente.
JobId
String
Oui
L'ID de la tâche.
Status
String
Oui
L'état de la tâche. La valeur
Successindique que la tâche s'est terminée avec succès. La tâche parente est considérée comme réussie si au moins une sous-tâche aboutit.TriggerSource
String
Non
La source du déclencheur. La valeur
APIindique que la tâche a été envoyée via un appel d'API.FinishTime
String
Non
L'heure de fin au format UTC :
yyyy-MM-ddTHH:mm:ssZ.UserData
String
Non
Données personnalisées spécifiées lors de l'envoi de la tâche, transmises et renvoyées dans le rappel.
Exemple
{ "FinishTime": "2025-05-09T08:03:21Z", "JobId": "5d37357cb3a44d10ba33c52760c896cd", "Status": "Success", "TriggerSource": "IceWorkflow", "UserData": "{\"ImsSrc\":\"Workflow\",\"TaskId\":\"e89a955d88ca47f0b9b79c562e5c622f\"}" }