All Products
Search
Document Center

ApsaraVideo Media Processing:Video snapshot

Last Updated:Jun 21, 2026

Video snapshot adalah gambar yang diambil dari video pada waktu dan dimensi tertentu. Snapshot digunakan untuk membuat aset seperti video cover, sprite, dan thumbnail untuk bilah progres pemutar. Topik ini menjelaskan cara mengirim pekerjaan snapshot di ApsaraVideo Media Processing (MPS).

Ikhtisar

Kasus penggunaan

  • Video cover: Pilih frame pertama dari video pendek di feed sebagai cover-nya, atau ambil frame pada titik waktu tertentu untuk digunakan sebagai cover.

  • Pratinjau video: Buat thumbnail dari konten video Anda. Saat pengguna mengarahkan kursor ke timeline pemutar, pemutar menampilkan thumbnail statis dari titik waktu tersebut. Hal ini membantu pengguna menjelajahi konten video dengan cepat dan melompat ke bagian yang diminati.

  • Moderasi video: Ambil sampel konten video dengan mengambil snapshot untuk ditinjau secara manual atau otomatis.

Fitur

Feature

Description

Related API parameters

Console operation

Static snapshot

Mengambil snapshot JPG dengan ukuran tertentu pada titik waktu tertentu dalam video. Metode pengambilan sampel berikut tersedia:

  • Single snapshot: Mengambil satu snapshot pada titik waktu tertentu. Metode ini mendukung panggilan sinkron dan asinkron.

  • Interval snapshot: Mengambil snapshot pada interval tertentu mulai dari waktu awal. Berhenti ketika jumlah snapshot tercapai atau video berakhir. Interval dalam satuan detik. Hanya mendukung panggilan asinkron.

  • Average snapshot: Mengambil jumlah snapshot tertentu pada interval reguler dari titik waktu tertentu hingga akhir video. Metode ini hanya mendukung panggilan asinkron.

  • Time-point snapshot: Mengambil snapshot pada serangkaian titik waktu tertentu. Metode ini hanya mendukung panggilan asinkron.

SnapshotConfig

Supported

Sprite snapshot

Menyatukan snapshot statis menjadi satu gambar besar (sprite) berdasarkan aturan tata letak. Output dalam format JPG. Hanya mendukung panggilan asinkron. Satu permintaan sprite mengambil beberapa gambar sekaligus, sehingga mengurangi jumlah permintaan dan meningkatkan performa client.

TileOut, TileOutputFile

Not supported

WebVTT snapshot

Menghasilkan file VTT untuk snapshot statis atau sprite, berisi informasi timestamp, URL file, dan koordinat. Untuk menampilkan gambar, Anda harus mengambil dan mengurai file VTT terlebih dahulu. Berguna untuk thumbnail bilah progres pemutar.

SubOut

Supported

Keyframe snapshot

Fitur ini hanya mengambil snapshot pada keyframe. Jika titik waktu yang ditentukan bukan keyframe, layanan akan menggunakan keyframe terdekat sebagai gantinya.

FrameType

Supported

First-frame black screen detection

Anda dapat mengaktifkan deteksi layar hitam untuk frame pertama (time=0). Layar hitam didefinisikan berdasarkan persentase piksel hitam dan ambang batas nilai warna. Layanan memindai 5 detik pertama: jika ditemukan frame non-hitam, frame tersebut diambil. Jika tidak, pekerjaan single-snapshot gagal; pekerjaan multi-snapshot mengambil frame hitam pertama.

BlackLevel, PixelBlackThreshold

Supported

Billing

Anda dikenai biaya untuk panggilan API berdasarkan jumlah snapshot yang dihasilkan. Untuk informasi selengkapnya, lihat Pricing for API calls.

Submit snapshot jobs in the console

Catatan

Di Konsol MPS, Anda hanya dapat mengirim pekerjaan snapshot dengan menggunakan workflow.

  1. Masuk ke MPS console.

  2. Di bilah navigasi atas, pilih wilayah dari daftar drop-down.Region

  3. Di panel navigasi kiri, pilih Workflow > Workflow Orchestration.

  4. Klik Create Workflow.

  5. Konfigurasikan node Input sesuai kebutuhan.

  6. Tambahkan node Snapshot. Klik ikon + di sebelah kanan node Input dan pilih Snapshot dari menu drop-down.

  7. Klik ikon pena di sebelah kanan node Snapshot untuk mengonfigurasi parameternya.

    Parameter

    Required

    Description

    Snapshot Mode

    Yes

    • Single: Mengambil satu frame pada waktu tertentu.

    • Multiple: Mengambil frame pada interval tertentu.

    • Average: Mengambil jumlah frame tertentu yang tersebar merata sepanjang video.

    Snapshot interval (seconds)

    Required for 'Multiple' mode

    Masukkan interval antar snapshot dalam satuan detik.

    Snapshots

    Required for 'Average' mode

    Masukkan jumlah snapshot.

    Catatan
    • Jika parameter ini tidak diatur, snapshot diambil pada interval tertentu hingga akhir video.

    • Jika jumlah snapshot lebih dari 1, snapshot diambil pada interval tertentu hingga jumlah gambar yang ditentukan tercapai.

    • Jika hanya jumlah snapshot yang diatur, snapshot diambil pada interval Durasi Total / Jumlah Snapshot.

    Name

    Yes

    Masukkan nama untuk node ini.

    Output Path

    Yes

    Klik Select. Dari daftar drop-down Bucket, pilih bucket. Bagian Path menampilkan folder yang dibuat di bucket tersebut. Pilih folder sebagai jalur output.

    Catatan
    • Format jalur single snapshot: http://bucket.oss-cn-hangzhou.aliyuncs.com/path/{RunId}/{SnapshotTime}.jpg.

    • Format jalur multiple atau average snapshot: Memerlukan placeholder {Count}. Jalur harus diakhiri dengan /{RunId}/{SnapshotTime}/{Count}.jpg.

    Start Time

    No

    Pilih waktu dari daftar drop-down untuk jam, menit, dan detik.

    Width x Height

    No

    Masukkan nilai lebar dan tinggi pada kotak input masing-masing.

    Catatan
    • Jika Anda membiarkan lebar dan tinggi kosong, resolusi snapshot akan sama dengan video sumber.

    • Jika Anda hanya mengatur lebar atau tinggi, dimensi lainnya akan diskalakan secara otomatis untuk mempertahankan rasio aspek asli.

    Generate WebVTT Index File

    Optional for Multiple and Average modes

    Aktifkan opsi ini untuk menghasilkan file indeks WebVTT.

    Set as Thumbnail

    No

    Aktifkan opsi ini untuk menetapkan gambar yang diambil sebagai cover untuk aset media di perpustakaan. Jika beberapa snapshot diambil, snapshot pertama akan diatur sebagai cover secara default.

    Keyframe

    No

    Aktifkan opsi ini untuk memastikan snapshot hanya diambil pada keyframe. Jika titik waktu yang ditentukan bukan keyframe, keyframe terdekat akan digunakan sebagai gantinya.

    Black Screen Detection

    Optional for Multiple and Average modes

    Aktifkan opsi ini untuk mendeteksi dan melewati frame hitam di awal video. Jika frame non-hitam terdeteksi dalam lima detik pertama, MPS akan mengambil frame non-hitam pertama.

  8. Klik OK untuk menyelesaikan konfigurasi node snapshot.

  9. Klik Save untuk menyelesaikan konfigurasi workflow.

    Catatan

    Setelah workflow dibuat, workflow tersebut akan dipicu secara otomatis ketika file baru yang memenuhi kriteria input diunggah ke jalur yang ditentukan. Untuk informasi selengkapnya tentang cara memicu workflow, lihat Trigger a workflow.

Submit snapshot jobs by APIimage.png

  1. Unggah video ke OSS.

  2. Kirim pekerjaan snapshot. Panggil API SubmitSnapshotJob dan konfigurasikan parameter SnapshotConfig untuk mengirim pekerjaan snapshot single sinkron, snapshot single asinkron, sprite, atau snapshot WebVTT. Bagian berikut menunjukkan contoh struktur parameter SnapshotConfig. Untuk informasi selengkapnya, lihat Parameter details.

    Synchronous single snapshot

    // Ambil satu keyframe pada 100 ms ke dalam video. Lebar gambar output adalah 1280 px, dan tingginya adaptif. Gambar disimpan dalam format JPG.
    // Mode sinkron tidak mendukung parameter Num atau Interval, dan juga tidak mendukung output sprite atau WebVTT.
    {
      "Time":"100",
      "FrameType":"intra",
      "Width":"1280",
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.jpg"
    	}
    }

    Asynchronous single snapshot

    // Ambil satu keyframe di awal video, dengan deteksi layar hitam frame pertama diaktifkan. Gambar output memiliki dimensi yang sama dengan video sumber dan disimpan dalam format JPG.
    {
      "Num":"1",
      "Time":"0",
      "FrameType":"intra",
      "BlackLevel":"100",
      "PixelBlackThreshold":"30",
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.jpg"
    	}
    }

    Sampled snapshot

    // Mulai dari awal video, ambil satu frame normal setiap 10 detik hingga maksimal 200 frame atau hingga video berakhir.
    // Deteksi layar hitam frame pertama diaktifkan. Gambar output memiliki dimensi yang sama dengan video sumber dan disimpan sebagai example{Count}.jpg.
    {
      "Num":"200",
      "Time":"0",
      "Interval":"10",
      "FrameType":"normal",
      "BlackLevel":"100",
      "PixelBlackThreshold":"30",
      // Untuk mencegah file ditimpa, Anda harus menggunakan placeholder {Count} dalam objek OutputFile untuk snapshot multipel.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Evenly-spaced snapshot

    // Ambil 200 frame normal yang tersebar merata, dari 100 ms hingga akhir video. Gambar output memiliki lebar 1280 px dan tinggi 720 px. Gambar disimpan sebagai example{Count}.jpg.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Untuk mencegah file ditimpa, Anda harus menggunakan placeholder {Count} dalam objek OutputFile untuk snapshot multipel.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Sprite

    // Ambil 200 frame normal yang tersebar merata, dari 100 ms hingga akhir video. Gambar output memiliki lebar 1280 px dan tinggi 720 px.
    // Gambar-gambar kecil disatukan menjadi sprite dengan tata letak 10x10. Sprite disimpan di example-bucket002, dan gambar-gambar kecil individual disimpan di example-bucket001.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Untuk mencegah file ditimpa, Anda harus menggunakan placeholder {Count} dalam objek OutputFile untuk snapshot multipel.
      "OutputFile":{
     		"Bucket":"example-bucket001",
    	  "Location":"oss-cn-hangzhou",
    	  "Object":"example{Count}.jpg"
    	},
      "TileOut":{
        "Lines":10,
        "Columns":10,
        "Padding":"2",
        "Margin":"4",
        "Color":"black",
        "IsKeepCellPic":"true"
      },
      // Untuk mencegah file ditimpa, atur OutputFile dan TileOutputFile ke bucket atau jalur objek yang berbeda. Anda juga harus menggunakan placeholder {TileCount} dalam objek TileOutputFile untuk sprite.
      "TileOutputFile":{ 
      	"Bucket":"example-bucket002",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{TileCount}.jpg"
    	}
    }

    WebVTT snapshot

    // Ambil 200 frame normal yang tersebar merata, dari 100 ms hingga akhir video. Gambar output memiliki lebar 1280 px dan tinggi 720 px. File VTT dihasilkan.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Untuk menghasilkan file VTT, Object harus memiliki ekstensi .vtt. Jalur gambar yang sesuai adalah example/snapshot-tile-{Count}.jpg.
      "OutputFile": {
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.vtt"
    	},
      "Format":"vtt",
      "SubOut":{
        "IsSptFrag":"true"
      }
    }
  3. Untuk pekerjaan snapshot single sinkron, API langsung mengembalikan hasil dalam responsnya. Untuk pekerjaan asinkron, Anda harus mengonfigurasi notifikasi pesan atau melakukan kueri hasil secara aktif.

    Catatan

    Jika file input terlalu besar, pekerjaan mungkin timeout dan gagal. Kami menyarankan untuk menerapkan mekanisme retry.

  4. (Disarankan) Terima notifikasi callback.

    Setelah pekerjaan asinkron selesai, jika notifikasi pesan dikonfigurasi, sistem akan mengirim pesan ke antrian atau topik yang ditentukan di Simple Message Queue (formerly MNS). Untuk informasi selengkapnya, lihat Receive message notifications.

  5. Kueri hasil pekerjaan.

    Panggil API QuerySnapshotJobList untuk mengkueri hasil satu atau beberapa pekerjaan snapshot dengan menentukan ID-nya. Atau, Anda dapat melakukan kueri berhalaman dengan memfilter pekerjaan berdasarkan status, waktu pembuatan, atau antrian MPS, tanpa menentukan ID pekerjaan.

Submit snapshot jobs by SDK

SDK

Guides

Java SDK

Snapshot

Python SDK

Snapshot

PHP SDK

Snapshot

PHP SDK (new version)

Snapshot

Node.js SDK

Snapshot

Go SDK

Snapshot

FAQ

Untuk pertanyaan umum tentang snapshot, lihat Snapshot FAQ.