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.
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 |
|
Video-540P | H.264 | .mp4 |
|
Video-720P | H.264 | .mp4 |
|
Video-1080P | H.264 | .mp4 |
|
H.265
Template | Codec | Format Kontainer | Parameter Lainnya |
Video-360P | H.265 | .mp4 |
|
Video-540P | H.265 | .mp4 |
|
Video-720P | H.265 | .mp4 |
|
Video-1080P | H.265 | .mp4 |
|
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:
|
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,Typediatur keFile, menunjukkan bahwa kelompok output dimux ke dalam satu file kontainer.Dalam
OutputGroups.Outputs.OverrideParams, arrayAudiosmendefinisikan beberapa trek audio untuk output. Untuk setiap trek dalam array:InputRefmerujuk ke file sumber dari arrayInputs.LanguageControlmenentukan 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. | |
TriggerSource | String | Tidak | Sumber yang memicu tugas. | |
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\"}"
}