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

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

最終更新日:Nov 21, 2025

このガイドでは、Intelligent Media Services (IMS) を使用したマルチオーディオトラックのトランスコーディングとパッケージングの方法について説明します。これらの手順に従うことで、さまざまなデバイスと互換性のある多言語メディアコンテンツを生成できます。

ワークフロー

出力ファイル構造の例:

#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

始める前に

IMS の機能を使用するには、IMS をアクティブ化します。

構成

基本構成

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

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

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

手順

要件の例

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

解像度: 360P, 540P, 720P, 1080P

オーディオ: HE-AAC, 64 Kbps (デフォルト)

構成例

この例では、必要な 4 つのビデオ解像度に対応するトランスコーディングテンプレートの設定方法を示します。テンプレートの作成方法については、「トランスコーディングテンプレートの作成」をご参照ください。

説明

狭帯域 HD™ トランスコーディングを実行するには、次の表に基づいて基本テンプレートを作成します。その後、バックエンドのスペックアップのためにチケットを送信してください。

H.264

テンプレート

コーデック

コンテナフォーマット

その他のパラメーター

Video-360P

H.264

m3u8 (.ts)

  • 解像度 (長辺固定): 640px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-540P

H.264

m3u8 (.ts)

  • 解像度 (長辺固定): 960px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-720P

H.264

m3u8 (.ts)

  • 解像度 (長辺固定): 1280px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-1080P

H.264

m3u8 (.ts)

  • 解像度 (長辺固定): 1920px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Audio-64Kbps

HE-AAC

m3u8 (.ts)

  • ビデオを無効化

  • セグメント長: 5s

説明

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

H.265

説明
  • 推奨: fMP4 コンテナフォーマット。これは Apple の標準であり、Safari と互換性があります。

  • 代替案: TS コンテナフォーマットも可能ですが、Safari とは互換性がありません。

  • コンソールの制限: コンソールでは fMP4 コンテナフォーマットのテンプレートを作成できません。まず m3u8 (.ts) コンテナフォーマットのテンプレートを作成し、その後 Alibaba Cloud に連絡してバックエンドの構成をスペックアップしてもらいます。

テンプレート

コーデック

コンテナフォーマット

その他のパラメーター

Video-360P

H.265

m3u8 (.fmp4)

  • 解像度 (長辺固定): 640px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-540P

H.265

m3u8 (.fmp4)

  • 解像度 (長辺固定): 960px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-720P

H.265

m3u8 (.fmp4)

  • 解像度 (長辺固定): 1280px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Video-1080P

H.265

m3u8 (.fmp4)

  • 解像度 (長辺固定): 1920px

  • オーディオを無効化

  • セグメント長: 5s

  • 必要に応じて他のパラメーターを設定

Audio-64Kbps

HE-AAC

m3u8 (.fmp4)

  • ビデオを無効化

  • セグメント長: 5s

説明

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

トランスコーディングタスクの送信

マルチビットレートタスクの開始

SubmitMediaConvertJob 操作を呼び出して、トランスコーディングタスクを送信します。

Config パラメーター (HlsGroupConfig)

パラメーター

タイプ

説明

Type

string

ストリームタイプを指定します。

有効な値:

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

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

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

Bandwidth

string

帯域幅。このパラメーターはオプションです。

このパラメーターは、Type が video または hybrid に設定されている場合に有効です。

AudioGroup

string

ビデオストリームによって参照されるオーディオグループ。このパラメーターは、Type が video に設定されている場合に適用されます。

SubtitleGroup

string

ビデオストリームによって参照される字幕グループ。このパラメーターは、Type が video または hybrid に設定されている場合に適用されます。

Name

string

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

Group

string

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

デフォルトでは、値は Type と同じです。

Language

string

HLS マニフェスト内の出力ストリームの LANGUAGE 属性。このパラメーターは、Type が audio または subtitle に設定されている場合に適用されます。値は RFC 5646 に準拠する必要があります。

Default

boolean

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

AutoSelect

boolean

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

Forced

boolean

ストリームを強制的に表示するかどうかを指定します。このパラメーターは、Type が audio に設定されている場合に有効です。

シナリオ 1: トランスコードしてマルチビットレートパッケージを生成

{
  "Inputs": [
    {
      "Name": "video",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<Bucket>.<Public_Endpoint>/<video_1_chinese>"
      }
    },
    {
      "Name": "EnglishAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<Bucket>.<Public_Endpoint>/<video_1_english>"
      }
    },
    {
      "Name": "JapaneseAudio",
      "InputFile": {
        "Type": "OSS",
        "Media": "https://<Bucket>.<Public_Endpoint>/<video_1_japanese>"
      }
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "Hls",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "https://<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: 既存の HLS マニフェストにオーディオトラックを追加

ステップ:

  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": "#AudioTemplateId",
          "hlsGroupConfig": {
            "Type": "audio",
            "Name":"Chinese",
            "Language": "zh-cn"
          }
        }
      ]
    }
  ]
}

シナリオ 3: 既存の HLS マニフェストのオーディオトラックを置換

これはシナリオ 2 に基づいています。ManifestExtendExcludes オプションを追加して、元のマニフェストから特定のストリームを除外します。

パラメーター

タイプ

説明

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": "#AudioTemplateId",
          "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

いいえ

タスクが完了した時間 (UTC 形式)。

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 操作を呼び出して、多言語コンテンツを標準化されたマルチビットレートビデオにトランスコードおよびパッケージングします。