全部产品
Search
文档中心

ApsaraVideo Media Processing:Kelola pekerjaan snapshot

更新时间:Jul 06, 2025

Anda dapat menggunakan fitur snapshot video untuk menangkap snapshot dengan ukuran tertentu pada titik waktu tertentu dalam sebuah video. Snapshot ini digunakan dalam skenario seperti thumbnail video, sprite, dan thumbnail bilah kemajuan. Anda dapat menggunakan pekerjaan snapshot untuk menentukan titik waktu dan interval di mana snapshot akan ditangkap, jumlah snapshot, tipe snapshot, serta apakah akan menyusun snapshot ke dalam sebuah gambar. Anda dapat mengirimkan pekerjaan snapshot di konsol ApsaraVideo Media Processing (MPS) atau dengan menggunakan API atau SDK. Topik ini memberikan contoh cara menggunakan MPS SDK untuk Java V2.0 untuk mengirimkan dan menanyakan pekerjaan snapshot.

Prasyarat

Sebuah klien SDK telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien.

Kirim pekerjaan snapshot

Anda dapat memanggil operasi SubmitSnapshotJob untuk mengirimkan pekerjaan snapshot.

Catatan
  • Saat mengirimkan pekerjaan snapshot menggunakan SDK, jalur file tempat file Anda berada harus dienkripsi URL. Jika tidak, pengiriman pekerjaan snapshot akan gagal. Untuk informasi lebih lanjut, lihat Pengkodean URL.

  • Nama file harus valid. Jika tidak, file tidak dapat ditemukan dan pengiriman pekerjaan snapshot akan gagal. Untuk informasi lebih lanjut, lihat Detail Parameter.

  • Disarankan untuk mencatat ID pekerjaan snapshot. Ini akan memudahkan operasi penanyaan selanjutnya.

package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     *  :
     * <p>Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.mts20140618.Client createClient() throws Exception {

        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "mts.cn-qingdao.aliyuncs.com";
        return new com.aliyun.mts20140618.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.mts20140618.Client client = Sample.createClient();
        com.aliyun.mts20140618.models.SubmitSnapshotJobRequest submitSnapshotJobRequest = new com.aliyun.mts20140618.models.SubmitSnapshotJobRequest()
                // Masukan pekerjaan.
                .setInput("{\"Bucket\":\"example-bucket\",\"Location\":\"example-location\",\"Object\":\"example%2Ftest.flv\"}")
                // Konfigurasi pekerjaan snapshot.
                .setSnapshotConfig("{\"OutputFile\":{\"Bucket\":\"example-001\",\"Location\":\"example-location\",\"Object\":\"{Count}.jpg\"},\"Time\":\"5\",\"Num\":\"10\",\"Interval\":\"20\"}")
                // Data yang ditentukan pengguna.
                .setUserData("testid-001")
                // ID antrian MPS.
                .setPipelineId("dd3dae411e704030b921e52698e5****");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika perlu.
            client.submitSnapshotJobWithOptions(submitSnapshotJobRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
            // Pesan kesalahan.
            System.out.println(error.getMessage());
            // URL halaman diagnostik kesalahan yang sesuai.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
            // Pesan kesalahan.
            System.out.println(error.getMessage());
            // URL halaman diagnostik kesalahan yang sesuai.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

Kueri hasil pekerjaan snapshot

Anda dapat memanggil operasi QuerySnapshotJobList untuk menanyakan hasil pekerjaan snapshot.

package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     *  :
     * <p>Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.mts20140618.Client createClient() throws Exception {

        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. 
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        config.endpoint = "mts.cn-qingdao.aliyuncs.com";
        return new com.aliyun.mts20140618.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.mts20140618.Client client = Sample.createClient();
        com.aliyun.mts20140618.models.QuerySnapshotJobListRequest querySnapshotJobListRequest = new com.aliyun.mts20140618.models.QuerySnapshotJobListRequest()
                // ID pekerjaan snapshot.
                .setSnapshotJobIds("72dfa5e679ab4be9a3ed9974c736****")
                // Status pekerjaan snapshot yang akan diperiksa.
                .setState("Snapshoting")
                // Awal rentang waktu dalam mana pekerjaan snapshot yang akan diperiksa dibuat.
                .setStartOfJobCreatedTimeRange("2014-01-10T12:00:00Z")
                // Akhir rentang waktu dalam mana pekerjaan snapshot yang akan diperiksa dibuat.
                .setEndOfJobCreatedTimeRange("2014-01-12T12:00:00Z")
                // ID antrian MPS.
                .setPipelineId("b11c171cced04565b1f38f1ecc39****")
                // Token paginasi yang digunakan dalam permintaan berikutnya untuk mengambil halaman hasil baru.
                .setNextPageToken("cc6cbef8e8d5481ca536f5d2a466****")
                // Jumlah maksimum entri yang akan dikembalikan di setiap halaman.
                .setMaximumPageSize(30L);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika perlu.
            client.querySnapshotJobListWithOptions(querySnapshotJobListRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati dalam skenario bisnis nyata dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi. 
            // Pesan kesalahan.
            System.out.println(error.getMessage());
            // URL halaman diagnostik kesalahan yang sesuai.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati dalam skenario bisnis nyata dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi. 
            // Pesan kesalahan.
            System.out.println(error.getMessage());
            // URL halaman diagnostik kesalahan yang sesuai.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

Referensi