全部产品
Search
文档中心

ApsaraVideo Media Processing:Tangkap 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 menentukan waktu pengambilan snapshot, interval antara dua snapshot berturut-turut, jumlah snapshot yang dihasilkan, jenis snapshot, serta apakah akan menyusun beberapa snapshot menjadi satu sprite gambar. Anda dapat mengirimkan pekerjaan snapshot melalui konsol ApsaraVideo Media Processing (MPS) atau menggunakan API atau SDK. Topik ini memberikan contoh penggunaan MPS SDK untuk Python V2.0 dalam menangkap snapshot.

Kode contoh

import os
import sys

from typing import List

from alibabacloud_mts20140618.client import Client as Mts20140618Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_mts20140618 import models as mts_20140618_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Mts20140618Client:
        """
        Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.
        @return: Klien
        @throws Exception
        """
        config = open_api_models.Config(
            # Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. ,
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. ,
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        config.endpoint = f'mts.cn-hangzhou.aliyuncs.com'
        return Mts20140618Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        submit_snapshot_job_request = mts_20140618_models.SubmitSnapshotJobRequest(
            # Masukan pekerjaan.
            input='{"Bucket":"example-bucket","Location":"example-location","Object":"example%2Ftest.flv"}',
            # Konfigurasi snapshot.
            snapshot_config='{"OutputFile":{"Bucket":"example-001","Location":"example-location","Object":"{Count}.jpg"},"Time":"5","Num":"10","Interval":"20"}',
            # Data yang ditentukan pengguna.
            user_data='testid-001',
            # ID antrian MPS.
            pipeline_id='dd3dae411e704030b921e52698e5****'
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
            client.submit_snapshot_job_with_options(submit_snapshot_job_request, runtime)
        except Exception as 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.
            print(error.message)
            # URL halaman diagnostik kesalahan yang sesuai.
            print(error.data.get("Recommend"))
            UtilClient.assert_as_string(error.message)

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        submit_snapshot_job_request = mts_20140618_models.SubmitSnapshotJobRequest(
            # Masukan pekerjaan.
            input='{"Bucket":"example-bucket","Location":"example-location","Object":"example%2Ftest.flv"}',
            # Konfigurasi snapshot.
            snapshot_config='{"OutputFile":{"Bucket":"example-001","Location":"example-location","Object":"{Count}.jpg"},"Time":"5","Num":"10","Interval":"20"}',
            # Data yang ditentukan pengguna.
            user_data='testid-001',
            # ID antrian MPS.
            pipeline_id='dd3dae411e704030b921e52698e5****'
        )
        runtime = util_models.RuntimeOptions()
        try:
            # Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
            await client.submit_snapshot_job_with_options_async(submit_snapshot_job_request, runtime)
        except Exception as 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.
            print(error.message)
            # URL halaman diagnostik kesalahan yang sesuai.
            print(error.data.get("Recommend"))
            UtilClient.assert_as_string(error.message)


if __name__ == '__main__':
    Sample.main(sys.argv[1:])

Referensi