全部产品
Search
文档中心

Intelligent Media Services:Transkode beberapa trek audio ke dalam file MP4

更新时间:Sep 04, 2025

Intelligent Media Services (IMS) memungkinkan Anda mentranskode dan mengemas beberapa trek audio ke dalam satu file MP4 tunggal serta menetapkan bahasa untuk setiap trek.

Alur Kerja

Contoh struktur file output:

Durasi: 00:00:31.40, mulai: 0.000000, bitrate: 816 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 960x540 [SAR 1:1 DAR 16:9], 663 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
Stream #0:1[0x2](zho): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
Stream #0:2[0x3](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)
Stream #0:3[0x4](jpn): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)

Prasyarat

IMS telah diaktifkan. Untuk detailnya, lihat Aktifkan IMS.

Konfigurasi

Konfigurasi Dasar

  • Penyimpanan: Hubungkan bucket Object Storage Service (OSS) dengan IMS. Untuk informasi lebih lanjut, lihat Konfigurasikan Alamat Penyimpanan.

  • Panggil Balik: Konfigurasikan panggil balik HTTP atau MNS untuk menerima notifikasi status tugas. Untuk metode panggil balik dan event, lihat Ikhtisar.

Konfigurasi Template Transkoding

Prosedur

Contoh Persyaratan

Kodek: H.264, H.265

Resolusi: 360P, 540P, 720P, 1080P

Audio: HE-AAC, 64 Kbps (default)

Contoh Konfigurasi

Contoh ini menunjukkan cara mengonfigurasi template transkoding untuk empat resolusi video yang diperlukan. Untuk mempelajari cara membuat template, lihat Buat Template Transkoding.

Catatan

Untuk melakukan transkoding Narrowband HD™, buat template dasar berdasarkan tabel berikut. Kemudian, ajukan tiket untuk peningkatan backend.

H.264

Template

Codec

Format Kontainer

Parameter Lainnya

Video-360P

H.264

.mp4

  • Resolusi (panjang tetap): 640px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-540P

H.264

.mp4

  • Resolusi (panjang tetap): 960px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-720P

H.264

.mp4

  • Resolusi (panjang tetap): 1280px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-1080P

H.264

.mp4

  • Resolusi (panjang tetap): 1920px

  • Konfigurasikan parameter lain sesuai kebutuhan.

H.265

Template

Codec

Format Kontainer

Parameter Lainnya

Video-360P

H.265

.mp4

  • Resolusi (panjang tetap): 640px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-540P

H.265

.mp4

  • Resolusi (panjang tetap): 960px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-720P

H.265

.mp4

  • Resolusi (panjang tetap): 1280px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Video-1080P

H.265

.mp4

  • Resolusi (panjang tetap): 1920px

  • Konfigurasikan parameter lain sesuai kebutuhan.

Ajukan Tugas Transkoding

Panggil SubmitMediaConvertJob untuk mengajukan tugas transkoding.

Parameter Audios

Bidang

Tipe

Deskripsi

InputRef

String

Nama stream input yang digunakan untuk trek audio ini. Harus cocok dengan Nama yang didefinisikan dalam array Inputs atau AudioSelector.

LanguageControl

String

Menentukan bagaimana tag bahasa untuk trek audio output ditentukan. Nilai valid:

  • InputFirst: Mewarisi tag bahasa dari stream input. Jika input tidak memiliki tag bahasa, tag yang ditentukan dalam parameter Language digunakan.

  • Configured: Menggunakan tag bahasa yang ditentukan dalam parameter Language.

  • None (Default): Tidak menambahkan tag bahasa ke trek output.

Language

String

Kode bahasa yang diterapkan pada trek audio. Harus kode ISO 639-2 yang valid.

Remove

String

Menentukan apakah akan menghapus trek audio dari file output.

Codec

String

Kodek audio.

Profile

String

Profil kodek audio.

Bitrate

String

Bitrate audio dari file output.

Samplerate

String

Laju sampel audio.

Channels

String

Jumlah saluran audio.

Volume

Object

Pengaturan kontrol volume.

Skenario 1: Pertahankan Trek Audio Asli

Contoh ini menunjukkan cara menggabungkan video dengan audionya yang asli dan dua trek bahasa tambahan menjadi satu file output.

  • Dalam array Inputs, tiga sumber didefinisikan: file video dengan trek audio default (video), file audio Inggris (EnglishAudio), dan file audio Jepang (JapaneseAudio).

  • Dalam OutputGroups.GroupConfig, Type diatur ke File, menunjukkan bahwa kelompok output dimux ke dalam satu file kontainer.

  • Dalam OutputGroups.Outputs.OverrideParams, array Audios mendefinisikan beberapa trek audio untuk output. Untuk setiap trek dalam array:

    • InputRef merujuk ke file sumber dari array Inputs.

    • LanguageControl menentukan bagaimana tag bahasa disetel untuk trek tersebut.

{
  "Inputs": [
    {
      "Name": "video",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Chinese>"}
    },
    {
      "Name": "EnglishAudio",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 English>"}
    },
    {
      "Name": "JapaneseAudio",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Japanese>"}
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "File",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "https://<Bucket>.<Public Endpoint>/<URI>/"
        }
      },
      "Outputs": [
        {
          "Name": "360P",
          "OutputFileName": "video/360p/360p",
          "TemplateId": "Video-360P",
          "OverrideParams": {
            "Audios": [
              {
                "InputRef": "video",
                "LanguageControl": "InputFirst"
              }, {
                "InputRef": "EnglishAudio",
                "LanguageControl": "Configured",
                "Language": "eng"
              }, {
                "InputRef": "JapaneseAudio",
                "LanguageControl": "Configured",
                "Language": "jpn"
              }
            ]
          }
        }
      ]
    }
  ]
}

Skenario 2: Hapus Track audio asli

Dibandingkan dengan Skenario 1, konfigurasi ini dalam array Audios menghapus referensi apa pun ke audio dari input video asli.

Akibatnya, audio dari video sumber akan dikecualikan dari output akhir. Output akan dimux hanya dengan trek audio Inggris dan Jepang yang ditentukan.

{
  "Inputs": [
    {
      "Name": "video",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Chinese>"}
    },
    {
      "Name": "EnglishAudio",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 English>"}
    },
    {
      "Name": "JapaneseAudio",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Japanese>"}
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "File",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "https://<Bucket>.<Public Endpoint>/<URI>/"
        }
      },
      "Outputs": [
        {
          "Name": "360P",
          "OutputFileName": "video/360p/360p",
          "TemplateId": "Video-360P",
          "OverrideParams": {
            "Audios": [
              {
                "InputRef": "EnglishAudio",
                "LanguageControl": "Configured",
                "Language": "eng"
              }, {
                "InputRef": "JapaneseAudio",
                "LanguageControl": "Configured",
                "Language": "jpn"
              }
            ]
          }
        }
      ]
    }
  ]
}

Skenario 3: Pilih Trek Audio Berdasarkan Tag Bahasa

Contoh ini menunjukkan cara menggunakan parameter AudioSelector untuk memilih trek audio tertentu dari file input. Di sini, ia memilih trek yang ditandai sebagai Jepang (jpn) dari input JapaneseFile.

{
  "Inputs": [
    {
      "Name": "video",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Chinese>"}
    },
    {
      "Name": "EnglishAudio",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 English>"}
    },
    {
      "Name": "JapaneseFile",
      "InputFile": {"Type": "OSS", "Media": "https://<Bucket>.<Public Endpoint>/<Video1 Japanese>"},
      "AudioSelector": [{
        "Name": "JapaneseFile",
        "Rule": "tag",
        "TagConfig": {"language": "jpn"}
      }]
    }
  ],
  "OutputGroups": [
    {
      "GroupConfig": {
        "Type": "File",
        "OutputFileBase": {
          "Type": "OSS",
          "Media": "https://<Bucket>.<Public Endpoint>/<URI>/"
        }
      },
      "Outputs": [
        {
          "Name": "360P",
          "OutputFileName": "video/360p/360p",
          "TemplateId": "Video-360P",
          "OverrideParams": {
            "Audios": [
              {
                "InputRef": "video",
                "LanguageControl": "InputFirst"
              }, {
                "InputRef": "EnglishAudio",
                "LanguageControl": "Configured",
                "Language": "eng"
              }, {
                "InputRef": "JapaneseAudio",
                "LanguageControl": "InputFirst"
              }
            ]
          }
        }
      ]
    }
  ]
}

Hasil Transkoding Query

Panggil GetMediaConvertJob untuk mengambil detail tugas transkoding.

Event Panggil Balik

Tipe Event: MediaConvertComplete

Metode Konfigurasi: Event ini tidak dapat dikonfigurasi di Konsol. Konfigurasikan dengan memanggil SetEventCallback.

Parameter Utama Panggil Balik

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 (subtugas) berhasil.

TriggerSource

String

Tidak

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

FinishTime

String

Tidak

Waktu tugas selesai, dalam format UTC.

UserData

string

Tidak

String kustom yang ditentukan saat mengirimkan tugas. Ini diteruskan dan dikembalikan dalam panggil balik.

Contoh

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