Topik ini menjelaskan cara menggunakan operasi transkoding media dari Intelligent Media Management (IMM) untuk menyimpan frame yang diambil sebagai citra statis.
Pengenalan fitur
Pengambilan frame adalah proses mengekstraksi citra frame tertentu dari video untuk menyimpan momen spesifik dalam video sebagai citra statis.

Skenario
Snapshot: Simpan momen tertentu dalam video sebagai citra statis untuk membuat poster.
Analisis: Ekstrak keyframe untuk analisis lanjutan, seperti pengenalan wajah dan deteksi objek.
Pembuatan gambar mini: Buat gambar mini atau gambar sampul untuk video.
Rangkuman pemutaran: Pilih beberapa momen kunci dari video untuk menghasilkan ringkasan atau pratinjau yang ringkas.
Berbagi dan perekaman tangkapan layar: Saat pengguna menonton video dan ingin menyimpan atau membagikan frame yang disukai, mereka dapat mengambil frame video pada saat itu.
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 (AccessKey pair) telah dibuat dan diperoleh. Untuk informasi selengkapnya, lihat Buat Pasangan Kunci Akses.
Object Storage Service (OSS) telah diaktifkan dan bucket telah dibuat. Untuk informasi selengkapnya, lihat Buat bucket.
IMM telah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan IMM.
Proyek telah dibuat di Konsol IMM. Untuk informasi selengkapnya, lihat Buat proyek.
CatatanAnda dapat memanggil operasi CreateProject untuk membuat proyek. Untuk informasi selengkapnya, lihat CreateProject.
Anda dapat memanggil operasi ListProjects untuk mencantumkan informasi semua proyek di suatu Wilayah.
Langkah 1: Unggah file
Gunakan Konsol OSS untuk mengunggah file media ke bucket di Wilayah tempat proyek IMM berada.

Langkah 2: Gunakan fitur pengambilan frame IMM
Panggil operasi CreateMediaConvertTask untuk membuat tugas pengambilan frame.
Deskripsi parameter
Contoh berikut menggunakan proyek IMM test-project untuk mengambil frame dari file video oss://test-bucket/video-demo/Winemaking.mov. Untuk informasi selengkapnya tentang fitur pemrosesan media, lihat Transkoding media.
Anda dapat menggunakan operasi transkoding media untuk memproses file video di OpenAPI Explorer. Untuk informasi selengkapnya, lihat contoh kode SDK.
Jangan mengonfigurasi parameter
Target.URIdanTarget.Containersaat menggunakan fitur pengambilan frame.Kami menyarankan Anda menggunakan variabel untuk menentukan nama file URI di Targets dengan format
snapshot-{index}.{autoext}. Setelah frame disimpan, file dengan nama sepertisnapshot-1.pngdansnapshot-2.pngakan dihasilkan. Untuk informasi selengkapnya tentang variabel terkait, lihat Templat TargetURI.
Ambil satu frame sebagai gambar mini video
Ambil satu frame sebagai gambar mini video agar resolusi citra sesuai dengan resolusi video.

Format frame yang diambil: jpg
Waktu mulai pengambilan frame: detik ke-5
Jumlah frame yang diambil: 1
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/cover.jpg
Notifikasi penyelesaian pengambilan frame: Kirim pesan Message Service (MNS) ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"StartTime": 5,
"Number": 1,
"URI": "oss://test-bucket/video-demo/cover.jpg"
}
]
}
}
]
}Ambil satu frame setiap 10 detik untuk pelatihan atau inferensi model AI
Ambil satu frame setiap 10 detik untuk pelatihan atau inferensi model AI, dengan resolusi citra keluaran dibatasi hingga 512x512.

Format frame yang diambil: jpg
Interval pengambilan frame: 10 detik
Metode ubah ukuran: crop. Untuk informasi selengkapnya tentang metode ubah ukuran, lihat Metode ubah ukuran.
Lebar citra keluaran: 512px
Tinggi citra keluaran: 512px
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Interval": 10,
"ScaleType": "crop",
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}",
"Width": 512,
"Height": 512
}
]
}
}
]
}Ambil total lima frame dengan interval 4 detik untuk menganalisis segmen video
Mulai dari detik ke-11, ambil total 5 frame dengan interval 4 detik untuk menganalisis segmen video. Lebar dan tinggi citra keluaran adalah setengah dari resolusi video, dan citra disimpan dalam format PNG.

Format frame yang diambil: png
Waktu mulai pengambilan frame: detik ke-11
Interval pengambilan frame: 4 detik
Jumlah frame yang diambil: 5
Metode ubah ukuran: crop. Untuk informasi selengkapnya tentang metode ubah ukuran, lihat Metode ubah ukuran.
Lebar citra keluaran: 1/2 dari lebar resolusi video input
Tinggi citra keluaran: 1/2 dari tinggi resolusi video input
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "png",
"StartTime": 11,
"Interval": 4,
"Number": 5,
"ScaleType": "crop",
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}",
"Width": 0.5,
"Height": 0.5
}
]
}
}
]
}Ambil keyframe event dari video
Analisis kesamaan konten frame video menggunakan dhash dan ekstrak frame dengan perubahan konten citra signifikan sebagai keyframe event berdasarkan ambang batas.
Ambang batas perlu disesuaikan sesuai skenario bisnis tertentu.
Format citra keluaran: jpg
Interval pengambilan frame: 1 detik
Mode pengambilan frame: dhash
Ambang batas: 15
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Interval": 1,
"Mode": "dhash",
"Threshold": 15,
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
}
]
}
}
]
}Ambil lima keyframe event yang paling representatif dari video untuk inferensi
Analisis kesamaan konten frame video menggunakan dhash untuk mengambil lima frame dengan perubahan konten citra terbesar.
Format citra keluaran: jpg
Interval pengambilan frame: 1 detik
Mode pengambilan frame: dhash
Jumlah frame yang diambil: 5
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Interval": 1,
"Mode": "dhash",
"Number": 5,
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
}
]
}
}
]
}Ambil semua frame IDR dalam video
Format citra keluaran: jpg
Mode pengambilan frame: keyframe
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Mode": "keyframe",
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
}
]
}
}
]
}Ambil 10 frame dengan interval waktu yang sama
Format citra keluaran: jpg
Mode pengambilan frame: average
Jumlah frame yang diambil: 10
Jalur penyimpanan frame yang diambil: oss://test-bucket/video-demo/snapshot-%d.png
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Winemaking.mov"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Mode": "average",
"Number": 10,
"URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
}
]
}
}
]
}Buat sampul untuk file audio menggunakan frame yang diambil dari file tersebut
Format citra keluaran: jpg
Jumlah frame yang diambil: 1
Jalur penyimpanan citra keluaran: oss://test-bucket/video-demo/cover.jpg
Notifikasi penyelesaian pengambilan frame: Kirim pesan MNS ke topik MNS "test-mns-topic"
Untuk contoh kode SDK, kunjungi OpenAPI Explorer. Parameter dalam contoh kode dikonfigurasi secara otomatis sebagai referensi. Ubah parameter sesuai kebutuhan bisnis Anda sebelum melakukan debugging.
Parameter permintaan contoh:
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/test.mp3"
}
],
"Targets": [
{
"Image": {
"Snapshots": [
{
"Format": "jpg",
"Number": 1,
"URI": "oss://test-bucket/video-demo/cover.jpg"
}
]
}
}
]
}Penagihan
Selama proses pengambilan frame, item yang dapat ditagih berikut dihasilkan di sisi OSS dan IMM:
Sisi OSS: Untuk harga detail, lihat Harga OSS.
API
Item yang dapat ditagih
Deskripsi
GetObject
Permintaan GET
Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.
Pengambilan data objek IA
Jika objek IA diambil, Anda dikenai biaya pengambilan data IA berdasarkan ukuran data IA yang diambil.
Pengambilan objek Archive di bucket yang diaktifkan akses real-time
Jika objek Archive di bucket yang diaktifkan akses real-time diambil, Anda dikenai biaya pengambilan data Archive berdasarkan ukuran objek Archive yang diambil.
Akselerasi transfer
Jika Anda mengaktifkan akselerasi transfer dan menggunakan Titik akhir percepatan untuk mengakses bucket Anda, Anda dikenai biaya akselerasi transfer berdasarkan ukuran data.
PutObject
Permintaan PUT
Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.
Biaya penyimpanan
Anda dikenai biaya penyimpanan berdasarkan kelas penyimpanan, ukuran, dan durasi penyimpanan objek.
HeadObject
Permintaan GET
Anda dikenai biaya permintaan berdasarkan jumlah permintaan yang berhasil.
Sisi IMM: Untuk harga detail, lihat Item yang dapat ditagih IMM.
PentingMulai pukul 11.00 UTC+8 pada 28 Juli 2025, harga layanan pengambilan frame IMM akan disesuaikan. Untuk informasi selengkapnya, lihat Pengumuman penyesuaian penagihan IMM.
API
Item yang dapat ditagih
Deskripsi
CreateMediaConvertTask
VideoFraming
Anda dikenai biaya pengambilan frame video berdasarkan jumlah frame yang berhasil diambil.
Metode ubah ukuran
Metode ubah ukuran | Efek ubah ukuran |
stretch Regangkan citra agar mengisi seluruh ruang. Ketika citra dipaksa diubah ukurannya berdasarkan lebar dan tinggi yang ditentukan, jika rasio lebar-tinggi tidak konsisten dengan citra input, citra keluaran akan mengalami distorsi. |
|
crop Ubah ukuran dan potong citra. Citra diubah ukurannya secara proporsional sekecil mungkin di luar persegi panjang berdasarkan lebar dan tinggi yang ditentukan, lalu dipotong berdasarkan lebar dan tinggi yang ditentukan. |
|
fill Ubah ukuran citra dan pertahankan batas hitam. Citra diubah ukurannya secara proporsional sebesar mungkin di dalam persegi panjang berdasarkan lebar dan tinggi yang ditentukan. Ruang kosong dalam persegi panjang diisi dengan warna hitam. |
|
fit Ubah ukuran citra tanpa mempertahankan batas hitam. Citra diubah ukurannya secara proporsional sebesar mungkin di dalam persegi panjang berdasarkan lebar dan tinggi yang ditentukan. Jika rasio lebar-tinggi citra keluaran berbeda dari rasio lebar-tinggi citra input, lebar dan tinggi citra yang diubah ukuran akan berbeda dari lebar dan tinggi yang ditentukan. |
|



