Tous les produits
Search
Centre de documentation

Intelligent Media Services:Transcodage et packaging multipiste audio

Dernière mise à jour :Aug 11, 2026

Transcodez et packagez des fichiers multimédias contenant plusieurs pistes audio à l’aide d’Intelligent Media Services (IMS) pour générer du contenu audiovisuel multilingue compatible avec divers appareils et lecteurs.

Flux de transcodage et de packaging

image

Exemple de structure de fichier packagé :

#EXTM3U

# Audio stream definitions (multi-language)
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="Chinese",LANGUAGE="zh",DEFAULT=YES,URI="audio/chinese.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",DEFAULT=NO,URI="audio/english.m3u8"

# Video stream definitions (multi-bitrate)
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=360x640,AUDIO="audio",CODECS="hvc1,mp4a.40.5"
video/360p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=900000,RESOLUTION=720x1280,AUDIO="audio",CODECS="hvc1,mp4a.40.5"
video/720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1080x1920,AUDIO="audio",CODECS="hvc1,mp4a.40.5"
video/1080p.m3u8

Prérequis

Vérifiez qu’Intelligent Media Services (IMS) est activé. Pour plus d’informations, consultez Activer IMS.

Configuration

Configuration de base d’IMS

Configuration des modèles de transcodage

Procédure de configuration

image

Exemple de besoins

Codec : H.264/H.265

Résolution vidéo : 360p/540p/720p/1080p

Audio : HE-AAC à 64 kbit/s (configuration par défaut).

Exemple de configuration

Créez des modèles de transcodage pour chaque résolution vidéo requise en vous basant sur les tableaux suivants. Pour obtenir des instructions, consultez Créer un modèle de transcodage.

Remarque

Pour effectuer un transcodage Narrowband HD™, créez les modèles correspondants selon le tableau, puis ouvrez un ticket afin qu’Alibaba Cloud mette à niveau votre configuration backend.

H.264

Modèle de transcodage

Codec

Format de conteneur

Autres paramètres

Video-360P

H.264

m3u8(.ts)

  • Résolution (bord long fixe, bord court adaptatif) : 640*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-540P

H.264

m3u8(.ts)

  • Résolution (bord long fixe, bord court adaptatif) : 960*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-720P

H.264

m3u8(.ts)

  • Résolution (bord long fixe, bord court adaptatif) : 1280*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-1080P

H.264

m3u8(.ts)

  • Résolution (bord long fixe, bord court adaptatif) : 1920*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Audio-64Kbps

HE-AAC

m3u8(.ts)

  • Désactiver la vidéo

  • Durée de segment : 5 s

Remarque

Ce modèle ne peut pas être créé dans la console. Utilisez l’API ou ouvrez un ticket à la place.

H.265

Remarque
  • Recommandation : utilisez le format de conteneur fmp4. Standard pour les appareils Apple, il est compatible avec Safari.

  • Alternative : le format de conteneur .ts est également utilisable, mais incompatible avec Safari.

  • Limitation de la console : la création d’un flux au format de conteneur fmp4 est impossible via la console. Créez plutôt le flux au format m3u8(ts). Alibaba Cloud mettra ensuite à niveau la configuration dans le backend.

Modèle de transcodage

Codec

Format de conteneur

Autres paramètres

Video-360P

H.265

m3u8(.fmp4)

  • Résolution (bord long fixe, bord court adaptatif) : 640*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-540P

H.265

m3u8(.fmp4)

  • Résolution (bord long fixe, bord court adaptatif) : 960*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-720P

H.265

m3u8(.fmp4)

  • Résolution (bord long fixe, bord court adaptatif) : 1280*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Video-1080P

H.265

m3u8(.fmp4)

  • Résolution (bord long fixe, bord court adaptatif) : 1920*

  • Désactiver l’audio

  • Durée de segment : 5 s

  • Configurez les autres paramètres selon vos besoins.

Audio-64Kbps

HE-AAC

m3u8(.fmp4)

  • Désactiver la vidéo

  • Durée de segment : 5 s

Remarque

Ce modèle ne peut pas être créé dans la console. Utilisez l’API ou ouvrez un ticket à la place.

Tâche de transcodage et de packaging multi-débit

Soumission d’une tâche multi-débit

Appelez l’opération SubmitMediaConvertJob pour soumettre une tâche de transcodage concernant vos fichiers multimédias.

Paramètres HlsGroupConfig

Paramètre

Type

Description

Type

string

Type du flux de données.

Valeurs valides :

  • video : flux vidéo. Seuls les paramètres liés à la vidéo sont traités.

  • audio : flux audio. Seuls les paramètres liés à l’audio sont traités.

  • hybrid : flux hybride. Les paramètres audio et vidéo sont tous deux traités.

Bandwidth

string

Bande passante. Ce paramètre est facultatif. Par défaut, le débit binaire (en bps) est utilisé.

Valide uniquement lorsque Type est défini sur video ou hybrid.

AudioGroup

string

Groupe audio référencé par le flux vidéo. Valide uniquement lorsque Type est défini sur video.

SubtitleGroup

string

Groupe de sous-titres référencé par le flux vidéo. Valide uniquement lorsque Type est défini sur video ou hybrid.

Name

string

Attribut NAME du flux de sortie dans le manifeste HLS. Ce paramètre est obligatoire lorsque Type est défini sur audio ou subtitle.

Group

string

Attribut GROUP_ID du flux de sortie dans le manifeste HLS. Ce paramètre est valide uniquement lorsque Type est défini sur audio ou subtitle.

La valeur par défaut correspond à celle du paramètre Type.

Language

string

Attribut LANGUAGE du flux de sortie dans le manifeste HLS. Ce paramètre est valide uniquement lorsque Type est défini sur audio ou subtitle. La valeur doit être conforme à la norme RFC 5646.

Default

boolean

Indique s’il s’agit du flux par défaut. Valide uniquement lorsque Type est défini sur audio.

AutoSelect

boolean

Indique si le flux doit être sélectionné automatiquement. Valide uniquement lorsque Type est défini sur audio.

Forced

boolean

Indique si le flux est forcé. Valide uniquement lorsque Type est défini sur audio.

Cas d’utilisation 1 : transcodage et packaging

{
  "Inputs": [
    {
      "Name": "video",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<your-bucket>.<public-endpoint>/<video_1_chinese.mp4>"
      }
    },
    {
      "Name": "EnglishAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<your-bucket>.<public-endpoint>/<video_1_english.mp4>"
      }
    },
    {
      "Name": "JapaneseAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<your-bucket>.<public-endpoint>/<video_1_japanese.mp4>"
      }
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "Hls",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "https://<your-bucket>.<public-endpoint>/<URI>/"
        },
        "ManifestName": "<m3u8_filename>"
      },
      "Outputs": [
        {
          "Name": "360P",
          "InputRef": "video",
          "OutputFileName": "video/360p/360p",
          "TemplateId": "Video-360P"
        },
        {
          "Name": "540P",
          "InputRef": "video",
          "OutputFileName": "video/540p/540p",
          "TemplateId": "Video-540P"
        },
        {
          "Name": "720P",
          "InputRef": "video",
          "OutputFileName": "video/720p/720p",
          "TemplateId": "Video-720P"
        },
        {
          "Name": "1080P",
          "InputRef": "video",
          "OutputFileName": "video/1080p/1080p",
          "TemplateId": "Video-1080P"
        },
        {
          "OutputFileName": "audio/chinese/chinese",
          "TemplateId": "Audio-64Kbps",
          "HlsGroupConfig": {
            "Name": "Chinese",
            "Type":"audio",
            "Language": "zh",
            "Autoselect": "TRUE",
            "Default": "TRUE"
          }
        },
        {
          "InputRef": "EnglishAudio",
          "OutputFileName": "audio/english/english",
          "TemplateId": "Audio-64Kbps",
          "HlsGroupConfig": {
            "Name": "English",
            "Type":"audio",
            "Language": "en",
            "Autoselect": "TRUE"
          }
        },
        {
          "InputRef": "JapaneseAudio",
          "OutputFileName": "audio/japanese/japanese",
          "TemplateId": "Audio-64Kbps",
          "HlsGroupConfig": {
            "Name": "Japanese",
            "Type":"audio",
            "Language": "ja",
            "Autoselect": "TRUE"
                    }
                }
            ]
        }
    ]
}

Cas d’utilisation 2 : ajout de pistes audio

Procédure :

  1. Spécifiez une entrée nommée « ExtraAudio ». Dans la sortie, référencez cette entrée pour la transcoder en un flux audio HLS.

  2. Définissez InputRef dans l’option ManifestExtend de GroupConfig afin de référencer le fichier « RefManifest » provenant de l’entrée et réutiliser le manifeste d’origine pour ajouter des pistes audio supplémentaires.

{
  "Inputs": [
    {
      "Name": "ExtraAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "http://your-bucket.oss-region.aliyuncs.com/in/extra-audio.mp4"
      }
    },
    {
      "Name": "RefManifest",
      "InputFile": {
        "Type": "OSS",
        "Media": "http://your-bucket.oss-region.aliyuncs.com/in/manifest.m3u8"
      }
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "Hls",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "http://your-bucket.oss-region.aliyuncs.com/out/demo"
        },
        "ManifestName": "manifest",
        "ManifestExtend": {
          "InputRef": "RefManifest"
        }
      },
      "Outputs": [
        {
          "Name": "ExtraAudioOut",
          "InputRef": "ExtraAudio",
          "OutputFileName": "extra-audio",
          "TemplateId": "#YourAudioTemplateId",
          "hlsGroupConfig": {
            "Type": "audio",
            "Name":"Chinese",
            "Language": "zh-cn"
          }
        }
      ]
    }
  ]
}

Cas d’utilisation 3 : remplacement de pistes audio

Ce scénario s’appuie sur le cas d’utilisation 2. Utilisez l’option Excludes dans ManifestExtend pour exclure des flux spécifiques du manifeste d’origine.

Paramètre

Type

Description

Name

string

Attribut NAME du flux à exclure.

Type

string

Attribut TYPE du flux à exclure.

Valeurs valides :

  • Audio

  • Subtitle

Language

string

Attribut LANGUAGE du flux à exclure. La valeur doit être conforme à la norme RFC 5646.

{
  "Inputs": [
    {
      "Name": "ExtraAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "http://your-bucket.oss-region.aliyuncs.com/in/extra-audio.mp4"
      }
    },
    {
      "Name": "RefManifest",
      "InputFile": {
        "Type": "OSS",
        "Media": "http://your-bucket.oss-region.aliyuncs.com/in/manifest.m3u8"
      }
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "Hls",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "http://your-bucket.oss-region.aliyuncs.com/out/demo"
        },
        "ManifestName": "manifest",
        "ManifestExtend": {
          "InputRef": "RefManifest",
          "Excludes": [{
              "Language": "en",
              "Type": "Audio"
            }]
        }
      },
      "Outputs": [
        {
          "Name": "ExtraAudioOut",
          "InputRef": "ExtraAudio",
          "OutputFileName": "extra-audio",
          "TemplateId": "#YourAudioTemplateId",
          "hlsGroupConfig": {
            "Type": "audio",
            "Name":"Chinese",
            "Language": "zh-cn"
          }
        }
      ]
    }
  ]
}

Interrogation des résultats de la tâche

Appelez l’opération GetMediaConvertJob pour obtenir les détails d’une tâche de transcodage.

Notifications de rappel

Type d’événement : MediaConvertComplete

Cet événement ne peut pas être configuré dans la console. Appelez plutôt l’opération SetEventCallback.

Paramètres clés du rappel

Paramètre

Type

Obligatoire

Description

Name

String

Oui

Nom de la tâche principale.

JobId

String

Oui

ID de la tâche.

Status

String

Oui

État de la tâche. La valeur Success indique qu’au moins une sortie (sous-tâche) a réussi.

TriggerSource

String

Non

Source ayant déclenché la tâche. La valeur API signifie que la tâche a été soumise via un appel API.

FinishTime

String

Non

Heure de fin de la tâche. Le format doit correspondre à celui d’EventTime.

UserData

string

Non

Chaîne personnalisée spécifiée lors de la soumission de la tâche. Cette valeur est transmise telle quelle et renvoyée dans le rappel.

Exemple

{
	"FinishTime": "2025-05-09T08:03:21Z",
	"JobId": "your-job-id",
	"Status": "Success",
	"TriggerSource": "IceWorkflow",
	"UserData": "{\"ImsSrc\":\"Workflow\",\"TaskId\":\"e89a955d88ca47f0b9b79c562e5c622f\"}"
}

Lecture de la vidéo packagée multi-débit

Utilisez ApsaraVideo Player pour lire la vidéo packagée multi-débit.

Flux de traduction vidéo et de packaging multi-débit

image
  1. Préparez les entrées : fournissez le fichier source.

  2. Traduisez : traduisez le fichier source vers les langues cibles, telles que l’anglais et le japonais, afin de générer les fichiers audio ou vidéo correspondants.

  3. Transcodez et packagez : appelez l’opération SubmitMediaConvertJob pour fusionner le contenu multilingue et le transcoder en une vidéo standardisée multi-débit.