All Products
Search
Document Center

Intelligent Media Services:Transkoding dan pengemasan multi-track audio

Last Updated:Sep 02, 2026

Transkode dan kemas file media dengan beberapa track audio menggunakan Intelligent Media Services (IMS) untuk 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="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"

# 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

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 tabel berikut. Untuk petunjuknya, lihat Buat template transkoding.

Catatan

Untuk melakukan transkoding Narrowband HD™, buat template yang sesuai berdasarkan tabel, 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.

Task transkoding dan pengemasan multi-bitrate

Pengiriman task multi-bitrate

Panggil operasi SubmitMediaConvertJob untuk mengirimkan task transkoding file media Anda.

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 hybrid. 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

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

SubtitleGroup

string

Grup 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 ke 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.

Studi kasus 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"
                    }
                }
            ]
        }
    ]
}

Studi kasus 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 kembali 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"
          }
        }
      ]
    }
  ]
}

Studi kasus 3: Ganti track audio

Studi kasus ini mengembangkan Studi kasus 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"
          }
        }
      ]
    }
  ]
}

Kueri hasil task

Panggil operasi GetMediaConvertJob untuk mengkueri detail task transkoding.

Notifikasi callback

Jenis event: MediaConvertComplete

Event ini tidak dapat dikonfigurasi di Konsol. Panggil operasi SetEventCallback sebagai gantinya.

Parameter callback utama

Parameter

Tipe

Wajib

Deskripsi

Name

String

Ya

Nama task utama.

JobId

String

Ya

ID task.

Status

String

Ya

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

TriggerSource

String

Tidak

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

FinishTime

String

Tidak

Waktu task selesai. Formatnya harus sesuai dengan EventTime.

UserData

string

Tidak

String kustom yang ditentukan saat Anda mengirimkan task. Nilai 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. Translasi: 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 terstandarisasi.