すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Services:マルチオーディオトラックのトランスコーディングとパッケージング

最終更新日:Sep 02, 2026

Intelligent Media Services (IMS) を使用して、複数のオーディオトラックを含むメディアファイルをトランスコーディングおよびパッケージングし、様々なデバイスやプレーヤーに対応した多言語オーディオ・ビデオコンテンツを生成します。

トランスコーディングとパッケージングのワークフロー

image

パッケージングされたファイル構造の例:

#EXTM3U

# オーディオストリーム定義 (多言語)
#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"

# ビデオストリーム定義 (マルチビットレート)
#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

前提条件

Intelligent Media Services (IMS) がアクティブ化されていることを確認してください。手順については、「IMS のアクティブ化」をご参照ください。

設定

IMS の基本設定

  • ストレージ:Object Storage Service (OSS) バケットを IMS に関連付けます。詳細については、「ストレージの場所の設定」をご参照ください。

  • コールバック:HTTP または MNS コールバックを設定して、タスクのステータス通知を受信します。詳細については、「コールバックイベントの概要」をご参照ください。

トランスコーディングテンプレートの設定

設定手順

image

要件例

コーデック:H.264/H.265

ビデオ解像度:360p/540p/720p/1080p

オーディオ:64 kbps の HE-AAC (デフォルト設定)

設定例

以下の表に基づいて、必要な解像度ごとにトランスコーディングテンプレートを作成します。手順については、「トランスコーディングテンプレートの作成」をご参照ください。

説明

Narrowband HD™ トランスコーディングを実行するには、表に基づいて対応するテンプレートを作成した後、チケットを送信して、Alibaba Cloud にバックエンド設定のアップグレードを依頼してください。

H.264

トランスコーディングテンプレート

コーデック

コンテナ形式

その他の設定

Video-360P

H.264

m3u8(.ts)

  • 解像度 (長辺固定、短辺適応):640*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-540P

H.264

m3u8(.ts)

  • 解像度 (長辺固定、短辺適応):960*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-720P

H.264

m3u8(.ts)

  • 解像度 (長辺固定、短辺適応):1280*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-1080P

H.264

m3u8(.ts)

  • 解像度 (長辺固定、短辺適応):1920*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Audio-64Kbps

HE-AAC

m3u8(.ts)

  • ビデオを無効化

  • セグメント長:5 秒

説明

このテンプレートはコンソールで作成できません。API を使用するか、チケットを送信してください。

H.265

説明
  • 推奨:fmp4 コンテナ形式を使用してください。これは Apple デバイスの標準であり、Safari に対応しています。

  • 代替:.ts コンテナ形式も使用できますが、Safari には対応していません。

  • コンソールの制限:コンソールでは fmp4 コンテナ形式のストリームを作成できません。代わりに、m3u8 (ts) コンテナ形式でストリームを作成してください。その後、Alibaba Cloud がバックエンドで設定をアップグレードします。

トランスコーディングテンプレート

コーデック

コンテナ形式

その他の設定

Video-360P

H.265

m3u8(.fmp4)

  • 解像度 (長辺固定、短辺適応):640*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-540P

H.265

m3u8(.fmp4)

  • 解像度 (長辺固定、短辺適応):960*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-720P

H.265

m3u8(.fmp4)

  • 解像度 (長辺固定、短辺適応):1280*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Video-1080P

H.265

m3u8(.fmp4)

  • 解像度 (長辺固定、短辺適応):1920*

  • オーディオを無効化

  • セグメント長:5 秒

  • 必要に応じてその他の設定をしてください。

Audio-64Kbps

HE-AAC

m3u8(.fmp4)

  • ビデオを無効化

  • セグメント長:5 秒

説明

このテンプレートはコンソールで作成できません。API を使用するか、チケットを送信してください。

マルチビットレートトランスコーディングとパッケージングタスク

マルチビットレートタスクの送信

SubmitMediaConvertJob API を呼び出して、メディアファイルのトランスコーディングタスクを送信します。

HlsGroupConfig パラメーター

パラメーター

タイプ

説明

Type

文字列

データストリームのタイプ。

有効な値:

  • video:ビデオストリーム。ビデオ関連の設定のみが処理されます。

  • audio:オーディオストリーム。オーディオ関連の設定のみが処理されます。

  • hybrid:ハイブリッドストリーム。オーディオとビデオの両方の関連設定が処理されます。

Bandwidth

文字列

帯域幅。このパラメーターは オプション です。デフォルトでは、ビットレート (bps) が使用されます。

Type が video または hybrid に設定されている場合にのみ有効です。

AudioGroup

文字列

ビデオストリームによって参照されるオーディオグループ。Type が video に設定されている場合にのみ有効です。

SubtitleGroup

文字列

ビデオストリームによって参照される字幕グループ。Type が video または hybrid に設定されている場合にのみ有効です。

Name

文字列

HLS マニフェストにおける出力ストリームの NAME 属性。Type が audio または subtitle に設定されている場合、このパラメーターは 必須 です。

Group

文字列

HLS マニフェストにおける出力ストリームの GROUP_ID 属性。Type が audio または subtitle に設定されている場合にのみ有効です。

デフォルトは Type パラメーターの値です。

Language

文字列

HLS マニフェストにおける出力ストリームの LANGUAGE 属性。Type が audio または subtitle に設定されている場合にのみ有効です。値は RFC 5646 に準拠する必要があります。

Default

ブール値

これがデフォルトのストリームかどうかを指定します。Type が audio に設定されている場合にのみ有効です。

AutoSelect

ブール値

ストリームを自動的に選択するかどうかを指定します。Type が audio に設定されている場合にのみ有効です。

Forced

ブール値

ストリームが強制されるかどうかを指定します。Type が audio に設定されている場合にのみ有効です。

ユースケース 1:トランスコーディングとパッケージング

{
  "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
          }
        }
      ]
    }
  ]
}

ユースケース 2:オーディオトラックの追加

手順:

  1. "ExtraAudio" という名前の入力を指定します。出力では、この入力を参照してオーディオ HLS ストリームにトランスコーディングします。

  2. GroupConfig の ManifestExtend オプションで InputRef を設定し、入力から "RefManifest" ファイルを参照して元のマニフェストを再利用し、追加のオーディオトラックを付加します。

{
  "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"
          }
        }
      ]
    }
  ]
}

ユースケース 3:オーディオトラックの置換

このユースケースは ユースケース 2 に基づいています。ManifestExtend 内の Excludes オプションを使用して、元のマニフェストから特定のストリームを除外します。

パラメーター

タイプ

説明

Name

文字列

除外するストリームの NAME 属性。

Type

文字列

除外するストリームの TYPE 属性。

有効な値:

  • Audio

  • Subtitle

Language

文字列

除外するストリームの LANGUAGE 属性。値は 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"
          }
        }
      ]
    }
  ]
}

タスク結果の照会

GetMediaConvertJob API を呼び出して、トランスコーディングタスクの詳細を照会します。

コールバック通知

イベントタイプ: MediaConvertComplete

このイベントはコンソールで設定できません。代わりに SetEventCallback API を呼び出してください。

主要なコールバックパラメーター

パラメーター

タイプ

必須

説明

Name

文字列

はい

メインタスクの名前。

JobId

文字列

はい

タスク ID。

Status

文字列

はい

タスクのステータス。Success は、少なくとも 1 つの出力 (サブタスク) が成功したことを示します。

TriggerSource

文字列

いいえ

タスクをトリガーしたソース。API は、タスクが API 呼び出しによって送信されたことを示します。

FinishTime

文字列

いいえ

タスクが完了した時刻。形式は EventTime と一致する必要があります。

UserData

文字列

いいえ

タスクの送信時に指定したカスタム文字列。この値はそのまま渡され、コールバックで返されます。

例

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

パッケージング済みマルチビットレートビデオの再生

ApsaraVideo Player を使用して、パッケージングされたマルチビットレートビデオを再生します。

動画翻訳とマルチビットレートパッケージングのワークフロー

image
  1. 入力の準備:ソースファイルを用意します。

  2. 翻訳:ソースファイルを英語や日本語などの目的の言語に翻訳し、対応するオーディオまたはビデオファイルを生成します。

  3. トランスコーディングとパッケージング:SubmitMediaConvertJob API を呼び出して、多言語コンテンツをマージし、標準化されたマルチビットレートビデオにトランスコーディングします。