Saat mengunggah video ke ApsaraVideo VOD, Anda dapat menentukan gambar yang akan digunakan sebagai gambar mini. Jika tidak ditentukan, ApsaraVideo VOD secara otomatis mengambil tangkapan video sebagai gambar mini. Gambar mini juga dapat diperbarui setelah video diunggah.
Ikhtisar
Setiap video yang diunggah ke ApsaraVideo VOD memiliki gambar mini.
Saat mengunggah video, jika Anda menentukan gambar mini, gambar tersebut akan digunakan setelah pengunggahan selesai. Jika tidak, ApsaraVideo VOD secara default mengambil satu hingga delapan tangkapan video dan memilih tangkapan tengah sebagai gambar mini. Untuk informasi selengkapnya, lihat Tangkapan video. Gambar mini juga dapat diperbarui setelah video diunggah.
ApsaraVideo VOD mendukung gambar mini standar dan gambar mini pintar. Fitur gambar mini pintar memerlukan permohonan akses terlebih dahulu. Untuk informasi selengkapnya, lihat Halaman Produk Gambar Mini Pintar.
Gambar mini standar: Anda dapat menentukan gambar mini kustom berupa gambar lokal, tangkapan video, atau gambar dari URL yang dapat diakses. Gambar mini dapat berupa gambar statis, gambar animasi, atau klip video.
Gambar mini pintar: Sistem menganalisis konten dan estetika video untuk memilih keyframe atau klip terbaik sebagai gambar mini. Gambar diekstraksi langsung dari video itu sendiri dan mendukung gambar statis maupun animasi.
Prasyarat
ApsaraVideo VOD telah diaktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan ApsaraVideo VOD.
Untuk melindungi akun dan sumber daya Anda, lakukan operasi menggunakan Pengguna Resource Access Management (RAM) atau Peran RAM. Pastikan Pengguna RAM atau Peran RAM tersebut telah diberikan izin yang diperlukan untuk ApsaraVideo VOD. Untuk informasi selengkapnya, lihat Membuat dan memberi otorisasi kepada Pengguna RAM.
Jika Anda telah mengonfigurasi nama domain yang dipercepat untuk ApsaraVideo VOD, Anda harus mengonfigurasi sertifikat untuk nama domain tersebut sebelum dapat mengatur gambar mini. Untuk informasi selengkapnya, lihat Percepatan aman HTTPS.
Mengatur gambar mini saat pengunggahan video
ApsaraVideo VOD menyediakan beberapa metode untuk mengunggah video. Untuk informasi selengkapnya, lihat Metode pengunggahan. Penentuan gambar mini hanya dapat dilakukan saat mengunggah video melalui API atau kit pengembangan perangkat lunak (SDK). Parameter yang digunakan adalah sebagai berikut:
Penting Anda dapat mengatur CoverURL ke URL apa pun. ApsaraVideo VOD tidak memproses URL tersebut, melainkan hanya menyimpan dan mengembalikannya saat diminta. Pastikan URL tersebut dapat diakses.
Saat memanggil operasi CreateUploadVideo, Anda dapat meneruskan parameter CoverURL (URL gambar mini kustom) untuk menentukan gambar mini video.
Saat memanggil operasi UploadMediaByURL, Anda dapat meneruskan parameter CoverURL (URL gambar mini kustom) dalam UploadMetadata untuk menentukan gambar mini video.
Memperbarui gambar mini setelah video diunggah
Setelah video diunggah ke ApsaraVideo VOD, Anda dapat memperbarui gambar mininya dengan metode berikut.
Mengatur gambar mini standar
Menggunakan console
Setelah video diunggah ke ApsaraVideo VOD, Anda dapat memperbarui gambar mininya di konsol ApsaraVideo VOD menggunakan gambar lokal atau tangkapan video.
Masuk ke konsol ApsaraVideo VOD.
Pada panel navigasi sebelah kiri, pilih Media Files > Audio/Video.
Temukan video yang ingin diperbarui gambarnya, lalu klik Manage.
Pada tab Basic Information, klik Editing Video Information
.
Pilih salah satu tangkapan yang dihasilkan secara otomatis sebagai gambar mini video.
Atau, klik Upload dan pilih gambar lokal sebagai gambar mini video.
Catatan Gambar mini yang diunggah harus berformat JPG atau PNG, dengan ukuran maksimal 1 MB dan resolusi hingga 1920 × 1080 piksel.

Klik Save.
Setelah konfigurasi selesai, Anda dapat memverifikasi pembaruan gambar mini di halaman daftar audio dan video.
Melalui OpenAPI
Setelah video diunggah ke ApsaraVideo VOD, Anda dapat memanggil operasi berikut untuk memperbarui gambar mini video dengan URL yang dapat diakses.
Penting Anda dapat mengatur CoverURL ke URL apa pun. ApsaraVideo VOD tidak memproses URL tersebut, melainkan hanya menyimpan dan mengembalikannya saat diminta. Pastikan URL tersebut dapat diakses.
Panggil operasi UpdateVideoInfo dan teruskan parameter CoverURL (URL gambar mini kustom) untuk menentukan gambar mini video.
Panggil operasi UpdateVideoInfos dan teruskan parameter CoverURL (URL gambar mini kustom) dalam UpdateContent untuk menentukan gambar mini video.
Jika video disimpan di bucket Object Storage Service (OSS) Anda sendiri dan bucket tersebut telah didaftarkan ke ApsaraVideo VOD, panggil operasi RegisterMedia. Saat mendaftarkan aset media, teruskan parameter CoverURL (URL gambar mini kustom) dalam RegisterMetadata untuk menentukan gambar mini video.
Mengatur gambar mini pintar
Fitur gambar mini pintar menganalisis konten video, estetika, dan data produksi skala besar untuk memilih keyframe atau klip terbaik sebagai gambar mini, sehingga meningkatkan laju konversi klik-tayang dan pengalaman pengguna.
Catatan ApsaraVideo VOD saat ini mendukung gambar statis dan animasi untuk gambar mini, tetapi tidak mendukung klip video.
Contoh: Mengatur tangkapan frame pertama sebagai gambar mini video
Alur konfigurasi
Buat templat snapshot untuk mengambil frame pertama video.
Jalankan pekerjaan snapshot untuk mengambil frame pertama video.
Ubah gambar mini video menjadi tangkapan frame pertama.
Metode konfigurasi
Konfigurasi menggunakan console
Buat templat snapshot untuk mengambil frame pertama video.
Masuk ke konsol ApsaraVideo VOD.
Pada panel navigasi sebelah kiri, pilih Configuration Management > Media Processing > Snapshot Templates.
Klik Create Snapshot Template dan konfigurasikan parameter templat snapshot frame pertama.
Atur Template Name ke nama kustom dan Snapshot Type ke Normal Snapshot. Atur Start Time ke 00:00:00 dan Snapshot Count: ke 1. Anda dapat mengonfigurasi parameter lain sesuai kebutuhan. Untuk informasi selengkapnya tentang parameter templat snapshot, lihat Templat snapshot.
Klik Save untuk membuat templat snapshot.
Jalankan pekerjaan snapshot untuk mengambil frame pertama video.
Catatan Menjalankan pekerjaan snapshot di console memerlukan alur kerja. Pertama, buat alur kerja yang mencakup node Snapshots. Lalu, atur templat snapshot ke templat snapshot frame pertama. Untuk informasi selengkapnya tentang cara membuat alur kerja, lihat Manajemen alur kerja.
Sebelum menjalankan pekerjaan snapshot, konfigurasikan notifikasi event untuk ApsaraVideo VOD. Atur notifikasi untuk event SnapshotComplete. Hal ini memungkinkan Anda mengambil status pekerjaan dan URL snapshot setelah pekerjaan selesai. Untuk informasi selengkapnya tentang cara mengonfigurasi notifikasi event, lihat Pengaturan callback.
Ubah gambar mini video menjadi tangkapan frame pertama.
Catatan Anda hanya dapat menggunakan console untuk mengubah gambar mini video setelah video diunggah. Simpan terlebih dahulu tangkapan frame pertama yang diperoleh pada langkah sebelumnya ke komputer lokal sebagai persiapan untuk diunggah.
Pada panel navigasi kiri konsol ApsaraVideo VOD, pilih Media Files > Audio/Video.
Pada halaman Daftar Audio dan Video, klik Manage pada baris video target.
Pada tab Basic information, klik Editing Video Information
.
Klik Upload, pilih tangkapan frame pertama dari komputer Anda, lalu klik Open.
Klik Save untuk mengatur gambar mini video.
Setelah konfigurasi selesai, Anda dapat memverifikasi bahwa gambar mini telah diperbarui di halaman daftar audio dan video.
Konfigurasi menggunakan OpenAPI
Catatan Topik ini menggunakan Alibaba Cloud SDK for Java sebagai contoh untuk menunjukkan cara memanggil operasi OpenAPI ApsaraVideo VOD.
Prosedur
Buat templat snapshot untuk mengambil frame pertama video.
Panggil operasi AddVodTemplate untuk membuat templat snapshot pengambilan frame pertama. Kode contoh berikut menunjukkan cara memanggil operasi tersebut:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.AddVodTemplateRequest;
import com.aliyuncs.vod.model.v20170321.AddVodTemplateResponse;
/**
* Deskripsi:
* 1. Demo ini menunjukkan cara membuat templat snapshot frame pertama. Outputnya adalah satu gambar.
* 2. Membuat templat snapshot di konsol ApsaraVideo VOD lebih mudah.
*/
public class AddSnapshotTemplate {
// Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
// Jangan simpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika tidak, pasangan Kunci Akses dapat bocor, yang mengancam keamanan semua sumber daya dalam akun Anda.
// Contoh ini menunjukkan cara membaca pasangan Kunci Akses dari variabel lingkungan untuk verifikasi identitas. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
public static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
public static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
public static void main(String[] args) {
try{
DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
AddVodTemplateResponse response = addSnapshotTemplate(vodClient);
System.out.println("RequestId is:" + response.getRequestId());
System.out.println("TemplateId is:" + response.getVodTemplateId());
}catch (Exception e){
}
}
public static AddVodTemplateResponse addSnapshotTemplate(DefaultAcsClient vodClient) throws ClientException {
AddVodTemplateRequest request = new AddVodTemplateRequest();
request.setName("FirstFrameSnapshotTemplate");
request.setTemplateType("Snapshot");
request.setTemplateConfig("{\"SnapshotType\":\"NormalSnapshot\",\"SnapshotConfig\":{\"FrameType\":\"normal\",\"Count\":1,\"Interval\":1,\"SpecifiedOffsetTime\":0}}");
return vodClient.getAcsResponse(request);
}
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
// Wilayah tempat ApsaraVideo VOD diaktifkan.
String regionId = "cn-shanghai";
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
}
Jalankan pekerjaan snapshot untuk mengambil frame pertama video.
Panggil operasi SubmitSnapshotJob untuk menjalankan pekerjaan snapshot. Kode contoh berikut menunjukkan cara memanggil operasi tersebut:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.*;
/**
* Deskripsi:
* 1. Demo ini menunjukkan cara mengirim pekerjaan snapshot frame pertama setelah membuat templat snapshot frame pertama.
* 2. Untuk video yang baru diunggah, lakukan langkah ini setelah event MediaProcessFinished berhasil. Untuk video yang sudah ada dalam status Normal, rancang proses Anda sendiri.
* 3. Proses snapshot merupakan tugas asinkron. Tunggu hingga event SnapshotComplete berhasil untuk mendapatkan URL snapshot.
* 4. Anda dapat menginferensi URL output snapshot dari parameter SnapshotRegular dalam event callback. Untuk informasi selengkapnya, lihat aturan pembuatan URL snapshot dalam topik SnapshotComplete.
* 5. Jika Anda tidak memiliki layanan callback, Anda juga dapat memanggil operasi ListSnapshots untuk menanyakan hasilnya. Secara default, operasi ini hanya mengembalikan hasil snapshot terbaru. Untuk informasi selengkapnya, lihat topik ListSnapshots.
*/
public class SubmitSnapshotJob {
// Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
// Jangan simpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika tidak, pasangan Kunci Akses dapat bocor, yang mengancam keamanan semua sumber daya dalam akun Anda.
// Contoh ini menunjukkan cara membaca pasangan Kunci Akses dari variabel lingkungan untuk verifikasi identitas. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
public static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
public static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
public static void main(String[] args) {
try{
DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
SubmitSnapshotJobResponse response = submitSnapshotJob(vodClient);
System.out.println("RequestId is:" + response.getRequestId());
System.out.println("JobId is:" + response.getSnapshotJob().getJobId());
}catch (Exception e){
}
}
public static SubmitSnapshotJobResponse submitSnapshotJob(DefaultAcsClient vodClient) throws ClientException {
SubmitSnapshotJobRequest request = new SubmitSnapshotJobRequest();
request.setVideoId("a42b**********633b79f0102");
request.setSnapshotTemplateId("1f27a7**********eba2756");
// Parameter pass-through kustom. Tersedia dalam callback dan bersifat opsional. Digunakan untuk membedakan snapshot frame pertama untuk gambar mini.
request.setUserData("{\"Extend\":{\"SnapshotType\":\"FirstFrame\",\"VideoId\":\"a42bf540********33b79f0102\"}}");
return vodClient.getAcsResponse(request);
}
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
// Wilayah tempat ApsaraVideo VOD diaktifkan.
String regionId = "cn-shanghai";
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
// ListSnapshots: Menanyakan snapshot
public static ListSnapshotsResponse listSnapshots(DefaultAcsClient vodClient) throws ClientException {
ListSnapshotsRequest request = new ListSnapshotsRequest();
request.setVideoId("a42bf540b1b371ed804a6633b79****");
request.setSnapshotType("NormalSnapshot");
ListSnapshotsResponse response = vodClient.getAcsResponse(request);
System.out.println("RequestId is:" + response.getRequestId());
System.out.println("SnapshotUrl is:" + response.getMediaSnapshot().getSnapshots().get(0).getUrl());
return vodClient.getAcsResponse(request);
}
}
Ubah gambar mini video menjadi tangkapan frame pertama.
Bagian ini memberikan contoh cara memodifikasi gambar mini video tunggal setelah diunggah. Untuk informasi selengkapnya tentang skenario lain, lihat Mengatur gambar mini saat pengunggahan video dan Memperbarui gambar mini setelah video diunggah.
Panggil operasi UpdateVideoInfo dan teruskan parameter CoverURL untuk menentukan gambar mini video. Kode contoh berikut menunjukkan cara memanggil operasi tersebut:
package com.alibaba.cloud.test.transcode;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.UpdateVideoInfoRequest;
import com.aliyuncs.vod.model.v20170321.UpdateVideoInfoResponse;
/**
* Deskripsi:
* 1. Demo ini menunjukkan cara memodifikasi gambar mini video tunggal. Untuk memodifikasi parameter video lainnya, lihat topik UpdateVideoInfo.
* 2. Saat memodifikasi gambar mini, pastikan URL gambar yang Anda gunakan valid.
*/
public class UpdateVideoInfo {
// Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
// Jangan simpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika tidak, pasangan Kunci Akses dapat bocor, yang mengancam keamanan semua sumber daya dalam akun Anda.
// Contoh ini menunjukkan cara membaca pasangan Kunci Akses dari variabel lingkungan untuk verifikasi identitas. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
public static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
public static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
public static void main(String[] args) {
try{
DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
UpdateVideoInfoResponse response = updateVideoInfo(vodClient);
System.out.println("RequestId is:" + response.getRequestId());
}catch (Exception e){
}
}
public static UpdateVideoInfoResponse updateVideoInfo(DefaultAcsClient vodClient) throws ClientException {
UpdateVideoInfoRequest request = new UpdateVideoInfoRequest();
request.setVideoId("a42b***********33b79f0102");
// Saat mengatur gambar mini frame pertama, CoverURL adalah URL gambar yang dikembalikan setelah pekerjaan snapshot frame pertama berhasil.
request.setCoverURL("http://demo.aliyuncdn.com/a42bf5******40b1b37/snapshots/normal/41B7AF54-18672BB301D-1748-0984-309-112420****.jpg");
return vodClient.getAcsResponse(request);
}
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
// Wilayah tempat ApsaraVideo VOD diaktifkan.
String regionId = "cn-shanghai";
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
}
Contoh lengkap
package com.alibaba.cloud.test.transcode;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.*;
import org.apache.commons.lang3.StringUtils;
/**
* Deskripsi:
* 1. Demo ini menunjukkan logika lengkap untuk mengambil snapshot dan memodifikasi gambar mini. Anda perlu memodifikasi sebagian kode berdasarkan logika bisnis Anda.
* 2. Demo ini tidak dapat digunakan langsung. Anda perlu menambahkan beberapa logika sendiri.
* 3. Demo ini hanya sebagai referensi dan bukan satu-satunya metode implementasi.
*/
public class SnapshotAndUpdateCover {
// Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin atas semua operasi API. Gunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
// Jangan simpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika tidak, pasangan Kunci Akses dapat bocor, yang mengancam keamanan semua sumber daya dalam akun Anda.
// Contoh ini menunjukkan cara membaca pasangan Kunci Akses dari variabel lingkungan untuk verifikasi identitas. Sebelum menjalankan kode contoh, konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
public static String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
public static String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
public static void main(String[] args) {
try{
DefaultAcsClient vodClient = initVodClient(accessKeyId, accessKeySecret);
// ID Video
String videoId = "a42bf540b1b37*******b79f0102";
// Skenario 1: Anda memiliki layanan callback atau MNS.
// Jika Anda mengatur gambar mini untuk video yang baru diunggah, Anda harus terlebih dahulu mendapatkan event keberhasilan analisis media.
// Jika Anda mengatur gambar mini untuk video yang sudah ada, Anda dapat langsung mengirim pekerjaan snapshot dari langkah ini.
submitSnapshotJob(vodClient,videoId);
// Dapatkan event keberhasilan snapshot video, tentukan jenis snapshot, dan ambil URL gambar yang diperlukan.
JSONObject callBackMessage = new JSONObject(); // Ganti ini dengan pesan yang diterima oleh layanan callback.
String snapshotType = callBackMessage.getJSONObject("UserData").getJSONObject("Extend").getString("SnapshotType");
if("FirstFrame".equals(snapshotType)){
// Logika jalur snapshot di sini perlu diganti dengan logika jalur snapshot kustom Anda.
String coverUrl = callBackMessage.getJSONArray("SnapshotInfos").getJSONObject(0).getString("SnapshotRegular").replace("{SnapshotCount}","00001");
// Modifikasi gambar mini video.
updateVideoInfo(vodClient,videoId,coverUrl);
}
// Skenario 2: Anda tidak memiliki layanan callback atau MNS.
// Jika Anda mengatur gambar mini untuk video yang baru diunggah, polling status video setelah pengunggahan.
String videoStatus = "";
while(!"Normal".equals(videoStatus)){
videoStatus = getVideoInfo(vodClient,videoId);
Thread.sleep(1000);
}
// Jika Anda mengatur gambar mini untuk video yang sudah ada, Anda dapat langsung mengirim pekerjaan snapshot dari langkah ini.
submitSnapshotJob(vodClient,videoId);
// Polling hasil snapshot.
String coverUrl = "";
while(StringUtils.isBlank(coverUrl)){
coverUrl = listSnapshots(vodClient,videoId);
Thread.sleep(1000);
}
// Modifikasi gambar mini video.
updateVideoInfo(vodClient,videoId,coverUrl);
}catch (Exception e){
}
}
/**
* Mengirim pekerjaan snapshot.
*/
public static SubmitSnapshotJobResponse submitSnapshotJob(DefaultAcsClient vodClient, String vid) throws ClientException {
SubmitSnapshotJobRequest request = new SubmitSnapshotJobRequest();
request.setVideoId(vid);
request.setSnapshotTemplateId("1f27a7f*********70eba2756");
// Parameter pass-through kustom. Tersedia dalam callback dan bersifat opsional. Digunakan untuk membedakan snapshot frame pertama untuk gambar mini.
request.setUserData("{\"Extend\":{\"SnapshotType\":\"FirstFrame\",\"VideoId\":\"a42bf540********33b79f0102\"}}");
return vodClient.getAcsResponse(request);
}
/**
* Memodifikasi gambar mini video.
*/
public static UpdateVideoInfoResponse updateVideoInfo(DefaultAcsClient vodClient, String vid, String coverUrl) throws ClientException {
UpdateVideoInfoRequest request = new UpdateVideoInfoRequest();
request.setVideoId(vid);
// Saat mengatur gambar mini frame pertama, CoverURL adalah URL gambar yang dikembalikan setelah pekerjaan snapshot frame pertama berhasil.
request.setCoverURL(coverUrl);
return vodClient.getAcsResponse(request);
}
/**
* Menginisialisasi instans SDK.
*/
public static DefaultAcsClient initVodClient(String accessKeyId, String accessKeySecret) throws ClientException {
// Wilayah tempat ApsaraVideo VOD diaktifkan.
String regionId = "cn-shanghai";
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
/**
* Menanyakan snapshot.
*/
public static String listSnapshots(DefaultAcsClient vodClient, String vid) throws ClientException {
ListSnapshotsRequest request = new ListSnapshotsRequest();
request.setVideoId(vid);
request.setSnapshotType("NormalSnapshot");
ListSnapshotsResponse response = vodClient.getAcsResponse(request);
String coverUrl = "";
System.out.println("RequestId is:" + response.getRequestId());
try{
coverUrl = response.getMediaSnapshot().getSnapshots().get(0).getUrl();
System.out.println("SnapshotUrl is:" + response.getMediaSnapshot().getSnapshots().get(0).getUrl());
}catch (NullPointerException e){
}
return coverUrl;
}
/**
* Menanyakan video tunggal.
*/
public static String getVideoInfo(DefaultAcsClient vodClient, String vid) throws ClientException {
GetVideoInfoRequest request = new GetVideoInfoRequest();
request.setVideoId(vid);
GetVideoInfoResponse response = vodClient.getAcsResponse(request);
System.out.println("RequestId is:" + response.getRequestId());
String videoStatus = "";
try{
videoStatus = response.getVideo().getStatus();
System.out.println("Video Status is:" + response.getVideo().getStatus());
}catch (NullPointerException e){
}
return videoStatus;
}
}