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

Intelligent Media Services:マルチ音声トラックのトランスコードおよびパッケージング

最終更新日:Apr 29, 2026

このドキュメントでは、Intelligent Media Services (IMS) を使用して複数の音声トラックを含むメディアファイルをトランスコードおよびパッケージングし、さまざまなデバイスやプレーヤーと互換性のある多言語対応の音声・映像コンテンツを生成する方法について説明します。

トランスコードおよびパッケージングのワークフロー

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

#EXTM3U

# 音声ストリーム定義(多言語)
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="中文",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 コールバックを構成します。コールバック方式およびイベントの詳細については、「コールバックイベントの概要」をご参照ください。

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

構成手順

要件例

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

映像解像度:360p/540p/720p/1080p

音声:64 kbps の HE-AAC(デフォルト構成)

構成例

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

説明

狭帯域 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 操作を呼び出して、ご利用の映像または音声ファイルのトランスコードタスクを IMS に送信します。

HlsGroupConfig パラメーター

パラメーター

タイプ

説明

Type

string

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

有効値:

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

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

  • hybrid:ハイブリッドストリーム。音声および映像関連の設定が両方とも処理されます。

Bandwidth

string

帯域幅。このパラメーターは任意です。デフォルトではビットレート(bps 単位)が使用されます。

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

AudioGroup

string

ビデオストリームが参照する音声グループ。Typevideo に設定されている場合にのみ有効です。

SubtitleGroup

string

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

Name

string

HLS マニフェスト内の出力ストリームの NAME 属性。Typeaudio または subtitle に設定されている場合は必須です。

Group

string

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

デフォルトでは Type パラメーターの値が使用されます。

Language

string

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

Default

boolean

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

AutoSelect

boolean

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

Forced

boolean

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

ユースケース 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

string

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

Type

string

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

有効値:

  • Audio

  • Subtitle

Language

string

除外するストリームの 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 操作を呼び出して、トランスコードタスクの詳細を取得します。

コールバック通知

イベントタイプ:MediaConvertComplete

構成方法:このイベントはコンソールで構成できません。SetEventCallback 操作を呼び出して設定してください。

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

パラメーター

タイプ

必須

説明

Name

String

はい

メインタスクの名前。

JobId

String

はい

タスク ID。

Status

String

はい

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

TriggerSource

String

いいえ

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

FinishTime

String

いいえ

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

UserData

string

いいえ

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

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

マルチビットレートパッケージ化映像の再生

ApsaraVideo Player を使用して、パッケージ化されたマルチビットレート映像を再生します。

映像翻訳およびマルチビットレートパッケージングのワークフロー

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

  2. 翻訳:ソースファイルを英語や日本語などの対象言語に翻訳し、対応する音声または映像ファイルを生成します。

  3. トランスコードおよびパッケージング:SubmitMediaConvertJob 操作を呼び出して、多言語コンテンツをマージし、標準化されたマルチビットレート映像にトランスコードします。