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:
| 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
Pengiriman pekerjaan snapshot hanya dapat dilakukan menggunakan alur kerja di Konsol MPS.
Masuk ke Konsol MPS.
Di bilah navigasi atas, pilih wilayah dari daftar drop-down.

Di panel navigasi sisi kiri, pilih .
Di halaman Orkestrasi Alur Kerja, klik Create Workflow.
Di halaman Buat Alur Kerja, konfigurasikan node Input sesuai kebutuhan bisnis Anda.
Tambahkan node Snapshot.

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.
CatatanJika 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.
CatatanJika Anda mengatur parameter Mode Snapshot ke Tunggal, snapshot dinamai dalam format
{SnapshotTime}.jpgdan 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.
CatatanJika 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.
Klik OK. Node Snapshot berhasil dikonfigurasi.
Klik Save.
CatatanJika 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
Unggah video ke OSS.
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" } }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.
CatatanKesalahan timeout mungkin terjadi jika ukuran file input terlalu besar. Konfigurasikan mekanisme ulang berdasarkan kebutuhan bisnis Anda.
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.
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 | |
MPS SDK for Python | |
MPS SDK for PHP | |
MPS SDK for PHP (versi diperbarui) | |
MPS SDK for Node.js | |
MPS SDK for Go |
FAQ
Untuk informasi lebih lanjut, lihat FAQ tentang Penangkapan Snapshot.