Tous les produits
Search
Centre de documentation

Intelligent Media Services:Multi-track MP4 transcoding and language tagging

Dernière mise à jour :Sep 02, 2026

Transcodez un fichier MP4 avec Intelligent Media Services (IMS) pour inclure plusieurs pistes audio et attribuer une langue à chaque piste.

Flux de travail

image

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

  1. Lisez le contenu en anglais pour comprendre CE qui doit être communiqué

  2. Rédigez le français À PARTIR DE ZÉRO — oubliez la structure de phrase anglaise

  3. Conservez exactement tout le formatage markdown, les blocs de code, les liens et les images

  4. 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 > et

  5. Appliquez strictement toutes les règles spécifiques à la langue

  6. Appliquez les règles de stopwords avec une tolérance zéro

  7. Utilisez l'impératif dans les étapes numérotées et les listes à puces procédurales

  8. Assurez la cohérence terminologique — même terme = même traduction partout

  9. Variez les débuts de phrase dans les listes/tableaux — aucun début répété 3 fois ou plus

  10. 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

    image

    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.

    Remarque

    Pour 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 Name défini dans le tableau Inputs ou AudioSelector.

    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ètre Language.

    • Configured : utilise l'étiquette de langue spécifiée dans le paramètre Language.

    • 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

    Remarque
    1. Le tableau Inputs spé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).

    2. Dans OutputGroups.GroupConfig, "Type": "File" indique que la sortie est un seul fichier conteneur.

    3. Chaque piste utilise InputRef pour spécifier son entrée source et LanguageControl pour 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

    Remarque

    Cette 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 AudioSelector pour sélectionner la piste audio étiquetée jpn à partir de l'entrée JapaneseFile . La piste audio de sortie définit LanguageControl sur InputFirst , 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 : MediaConvertComplete

    Cet é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 Success indique 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 API indique 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\"}"
    }