全部产品
Search
文档中心

ApsaraVideo Media Processing:Snapshot Video

更新时间:Jul 06, 2025

Gunakan fitur snapshot video untuk mengambil snapshot berukuran tertentu pada titik waktu tertentu dalam sebuah video. Snapshot ini digunakan untuk menghasilkan thumbnail video, sprite, dan thumbnail bilah kemajuan. Topik ini menjelaskan cara mengirim pekerjaan snapshot untuk menangkap snapshot video di ApsaraVideo Media Processing (MPS).

Ikhtisar

Skenario

  • Thumbnail video: Anda dapat menangkap frame pertama dari sebuah video sebagai thumbnail video dalam aliran feed video pendek, atau menangkap snapshot pada titik waktu tertentu dari sebuah video sebagai thumbnail video.

  • Pratinjau video: Anda dapat membuat thumbnail berdasarkan konten video. Ketika Anda menggerakkan pointer di atas garis waktu video di pemutar, thumbnail statis video pada titik waktu tertentu akan ditampilkan. Ini membantu Anda dengan cepat melihat isi video dan mencari konten yang Anda minati.

  • Moderasi video: Anda dapat menangkap beberapa snapshot dari sebuah video untuk tinjauan manual atau otomatis.

Fitur

Fitur

Deskripsi

Parameter Operasi API

MPS console

Snapshot statis

Fitur ini memungkinkan Anda mengambil snapshot berukuran tertentu pada titik waktu tertentu dalam sebuah video dalam format JPG. Mode snapshot berikut disediakan:

  • Tunggal: Sebuah snapshot diambil pada titik waktu tertentu dari sebuah video. Jenis snapshot ini dapat diambil secara sinkron atau asinkron.

  • Banyak: Snapshot diambil pada interval tertentu dari titik waktu tertentu hingga jumlah snapshot tertentu diambil atau video berakhir. Anda dapat menentukan interval dalam satuan detik. Jenis snapshot ini diambil secara asinkron.

  • Rata-rata: Sejumlah snapshot tertentu diambil dari titik waktu tertentu dalam sebuah video hingga akhir video pada interval reguler. Jenis snapshot ini diambil secara asinkron.

  • Titik waktu (dalam pengujian beta): Snapshot diambil pada titik waktu yang ditentukan dalam sebuah video. Jenis snapshot ini diambil secara asinkron.

SnapshotConfig

Didukung

Snapshot sprite

Fitur ini memungkinkan Anda membuat sprite dengan menggabungkan snapshot yang diambil ke dalam satu gambar berdasarkan aturan tertentu. Sprite tersebut dalam format JPG. Jenis snapshot ini diambil secara asinkron. Pengguna dapat mengirim permintaan untuk menanyakan informasi tentang beberapa gambar sekaligus. Ini sangat mengurangi jumlah permintaan API untuk gambar dan meningkatkan kinerja klien.

TileOut dan TileOutputFile

Tidak didukung

Snapshot WebVTT

Fitur ini memungkinkan Anda menghasilkan file VTT untuk snapshot yang diambil atau sprite yang dibuat. File VTT berisi waktu saat snapshot diambil, jalur snapshot, dan koordinat snapshot dalam sprite. Ketika klien meminta gambar, gambar tersebut ditampilkan setelah file VTT yang sesuai diperoleh dan diuraikan. Fitur ini dapat digunakan untuk menampilkan thumbnail pada bilah kemajuan.

SubOut

Didukung

Snapshot keyframe

Fitur ini memungkinkan Anda hanya menangkap keyframe. Jika frame pada titik waktu yang ditentukan bukan keyframe, keyframe terdekat akan ditangkap.

FrameType

Didukung

Pendeteksian layar hitam

Fitur ini memungkinkan Anda mendeteksi apakah snapshot pertama adalah layar hitam. Untuk menggunakan fitur ini, atur parameter Waktu ke 0, yang menentukan bahwa snapshot diambil dari awal video. Anda dapat mendefinisikan layar hitam dengan menentukan bagian piksel hitam dalam sebuah gambar dan nilai warna piksel hitam. Jika fitur pendeteksian layar hitam diaktifkan, sistem memeriksa frame dalam 5 detik pertama video. Jika ada frame non-hitam, frame non-hitam tersebut akan ditangkap. Jika tidak, pekerjaan gagal jika pekerjaan adalah pekerjaan snapshot tunggal, atau frame hitam pertama ditangkap jika pekerjaan adalah pekerjaan snapshot banyak.

BlackLevel dan PixelBlackThreshold

Didukung

Deskripsi

Biaya snapshot dihitung berdasarkan jumlah snapshot. Untuk informasi lebih lanjut, lihat bagian "Biaya untuk panggilan API" dari topik Biaya transkoding audio dan video.

Kirim pekerjaan snapshot di Konsol MPS

Catatan

Pengiriman pekerjaan snapshot hanya dapat dilakukan menggunakan alur kerja di Konsol MPS.

  1. Masuk ke Konsol MPS.

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

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

  4. Di halaman Orkestrasi Alur Kerja, klik Create Workflow.

  5. Di halaman Buat Alur Kerja, konfigurasikan node Input sesuai kebutuhan bisnis Anda.

  6. Tambahkan node Snapshot.image.png

  7. Klik ikon Pen di sebelah node Snapshot. Pada kotak dialog Snapshot, konfigurasikan parameter sesuai dengan tabel berikut.

    Parameter

    Diperlukan

    Deskripsi

    Snapshot Mode

    Ya

    • Single: menangkap snapshot video pada titik waktu tertentu.

    • Multiple: menentukan interval waktu untuk menangkap snapshot banyak secara merata dari video. Setiap snapshot adalah file gambar. Snapshot multi-frame juga disebut snapshot batch atau ordinal.

    • Average: membagi video secara merata dan menangkap snapshot berdasarkan jumlah snapshot yang ditentukan.

    Snapshot Interval (Seconds)

    Ya jika Anda mengatur parameter Mode Snapshot ke Banyak

    Interval untuk menangkap snapshot. Unit: detik.

    Snapshots

    Ya jika Anda mengatur parameter Mode Snapshot ke Rata-rata

    Jumlah snapshot yang akan ditangkap.

    Catatan
    • Jika parameter Snapshot tidak ditentukan, snapshot ditangkap berdasarkan interval yang ditentukan hingga akhir video.

    • Jika nilai parameter Snapshot lebih besar dari 1, snapshot ditangkap berdasarkan interval yang ditentukan hingga jumlah snapshot mencapai jumlah yang ditentukan.

    • Jika hanya parameter Snapshot yang ditentukan, snapshot ditangkap secara merata berdasarkan durasi total dibagi dengan jumlah snapshot.

    Name

    Ya

    Nama node Snapshot.

    Output Path

    Ya

    Jalur file output yang akan disimpan di Bucket OSS. Klik Select di sebelah bidang Jalur Output. Di kotak dialog Pilih Jalur Output, pilih Bucket OSS dari daftar drop-down Bucket. Kemudian, folder di Bucket OSS secara otomatis ditampilkan di bagian Path. Pilih folder sebagai jalur output.

    Catatan
    • Jika Anda mengatur parameter Mode Snapshot ke Tunggal, snapshot dinamai dalam format {SnapshotTime}.jpg dan diekspor ke folder /path/{RunId} di bawah Bucket OSS. Misalnya, jalur output mungkin http://bucket.oss-cn-hangzhou.aliyuncs.com/path/{RunId}/{SnapshotTime}.jpg.

    • Jika Anda mengatur parameter Mode Snapshot ke Banyak atau Rata-rata, placeholder {Count} digunakan. Dalam hal ini, bagian akhir jalur output dalam format /{RunId}/{SnapshotTime}/{Count}.jpg.

    Start Time

    Tidak

    Waktu ketika alur kerja mulai menangkap snapshot. Pilih jam, menit, dan detik dari daftar drop-down.

    Width x Height

    Tidak

    Ukuran dan tinggi snapshot.

    Catatan
    • Jika parameter Lebar atau Tinggi tidak ditentukan, ukuran snapshot output sama dengan ukuran video input.

    • Jika hanya salah satu parameter Lebar atau Tinggi yang ditentukan, sisi yang tidak ditentukan diskalakan berdasarkan rasio aspek video input. Ini mencegah deformasi gambar.

    Generate WebVTT Index File

    Ya jika Anda mengatur parameter Mode Snapshot ke Banyak atau Rata-rata

    Menentukan apakah akan menggunakan thumbnail dalam format WebVTT.

    Set as Thumbnail

    Tidak

    Menentukan apakah akan menggunakan snapshot sebagai thumbnail file media. Jika Anda menghidupkan sakelar, snapshot yang ditangkap pada titik waktu yang ditentukan digunakan sebagai thumbnail. Jika beberapa snapshot ditangkap, yang pertama digunakan sebagai thumbnail secara default.

    Keyframe

    Tidak

    Menentukan apakah hanya menangkap keyframe sebagai snapshot. Jika Anda menghidupkan sakelar, hanya keyframe yang ditangkap sebagai snapshot. Jika frame pada titik waktu yang ditentukan bukan keyframe, MPS menangkap snapshot dari keyframe terdekat.

    Black Screen Detection

    Ya jika Anda mengatur parameter Mode Snapshot ke Banyak atau Rata-rata

    Menentukan apakah mendeteksi 5 detik pertama video. Jika Anda menghidupkan sakelar dan gambar muncul dalam 5 detik pertama, konten frame non-hitam pertama ditangkap.

  8. Klik OK. Node Snapshot berhasil dikonfigurasi.

  9. Klik Save.

    Catatan

    Jika file diunggah ke jalur yang ditentukan oleh parameter Jalur Input setelah alur kerja dibuat, alur kerja dipicu. Untuk informasi lebih lanjut tentang cara memicu alur kerja, lihat Picu alur kerja.

Kirim pekerjaan snapshot dengan memanggil operasi API

  1. Unggah video ke OSS.

  2. Kirim pekerjaan snapshot. Anda dapat memanggil operasi SubmitSnapshotJob untuk mengirim pekerjaan snapshot. Anda dapat mengonfigurasi parameter SnapshotConfig untuk mengirim pekerjaan snapshot dalam mode sinkron atau asinkron, menghasilkan sprite, atau menangkap snapshot Format Web Video Text Tracks (WebVTT). Untuk informasi lebih lanjut tentang parameter SnapshotConfig, lihat Detail Parameter.

    Kirim pekerjaan snapshot untuk menangkap snapshot dalam mode sinkron

    Tangkap keyframe pada milidetik ke-100 video. Lebar snapshot output adalah 1.280 piksel, dan tinggi snapshot output dihitung berdasarkan rasio aspek video input. File snapshot disimpan dalam format JPG.
    Jika Anda ingin mengirim pekerjaan snapshot dalam mode sinkron, jangan tentukan parameter Num atau Interval. Pekerjaan snapshot dalam mode sinkron tidak dapat digunakan untuk menangkap snapshot WebVTT atau menghasilkan sprite.
    {
      "Time":"100",
      "FrameType":"intra",
      "Width":"1280",
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.jpg"
    	}
    }

    Kirim pekerjaan snapshot untuk menangkap snapshot dalam mode asinkron

    Tangkap keyframe di awal video dan aktifkan fitur pendeteksian layar hitam. Lebar dan tinggi snapshot output sama dengan video input. File snapshot 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"
    	}
    }

    Kirim pekerjaan snapshot untuk menangkap snapshot banyak

    Tangkap frame reguler setiap 10 detik dari awal video hingga 200 frame ditangkap atau video berakhir.
    Aktifkan fitur pendeteksian layar hitam untuk snapshot pertama. Lebar dan tinggi snapshot output sama dengan video input. Snapshot dinamai dalam format example{Count}.jpg.
    {
      "Num":"200",
      "Time":"0",
      "Interval":"10",
      "FrameType":"normal",
      "BlackLevel":"100",
      "PixelBlackThreshold":"30",
      // Untuk mencegah file output saling menimpa saat Anda menangkap snapshot banyak sekaligus, Anda harus menentukan placeholder {Count} saat mengonfigurasi parameter OutputFile.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Kirim pekerjaan snapshot untuk menangkap snapshot secara merata

    Tangkap 200 frame reguler secara merata dari milidetik ke-100 hingga akhir video. Lebar dan tinggi snapshot output adalah 1.280 piksel dan 720 piksel. Snapshot dinamai dalam format example{Count}.jpg.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Untuk mencegah file output saling menimpa saat Anda menangkap snapshot banyak sekaligus, Anda harus menentukan placeholder {Count} saat mengonfigurasi parameter OutputFile.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Kirim pekerjaan snapshot untuk menghasilkan sprite

    Tangkap 200 frame reguler secara merata dari milidetik ke-100 hingga akhir video. Lebar dan tinggi snapshot output adalah 1.280 piksel dan 720 piksel.
    Gabungkan snapshot menjadi sprite dalam tata letak 10*10. Sprite disimpan di bucket bernama example-bucket002, dan snapshot asli disimpan di bucket bernama example-bucket001.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Untuk mencegah file output saling menimpa saat Anda menangkap snapshot dan menghasilkan sprite pada saat yang sama, atur parameter OutputFile dan TileOutputFile ke jalur yang berbeda. Anda harus menentukan placeholder {TileCount} saat mengonfigurasi parameter TileOutputFile.
      "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"
      },
      "TileOutputFile":{ 
      	"Bucket":"example-bucket002",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{TileCount}.jpg"
    	}
    }

    Kirim pekerjaan snapshot untuk menangkap snapshot WebVTT

    Tangkap 200 frame reguler secara merata dari milidetik ke-100 hingga akhir video. Lebar dan tinggi snapshot output adalah 1.280 piksel dan 720 piksel. Snapshot output adalah snapshot WebVTT.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // Hasilkan snapshot WebVTT. Ekstensi nama file dalam nilai parameter Object harus diatur ke .vtt. Jalur penyimpanan file snapshot adalah example/snapshot-tile-{Count}.jpg
      "OutputFile": {
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.vtt"
    	},
      "Format":"vtt",
      "SubOut":{
        "IsSptFrag":"true"
      }
    }
  3. Jika Anda memanggil operasi untuk mengirim pekerjaan snapshot dalam mode sinkron untuk menangkap snapshot tunggal, hasil pekerjaan dikembalikan dalam respons operasi. Untuk pekerjaan snapshot dalam mode asinkron, Anda harus mengonfigurasi callback Simple Message Queue (sebelumnya MNS) (SMQ) atau memanggil operasi untuk menanyakan hasil.

    Catatan

    Kesalahan timeout mungkin terjadi jika ukuran file input terlalu besar. Konfigurasikan mekanisme ulang berdasarkan kebutuhan bisnis Anda.

  4. Disarankan. Konfigurasikan notifikasi callback.

    Jika fitur notifikasi diaktifkan untuk pekerjaan snapshot, Anda dapat menerima notifikasi di antrian atau topik yang ditentukan di Simple Message Queue (formerly MNS) setelah pekerjaan snapshot selesai. Untuk informasi lebih lanjut, lihat Terima Notifikasi.

  5. Tanyakan Hasil Pekerjaan Snapshot.

    Anda dapat memanggil operasi QuerySnapshotJobList untuk menanyakan hasil pekerjaan snapshot berdasarkan ID pekerjaan. Anda juga dapat melakukan query berhalaman berdasarkan kondisi seperti status pekerjaan snapshot, waktu pembuatan pekerjaan, dan antrian MPS tempat pekerjaan dikirim. Dalam hal ini, Anda tidak perlu menentukan ID pekerjaan snapshot.

Kirim pekerjaan snapshot menggunakan SDK

SDK

Referensi

MPS SDK for Java

Kelola pekerjaan snapshot

MPS SDK for Python

Tangkap snapshot

MPS SDK for PHP

Tangkap snapshot

MPS SDK for PHP (versi diperbarui)

Tangkap snapshot

MPS SDK for Node.js

Tangkap snapshot

MPS SDK for Go

Tangkap snapshot

FAQ

Untuk informasi lebih lanjut, lihat FAQ tentang Penangkapan Snapshot.