Topik ini menjelaskan cara melakukan transkoding video menggunakan operasi API media transcoding di Intelligent Media Management (IMM).
Deskripsi fitur
Transkoding video mengonversi aliran video yang telah dikompresi dan diencode menjadi aliran video lain dengan mengubah parameter seperti format video, format kontainer, resolusi, laju frame, dan bitrate. Tujuannya adalah menyesuaikan video agar dapat diputar di berbagai perangkat dan platform sekaligus mengurangi ukuran file untuk mengoptimalkan efisiensi transmisi.

Kasus penggunaan
Kompatibilitas multi-perangkat: Untuk memastikan pemutaran lancar di berbagai perangkat seperti ponsel, tablet, komputer, dan smart TV, Anda dapat menggunakan transkoding video guna mengonversi video ke format yang sesuai dengan masing-masing perangkat.
Pemutaran media streaming: Layanan media streaming perlu melakukan transkoding video ke beberapa format dan bitrate agar dapat menyesuaikan kualitas pemutaran secara dinamis berdasarkan kondisi jaringan pengguna, sehingga meningkatkan pengalaman menonton.
Kompresi video: Anda dapat melakukan transkoding video untuk mengurangi ukuran file tanpa mengorbankan kualitas secara signifikan, sehingga memudahkan penyimpanan dan transmisi—terutama saat bandwidth jaringan terbatas.
Format audio dan video yang didukung
Kategori | Format |
Audio | Format audio utama, seperti AAC, MP3, WAV, FLAC, WMA, AC3, dan Opus. |
Video | Format video utama, seperti MP4, MPEG-TS, MKV, MOV, AVI, FLV, M3U8, WebM, WMV, RM, dan VOB. |
Cara menggunakan
Prasyarat
Pasangan Kunci Akses telah dibuat dan diperoleh. Untuk informasi selengkapnya, lihat Create an AccessKey pair.
Object Storage Service (OSS) telah diaktifkan dan bucket telah dibuat. Untuk informasi selengkapnya, lihat Create a bucket.
IMM telah diaktifkan. Untuk informasi selengkapnya, lihat Activate IMM.
Proyek telah dibuat di Konsol IMM. Untuk informasi selengkapnya, lihat Create a project.
CatatanAnda dapat memanggil operasi CreateProject untuk membuat proyek. Untuk informasi selengkapnya, lihat CreateProject.
Anda dapat memanggil operasi ListProjects untuk menampilkan informasi semua proyek dalam suatu wilayah.
Langkah 1: Unggah file
Gunakan Konsol OSS untuk mengunggah file media ke bucket yang berada di wilayah yang sama dengan proyek IMM Anda.

Langkah 2: Gunakan IMM untuk melakukan transkoding video
Panggil operasi CreateMediaConvertTask untuk membuat tugas transkoding media.
Deskripsi parameter
Contoh berikut menggunakan proyek IMM test-project untuk melakukan transkoding file video oss://test-bucket/video-demo/Shushan Commercial Building.mov.
Untuk informasi lebih lanjut mengenai fitur dan penggunaan ApsaraVideo Media Processing, lihat Media transcoding.
Anda dapat memproses file video dengan memanggil operasi API media transcoding di OpenAPI Portal dan merujuk pada contoh kode kit pengembangan perangkat lunak (SDK).
Untuk kompatibilitas pemutaran terbaik, transkode video ke format MP4 atau HTTP Live Streaming (HLS). Atur Codec video ke h264, PixelFormat ke yuv420p, Codec audio ke aac, dan Channel ke 2.
Proses transkoding pasti menurunkan kualitas video. Anda dapat menyesuaikan kualitas video hasil transkoding menggunakan parameter Bitrate dan CRF. Secara umum, kualitas yang lebih tinggi menghasilkan ukuran file yang lebih besar.
H.265 memiliki efisiensi kompresi yang lebih baik daripada H.264. Untuk kualitas video yang sama, H.265 biasanya mengurangi biaya storage space dan bandwidth lebih dari 30%. Namun, H.265 memerlukan pemutar yang kompatibel.
Jika Anda tidak mengatur parameter Codec, nilai default-nya adalah copy. Nilai ini berarti aliran video disalin langsung ke file output. Parameter lain di bawah TranscodeVideo kemudian tidak berlaku. Nilai copy tidak digunakan untuk transkoding video, melainkan biasanya digunakan untuk konversi format kontainer.
Anda dapat menggunakan variabel untuk mengatur path file output untuk URI di Targets. Untuk informasi selengkapnya, lihat TargetURI template.
Transkode ke MP4
Konversi video ke format MP4 tanpa mengubah parameter seperti resolusi dan laju frame.

Informasi transkoding
Format video: MOV ke MP4
Konfigurasi video: Atur CRF ke 24. Pertahankan resolusi, laju frame, dan parameter video asli lainnya.
Konfigurasi audio: Format AAC, bitrate 96 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notifikasi penyelesaian transkoding: Kirim pesan MNS ke topik MNS "test-mns-topic".
Untuk contoh SDK, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4",
"Video": {
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}Transkode ke video HLS dengan resolusi 1920x1080 pada 30 fps
Lakukan transkoding video ke video H.265 dengan resolusi 1920x1080 pada 30 frame per detik (fps). Gunakan format HLS untuk segmentasi video. Jika video sumber memiliki resolusi atau laju frame yang lebih rendah, parameter asli akan digunakan.

Informasi transkoding
Format video: MOV ke M3U8
Segmentasi: Format HLS, durasi segmen 10 detik
Konfigurasi video: Format encoding H.265, CRF diatur ke 24, resolusi 1920x1080, dan laju frame 30.
Konfigurasi audio: Format AAC, bitrate 128 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-%d.tsNotifikasi penyelesaian transkoding: Kirim pesan MNS ke topik MNS "test-mns-topic".
Untuk contoh SDK, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 24,
"Codec": "h265",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "1920x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}Transkode ke video HLS dengan resolusi 1080p, 720p, dan 480p
Lakukan transkoding video menjadi tiga video terpisah dengan resolusi 1080p, 720p, dan 480p. Format HLS digunakan untuk segmentasi.

Informasi transkoding
Sebelum Transcoding
Format video: MOV
Format encoding video: H.264
Resolusi: 3840x2160
Laju frame: 30
Setelah Transkoding
Notifikasi penyelesaian transkoding: Kirim pesan MNS ke topik MNS "test-mns-topic".
Video 1
Format video: M3U8
Segmentasi: Format HLS, durasi segmen 10 detik
Konfigurasi video: Format encoding H.264, CRF diatur ke 25, resolusi 1920x1080, dan laju frame 30.
Konfigurasi audio: Format AAC, bitrate 256 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building-x1080.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x1080-%d.ts
Video 2
Format video: M3U8
Segmentasi: Format HLS, durasi segmen 10 detik
Konfigurasi video: Format encoding H.264, CRF diatur ke 26, resolusi 1280x720, dan laju frame 30.
Konfigurasi audio: Format AAC, bitrate 128 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building-x720.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x720-%d.ts
Video 3
Format video: M3U8
Segmentasi: Format HLS, durasi segmen 10 detik
Konfigurasi video: Format encoding H.264, CRF diatur ke 28, resolusi 854x480, dan laju frame 25.
Konfigurasi audio: Format AAC, bitrate 96 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building-x480.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x480-%d.ts
Untuk contoh SDK, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 25,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 26,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x720",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 28,
"Codec": "h264",
"FrameRate": 25,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x480",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}Transkode ke MP4 dan tambahkan Watermark
Lakukan transkoding video ke format MP4. Tambahkan watermark logo di pojok kiri atas dan watermark teks di pojok kanan bawah.

Informasi transkoding
Format video: MOV ke MP4
Konfigurasi video: Video diencode dalam format H.264 dengan CRF diatur ke 25. Resolusi dan laju frame asli dipertahankan. Watermark gambar logo Alibaba Cloud ditambahkan di pojok kiri atas dan watermark teks "Intelligent Media Management" ditambahkan di pojok kanan bawah.
Konfigurasi audio: Audio diencode dalam format AAC dengan bitrate 256 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notifikasi penyelesaian transkoding: Pesan MNS dikirim ke topik MNS "test-mns-topic".
Untuk contoh kode, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [],
"Watermarks": [
{
"Dx": 0.05,
"Dy": 0.1,
"ReferPos": "topleft",
"Type": "file",
"URI": "oss://test-bucket/video-demo/aliyun.png",
"Width": 0.1
},
{
"Content": "Intelligent Media Management",
"Dx": 0.05,
"Dy": 0.1,
"FontColor": "#FFFFFF",
"FontSize": 100,
"ReferPos": "bottomright",
"Type": "text"
}
]
},
"TranscodeVideo": {
"CRF": 25,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}Potong segmen video dan transkode ke format FLV
Potong segmen dari video sumber, transkode ke format FLV, dan sesuaikan bitrate menjadi 1 Mbps.

Informasi Transkoding
Format video: MOV ke FLV
Waktu mulai potong: 5 detik
Durasi potong: 10 detik
Konfigurasi video: Bitrate 1 Mbps. Resolusi, laju frame, dan parameter video lainnya dipertahankan.
Konfigurasi audio: Format AAC, bitrate 96 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building.flvNotifikasi penyelesaian transkoding: Pesan MNS dikirim ke topik MNS "test-mns-topic".
Untuk contoh pemanggilan, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 10,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "flv",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"TranscodeVideo": {
"Bitrate": 1000000,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}Konversi format kontainer video ke MP4
Konversi format kontainer video ke MP4. Konversi format kontainer tidak melakukan re-encode data audio atau video, tetapi dapat menyebabkan masalah kompatibilitas pemutaran.
Informasi transkoding
Format video: MOV ke MP4
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notifikasi penyelesaian transkoding: Mengirim pesan MNS ke topik MNS "test-mns-topic".
Untuk contoh pemanggilan API, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}"
}
]
}Area watermark mosaik pada video
Buat area watermark logo di pojok kiri atas dan area watermark teks di pojok kanan bawah video menjadi mosaic.

Informasi transkoding
Path video input:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Konfigurasi video: Format encoding H.264 dengan CRF diatur ke 24. Resolusi dan laju frame asli dipertahankan. Efek mosaic diterapkan pada area logo di pojok kiri atas dan area watermark teks di pojok kanan bawah.
Konfigurasi audio: Format AAC, bitrate 96 kbit/s, dua saluran suara, dan laju sampel 44,1 kHz.
Path video output:
oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.mp4Notifikasi penyelesaian transkoding: Pesan MNS dikirim ke topik MNS "test-mns-topic".
Untuk contoh kode, lihat OpenAPI Portal. Parameter dalam contoh tersebut telah diisi otomatis. Anda dapat memodifikasi parameter sesuai kebutuhan sebelum menguji kode.
Parameter permintaan
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 0.1,
"ReferPos": "topleft",
"Width": 0.1
},
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 100,
"ReferPos": "bottomright",
"Width": 600
}
]
},
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}