全部产品
Search
文档中心

ApsaraVideo VOD:Pratinjau video

更新时间:Jan 29, 2026

Fitur pratinjau video memungkinkan pengguna menonton atau mendengarkan konten seperti video dan audio dalam durasi terbatas. Fitur ini umum digunakan pada layanan berbayar, seperti kursus berbayar dan drama pendek. Topik ini menjelaskan cara mengaktifkan fitur pratinjau video untuk ApsaraVideo VOD dan mendapatkan URL pratinjau.

Cara kerja

Alibaba Cloud ApsaraVideo VOD (VOD) menyediakan fitur pratinjau. Anda dapat memperoleh URL pratinjau dengan menetapkan durasi pratinjau saat memanggil operasi API GetPlayInfo di sisi server, atau dengan membuat URL yang ditandatangani yang berisi informasi pratinjau secara manual.

Penting

Jika durasi pratinjau yang ditentukan melebihi durasi total video asli, pengguna dapat memutar seluruh video menggunakan URL pratinjau yang dikembalikan oleh ApsaraVideo VOD.

Fitur pratinjau video ApsaraVideo VOD diimplementasikan berdasarkan Alibaba Cloud CDN. Prinsip dasarnya adalah sebagai berikut: Pemutar mengirim permintaan yang berisi URL pratinjau (nama domain yang dipercepat CDN) dengan durasi pratinjau tertentu. Cloud melakukan autentikasi terhadap URL pratinjau tersebut. Jika autentikasi berhasil, konten file yang ditentukan dikembalikan; jika tidak, akses ditolak dan error 403 dikembalikan. Gambar berikut menunjukkan alur kerja pratinjau video.

流程提示

  1. Anda mengonfigurasi nama domain yang dipercepat CDN dan mengaktifkan fitur pratinjau video.

    Penting

    Sebelum menggunakan fitur pratinjau, Anda harus mengonfigurasi nama domain dan mengaktifkan fitur pratinjau. Untuk informasi selengkapnya, lihat Aktifkan fitur pratinjau.

  2. Pemutar Anda mengirim permintaan pratinjau ke ApsaraVideo VOD.

  3. ApsaraVideo VOD menghasilkan URL pratinjau berdasarkan konfigurasi nama domain dan durasi pratinjau yang ditentukan dalam permintaan.

    Catatan

    Anda dapat memanggil operasi API sisi server untuk menghasilkan URL pratinjau atau membuat URL pratinjau secara manual. Untuk informasi selengkapnya, lihat Panggil operasi API untuk mendapatkan URL pratinjau atau Buat URL pratinjau secara manual.

  4. Pemutar Anda mengirim permintaan ke CDN untuk memutar video pratinjau.

Batasan

  • Fitur pratinjau video mendukung format file MP4 dan HLS. Untuk video MP4, metadata harus berada di header file. Video MP4 dengan metadata di akhir file tidak didukung. Saat Anda menggunakan ApsaraVideo VOD untuk mentranskode video ke format kontainer MP4, metadata ditempatkan di header file.

  • Durasi pratinjau bergantung pada keyframe. Secara default, keyframe dihasilkan setiap 10 detik untuk file output yang ditranskode oleh ApsaraVideo VOD. Oleh karena itu, kami menyarankan agar Anda tidak menggunakan fitur pratinjau untuk video pendek. Untuk video panjang, atur durasi pratinjau minimal 30 detik.

    Catatan

    Anda dapat mengubah interval keyframe dalam template transkoding. Untuk informasi selengkapnya, lihat Template Transkoding.

  • Untuk file HLS, presisi pratinjau didasarkan pada durasi segmen TS. Durasi pratinjau dibulatkan ke atas ke kelipatan terdekat dari durasi segmen TS. Misalnya, jika segmen TS berdurasi 10 detik dan Anda menetapkan durasi pratinjau menjadi 15 detik, maka pratinjau 20 detik akan dikembalikan.

Aktifkan fitur pratinjau video

Sebelum memanggil operasi API atau membuat URL secara manual untuk mendapatkan URL pratinjau, Anda harus mengonfigurasi nama domain dan mengaktifkan fitur pratinjau video. Ikuti langkah-langkah berikut:

  1. Konfigurasikan nama domain yang dipercepat CDN. Untuk informasi selengkapnya, lihat Tambahkan nama domain yang dipercepat.

    Penting

    Fitur pratinjau video hanya tersedia untuk nama domain yang dikonfigurasi sebagai nama domain yang dipercepat CDN.

  2. Anda dapat mengaktifkan Penandatanganan URL untuk nama domain dan juga mengaktifkan fitur pratinjau. Untuk informasi selengkapnya, lihat Penandatanganan URL.

    Penting

    Jika fitur pratinjau video dinonaktifkan untuk suatu nama domain, Anda tidak dapat menyertakan parameter pratinjau dalam permintaan ke ApsaraVideo VOD. URL yang dikembalikan akan tidak dapat diakses. Oleh karena itu, Anda harus mengaktifkan sakelar Support Previewing saat mengaktifkan Penandatanganan URL.

    Gambar berikut menunjukkan antarmuka konsol untuk mengaktifkan fitur pratinjau video.

    Catatan

    Untuk membuat URL pratinjau secara manual, Anda harus menggunakan parameter privateKey untuk menghitung nilai autentikasi. Atur parameter ini ke nilai Primary Key atau Secondary Key yang Anda peroleh dari Konsol. Catat nilai kunci tersebut untuk penggunaan di masa mendatang.

    开启试看功能

  3. Aktifkan Range origin fetch dan video seeking untuk nama domain tersebut. Untuk informasi selengkapnya, lihat Konfigurasi Range origin fetch dan Pencarian video.

Panggil operasi API untuk mendapatkan URL pratinjau

ApsaraVideo VOD menyediakan operasi API untuk mendapatkan URL pemutaran video. Untuk informasi selengkapnya tentang operasi API tersebut, lihat Dapatkan URL pemutaran audio dan video. Anda dapat mengintegrasikan SDK sisi server dan menggunakan SDK tersebut untuk memanggil operasi ini guna mendapatkan URL pratinjau. Untuk mendapatkan URL pratinjau, ikuti langkah-langkah berikut:

Penting

Sebelum memanggil operasi ini, pastikan fitur pratinjau telah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan fitur pratinjau.

  1. Integrasikan SDK sisi server yang sesuai. Untuk informasi selengkapnya, lihat Panduan Cepat SDK ApsaraVideo VOD.

  2. Panggil operasi API Dapatkan URL pemutaran audio dan video menggunakan SDK. Saat memanggil operasi API, tetapkan parameter PreviewTime di dalam parameter PlayConfig untuk menentukan durasi pratinjau. Server akan mengembalikan URL pratinjau berdasarkan durasi yang ditentukan. Untuk informasi selengkapnya tentang parameter PlayConfig, lihat PlayConfig.

Klik untuk melihat contoh kode untuk mendapatkan URL pratinjau (Java)

Catatan
  • Untuk contoh kode dalam bahasa lain, lihat OpenAPI.

  • Dapatkan Pasangan Kunci Akses untuk menyelesaikan verifikasi identitas agar Anda dapat memanggil operasi API ApsaraVideo VOD. Untuk informasi selengkapnya tentang cara mendapatkan Pasangan Kunci Akses, lihat Buat Pasangan Kunci Akses.


import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.vod.model.v20170321.GetPlayInfoRequest;
import com.aliyuncs.vod.model.v20170321.GetPlayInfoResponse;

/**
 * @date 2021/12/30
 */
public class VodPreviewTest {
    public static void main(String[] args) throws ClientException {
        // Tentukan wilayah tempat ApsaraVideo VOD diaktifkan. Untuk informasi selengkapnya, lihat wilayah ApsaraVideo VOD.
        String regionId = "cn-shanghai";
        // Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk memanggil semua operasi API. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
        // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Rahasia AccessKey secara langsung dalam kode proyek Anda. Jika tidak, Pasangan Kunci Akses dapat bocor dan keamanan semua sumber daya dalam akun Anda dapat terganggu.
        // Dalam contoh ini, Pasangan Kunci Akses diperoleh dari variabel lingkungan. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
        // ID AccessKey Anda.
        String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        // Rahasia AccessKey Anda.
        String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // ID video. Contoh: 533606af570e4db4961248d0978b****. Jika Anda mengunggah video di Konsol ApsaraVideo VOD, Anda dapat login ke konsol dan memilih Pustaka Media > Audio/Video untuk melihat ID video. Jika Anda mengunggah video dengan memanggil operasi CreateUploadVideo, nilai parameter VideoId dalam tanggapan adalah ID video.
        String videoId = "<your videoId>";
        DefaultAcsClient client = InitVodClient(regionId, accessKeyId, accessKeySecret);
        GetPlayInfoResponse response = null;
        try {
            response = getPlayInfo(client, videoId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("response = " + JSONObject.toJSONString(response));

    }

    /**
     * Inisialisasi klien.
     *
     * @param regionId
     * @param accessKeyId
     * @param accessKeySecret
     * @return
     * @throws ClientException
     */
    public static DefaultAcsClient InitVodClient(String regionId, String accessKeyId, String accessKeySecret) throws ClientException {
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(profile);
        return client;
    }

    /**
     * Dapatkan URL pemutaran video.
     *
     * @param client
     * @param videoId
     * @return
     * @throws Exception
     */
    public static GetPlayInfoResponse getPlayInfo(DefaultAcsClient client, String videoId) throws Exception {
        GetPlayInfoRequest request = new GetPlayInfoRequest();
        request.setVideoId(videoId);
        // Periode validitas URL. Satuan: detik. Jika Anda tidak menetapkan parameter ini, nilai default 3600 akan digunakan.
        request.setAuthTimeout(3600L);
        request.setFormats("mp4");
        JSONObject playConfig = new JSONObject();
        // Durasi pratinjau. Satuan: detik. Nilai minimum adalah 1.
        playConfig.put("PreviewTime", "30");
        request.setPlayConfig(playConfig.toJSONString());
        return client.getAcsResponse(request);
    }
}
                

Buat URL pratinjau secara manual

Anda dapat membuat URL yang ditandatangani yang berisi informasi pratinjau secara manual. Ikuti langkah-langkah berikut:

Penting

Sebelum membuat URL pratinjau, pastikan fitur pratinjau telah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan fitur pratinjau.

  1. Buat URL yang ditandatangani yang berisi parameter pratinjau. Berbeda dengan pembuatan URL yang ditandatangani untuk pemutaran penuh, Anda harus menyertakan parameter durasi pratinjau previewTime dalam perhitungan hash MD5 untuk Penandatanganan URL.

    Perhitungan hash MD5 untuk URL video penuh

    Perhitungan hash MD5 untuk URL pratinjau

    MD5(uri-timestamp-rand-uid-PrivateKey)

    MD5(uri-timestamp-rand-uid-PrivateKey-previewTime)

    Catatan

    Untuk informasi selengkapnya tentang parameter untuk perhitungan hash MD5 dan cara membuat URL yang ditandatangani secara manual, lihat Konfigurasi Penandatanganan URL. Jika Anda ingin mengizinkan pemutaran penuh video, jangan sertakan parameter previewTime.

  2. Tambahkan &end= di akhir URL yang ditandatangani yang telah dibuat. Kemudian, tambahkan parameter pratinjau previewTime setelah &end= untuk menghasilkan URL pratinjau lengkap.

Klik untuk melihat dependensi yang diperlukan untuk paket JAR untuk pembuatan manual (Java)

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

Klik untuk melihat contoh kode untuk membuat URL pratinjau secara manual (Java)

    import java.util.UUID;
    import java.net.URL;
    import org.apache.commons.lang3.StringUtils;
    private String generateRand() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }
    private String md5(String str) {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.update(str.getBytes("UTF-8"));
            return bytesToHex(md5.digest());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public String genAuthKey(String object, String privateKey, Long expireTime, Long previewTime) {
        String rand = "0";
        String uid = "0";
        if (StringUtils.isBlank(privateKey)) {
            return "";
        }
        rand = generateRand();
        long timestamp = System.currentTimeMillis() / 1000 + (expireTime == null ? 0 : expireTime);
        String authStr = timestamp + "-" + rand + "-" + uid;
        String md5Str = object + "-" + authStr + "-" + privateKey;
        if(previewTime!=0)
            md5Str = md5Str + "-" + previewTime;
        String auth_key = authStr + "-" + this.md5(md5Str);
        return auth_key;
    }

    public void previewTest() throws Exception {
        try {
            String key = "<Your PrivateKey>";// Kunci primer atau sekunder yang Anda konfigurasikan di Konsol. Untuk informasi selengkapnya tentang cara mendapatkan kunci, lihat Aktifkan fitur pratinjau video.
            String fileUrl = "<Your File URL>";// URL file. Contoh: http://example.aliyundoc.com/test/bee21427ca3346848835c1bd786054c5-19bd8528c1d51576cd726cf86471ca0****.mp4
            URL url = new URL(fileUrl);
            String file = url.getFile();
            Long previewTime = 120L;// Durasi pratinjau.
            Long expireTime = 1800L;
            String auth_key =genAuthKey(file, key, expireTime, previewTime);
            fileUrl = fileUrl + "?auth_key=" + auth_key;
            if(previewTime != 0)
                fileUrl = fileUrl + "&end=" + previewTime;
            System.out.println(fileUrl);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }