All Products
Search
Document Center

Intelligent Media Services:Transkoding dan pengemasan multi-track audio

Last Updated:Apr 29, 2026

Dokumen ini menjelaskan cara menggunakan Intelligent Media Services (IMS) untuk melakukan transkoding dan pengemasan file media dengan beberapa track audio, sehingga Anda dapat menghasilkan konten audio dan video multi-bahasa yang kompatibel dengan berbagai perangkat dan pemutar.

Alur kerja transkoding dan pengemasan

Contoh struktur file yang telah dikemas:

#EXTM3U

# Definisi aliran audio (multi-bahasa)
#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"

# Definisi aliran video (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

Prasyarat

Pastikan Intelligent Media Services (IMS) telah diaktifkan. Untuk petunjuknya, lihat Aktifkan IMS.

Konfigurasi

Konfigurasi dasar IMS

  • Storage: Bind bucket Object Storage Service (OSS) ke IMS. Untuk informasi selengkapnya, lihat Konfigurasikan lokasi penyimpanan.

  • Callback: Konfigurasikan callback HTTP atau MNS untuk menerima notifikasi status task. Untuk informasi lebih lanjut tentang metode dan event callback, lihat Ikhtisar event callback.

Konfigurasi template transkoding

Prosedur konfigurasi

Contoh persyaratan

Codec: H.264/H.265

Resolusi video: 360p/540p/720p/1080p

Audio: HE-AAC pada 64 kbps (konfigurasi default).

Contoh konfigurasi

Buat template transkoding untuk setiap resolusi video yang diperlukan berdasarkan contoh pada tabel berikut. Untuk petunjuk cara membuat template, lihat Buat template transkoding.

Catatan

Untuk melakukan transkoding Narrowband HD™, buat template yang sesuai berdasarkan tabel tersebut, lalu submit a ticket agar Alibaba Cloud dapat meningkatkan konfigurasi backend Anda.

H.264

Template transkoding

Codec

Format kontainer

Pengaturan lainnya

Video-360P

H.264

m3u8(.ts)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 640*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-540P

H.264

m3u8(.ts)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 960*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-720P

H.264

m3u8(.ts)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 1280*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-1080P

H.264

m3u8(.ts)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 1920*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Audio-64Kbps

HE-AAC

m3u8(.ts)

  • Nonaktifkan video

  • Panjang segmen: 5 detik

Catatan

Template ini tidak dapat dibuat di Konsol. Gunakan API atau submit a ticket sebagai gantinya.

H.265

Catatan
  • Disarankan: Gunakan format kontainer fmp4. Format ini merupakan standar untuk perangkat Apple dan kompatibel dengan Safari.

  • Alternatif: Format kontainer .ts juga dapat digunakan, tetapi tidak kompatibel dengan Safari.

  • Batasan Konsol: Anda tidak dapat membuat aliran dengan format kontainer fmp4 di Konsol. Sebagai gantinya, buat aliran dengan format kontainer m3u8(ts). Alibaba Cloud kemudian akan meningkatkan konfigurasi di backend.

Template transkoding

Codec

Format kontainer

Pengaturan lainnya

Video-360P

H.265

m3u8(.fmp4)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 640*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-540P

H.265

m3u8(.fmp4)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 960*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-720P

H.265

m3u8(.fmp4)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 1280*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Video-1080P

H.265

m3u8(.fmp4)

  • Resolusi (tepi panjang tetap, tepi pendek adaptif): 1920*

  • Nonaktifkan audio

  • Panjang segmen: 5 detik

  • Konfigurasikan pengaturan lain sesuai kebutuhan.

Audio-64Kbps

HE-AAC

m3u8(.fmp4)

  • Nonaktifkan video

  • Panjang segmen: 5 detik

Catatan

Template ini tidak dapat dibuat di Konsol. Gunakan API atau submit a ticket sebagai gantinya.

Tugas transkoding dan pengemasan multi-bitrate

Pengiriman tugas multi-bitrate

Panggil operasi SubmitMediaConvertJob untuk mengirimkan tugas transkoding file video atau audio Anda ke IMS.

Parameter HlsGroupConfig

Parameter

Tipe

Deskripsi

Type

string

Jenis aliran data.

Nilai yang valid:

  • video: aliran video. Hanya pengaturan terkait video yang diproses.

  • audio: aliran audio. Hanya pengaturan terkait audio yang diproses.

  • hybrid: aliran hibrida. Pengaturan terkait audio dan video diproses.

Bandwidth

string

Bandwidth. Parameter ini opsional. Secara default, bitrate (dalam bps) digunakan.

Hanya berlaku ketika Type diatur ke video atau hybrid.

AudioGroup

string

Kelompok audio yang dirujuk oleh aliran video. Hanya berlaku ketika Type diatur ke video.

SubtitleGroup

string

Kelompok subtitle yang dirujuk oleh aliran video. Hanya berlaku ketika Type diatur ke video atau hybrid.

Name

string

Atribut NAME dari aliran output dalam manifes HLS. Parameter ini wajib ketika Type diatur ke audio atau subtitle.

Group

string

Atribut GROUP_ID dari aliran output dalam manifes HLS. Parameter ini hanya berlaku ketika Type diatur ke audio atau subtitle.

Default-nya adalah nilai parameter Type.

Language

string

Atribut LANGUAGE dari aliran output dalam manifes HLS. Parameter ini hanya berlaku ketika Type diatur ke audio atau subtitle. Nilainya harus sesuai dengan RFC 5646.

Default

boolean

Menentukan apakah ini adalah aliran default. Hanya berlaku ketika Type diatur ke audio.

AutoSelect

boolean

Menentukan apakah aliran harus dipilih secara otomatis. Hanya berlaku ketika Type diatur ke audio.

Forced

boolean

Menentukan apakah aliran bersifat forced. Hanya berlaku ketika Type diatur ke audio.

Kasus penggunaan 1: Transkode dan kemas

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

Kasus penggunaan 2: Tambahkan track audio

Prosedur:

  1. Tentukan input bernama "ExtraAudio". Di output, rujuk input ini untuk mentranskode menjadi aliran HLS audio.

  2. Atur InputRef dalam opsi ManifestExtend GroupConfig untuk merujuk file "RefManifest" dari input, sehingga memanfaatkan manifes asli untuk menambahkan track audio tambahan.

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

Kasus penggunaan 3: Ganti track audio

Kasus penggunaan ini mengembangkan Kasus penggunaan 2. Gunakan opsi Excludes dalam ManifestExtend untuk mengecualikan aliran tertentu dari manifes asli.

Parameter

Tipe

Deskripsi

Name

string

Atribut NAME dari aliran yang akan dikecualikan.

Type

string

Atribut TYPE dari aliran yang akan dikecualikan.

Nilai yang valid:

  • Audio

  • Subtitle

Language

string

Atribut LANGUAGE dari aliran yang akan dikecualikan. Nilainya harus sesuai dengan 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"
          }
        }
      ]
    }
  ]
}

Meminta hasil tugas

Panggil operasi GetMediaConvertJob untuk mendapatkan detail tugas transkoding.

Notifikasi callback

Tipe event: MediaConvertComplete

Metode konfigurasi: Event ini tidak dapat dikonfigurasi di Konsol. Sebagai gantinya, panggil operasi SetEventCallback untuk mengaturnya.

Parameter callback utama

Parameter

Tipe

Wajib

Deskripsi

Name

String

Ya

Nama tugas utama.

JobId

String

Ya

ID tugas.

Status

String

Ya

Status tugas. Success menunjukkan bahwa setidaknya satu output (subtask) berhasil.

TriggerSource

String

Tidak

Sumber yang memicu tugas. API menunjukkan bahwa tugas dikirim melalui panggilan API.

FinishTime

String

Tidak

Waktu penyelesaian tugas. Formatnya harus sesuai dengan EventTime.

UserData

string

Tidak

String kustom yang Anda tentukan saat mengirimkan tugas. String ini diteruskan dan dikembalikan dalam callback.

Contoh

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

Memutar video multi-bitrate yang telah dikemas

Gunakan ApsaraVideo Player untuk memutar video multi-bitrate yang telah dikemas.

Alur kerja translasi video dan pengemasan multi-bitrate

  1. Siapkan input: Sediakan file sumber.

  2. Terjemahkan: Terjemahkan file sumber ke bahasa target, seperti Inggris dan Jepang, untuk menghasilkan file audio atau video yang sesuai.

  3. Transkode dan kemas: Panggil operasi SubmitMediaConvertJob untuk menggabungkan konten multi-bahasa dan mentranskode menjadi video multi-bitrate yang distandarisasi.