Tutorial ini menjelaskan cara membuat dan mengedit kompilasi wajah secara efisien menggunakan fitur pencarian wajah dan pengeditan video dari Intelligent Media Services (IMS). Tutorial ini mencakup operasi dasar pencarian aset media cerdas, alur kerja API untuk pencarian wajah, konfigurasi Timeline, serta penggunaan templat tingkat lanjut, sehingga Anda dapat menghasilkan video kompilasi wajah berkualitas tinggi dengan cepat.
Latar Belakang
Seiring meningkatnya volume konten video, kemampuan menemukan dan mengatur klip yang menampilkan individu tertentu menjadi tugas kritis. Kompilasi wajah merupakan cara efektif untuk menampilkan aktivitas seseorang di berbagai adegan dan banyak digunakan dalam produksi film, pelaporan berita, serta hiburan sosial. Tutorial ini menunjukkan cara memanfaatkan fitur canggih IMS untuk mencapai tujuan tersebut.
Kasus Penggunaan
Kasus Penggunaan 1: Reel sorotan atlet
Dalam acara olahraga seperti maraton, penyelenggara dan media sering membuat video sorotan atlet yang menampilkan momen penting dalam kompetisi, seperti sprint atau menyalip lawan. Video sorotan ini penting untuk promosi acara, rangkuman, dan membangun citra pribadi atlet.
Kasus Penggunaan 2: Reel sorotan pribadi untuk pengunjung
Untuk meningkatkan pengalaman pengunjung, taman hiburan sering membuat reel sorotan personal yang menangkap momen seru di berbagai wahana, seperti teriakan di roller coaster atau tawa di carousel. Kompilasi ini dapat dijadikan kenang-kenangan bagi pengunjung atau digunakan sebagai materi promosi media sosial taman hiburan.
Kasus Penggunaan 3: Video di balik layar acara
Di industri pernikahan, video pernikahan merupakan cara penting untuk merekam momen bahagia pasangan dan melestarikan kenangan. Cuplikan di balik layar dari hari pernikahan dan video perjalanan pasangan memerlukan pengeditan dan penyusunan cermat agar dapat menampilkan kisah cinta serta suasana romantis pernikahan.
Kasus Penggunaan 4: Kompilasi wajah penggemar
Pada konser besar atau festival musik, penyelenggara sering membuat kompilasi wajah penonton untuk menunjukkan antusiasme dan keterlibatan mereka. Kompilasi ini dapat ditampilkan di layar besar guna memperkuat suasana langsung atau digunakan sebagai materi promosi media sosial.
Kompilasi wajah juga banyak digunakan untuk memoar pribadi, video keluarga, promosi pariwisata, dan rangkuman acara perusahaan.
Prosedur
Prasyarat
Instal SDK sisi server IMS. Untuk informasi lebih lanjut, lihat Persiapan. Jika Anda telah menginstal SDK, lewati langkah ini.
Langkah 1: Temukan klip video menggunakan pencarian wajah
Gunakan fitur pencarian wajah dari Intelligent Media Services (IMS) untuk menemukan klip video yang berisi wajah tertentu. Untuk informasi lebih lanjut, lihat Cari wajah dalam volume besar aset media.
Langkah 2: Edit klip video
Bagian berikut menjelaskan tiga metode untuk membuat video kompilasi wajah, mencakup kasus penggunaan, prosedur, contoh pemanggilan SDK, dan ilustrasi.
Metode 1: Buat video menggunakan Script-to-Video
Fitur
-
Mudah dan efisien: Pembuatan otomatis berbasis skrip menyederhanakan pembuatan video kompilasi wajah. Anda dapat menghasilkan beberapa video serupa secara batch dengan konfigurasi sederhana.
-
Mudah digunakan: Fitur pembuatan video satu klik memungkinkan Anda membuat video berkualitas tinggi, bahkan tanpa pengalaman pengeditan video.
Implementasikan menggunakan SDK
Lihat contoh kode
package com.example;
import java.util.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;
/**
* Anda harus menambahkan dependensi Maven berikut:
* <dependency>
* <groupId>com.aliyun</groupId>
* <artifactId>ice20201109</artifactId>
* <version>2.3.0</version>
* </dependency>
* <dependency>
* <groupId>com.alibaba</groupId>
* <artifactId>fastjson</artifactId>
* <version>1.2.9</version>
* </dependency>
*/
public class SubmitFaceEditingJobService {
static final String regionId = "cn-shanghai";
static final String bucket = "<your-bucket>";
/*** Kirim pekerjaan pembuatan video satu klik untuk kompilasi wajah berdasarkan hasil pencarian wajah. ****/
public static void submitBatchEditingJob(String mediaId, SearchMediaClipByFaceResponse response) throws Exception {
Client iceClient = initClient();
JSONArray intervals = buildIntervals(response);
JSONObject editingTimeline = buildEditingTimeline(mediaId, intervals);
String openingMediaId = "icepublic-9a2df29956582a68a59e244a5915228c";
String endingMediaId = "icepublic-1790626066bee650ac93bd12622a921c";
String mainGroupName = "main";
String openingGroupName = "opening";
String endingGroupName = "ending";
JSONObject inputConfig = buildInputConfig(mediaId, mainGroupName, openingMediaId, openingGroupName, endingMediaId, endingGroupName);
JSONObject editingConfig = buildEditingConfig(mediaId, mainGroupName, intervals, openingMediaId, openingGroupName, endingMediaId, endingGroupName);
JSONObject outputConfig = new JSONObject();
outputConfig.put("MediaURL", "https://ice-auto-test.oss-cn-shanghai.aliyuncs.com/testBatch/" + System.currentTimeMillis() + "{index}.mp4");
outputConfig.put("Width", 1280);
outputConfig.put("Height", 720);
outputConfig.put("FixedDuration", 18);
outputConfig.put("Count", 2);
SubmitBatchMediaProducingJobRequest request = new SubmitBatchMediaProducingJobRequest();
request.setInputConfig(inputConfig.toJSONString());
request.setEditingConfig(editingConfig.toJSONString());
request.setOutputConfig(outputConfig.toJSONString());
SubmitBatchMediaProducingJobResponse response = iceClient.submitBatchMediaProducingJob(request);
System.out.println("JobId: " + response.getBody().getJobId());
}
public Client initClient() throws Exception {
// AccessKey Akun Alibaba Cloud memberikan akses penuh ke semua API. Kami menyarankan menggunakan RAM user untuk pemanggilan API dan operasi harian.
// Contoh ini menunjukkan cara menyimpan ID AccessKey dan Secret AccessKey Anda dalam variabel lingkungan. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config();
config.setCredential(credentialClient);
// Jika Anda perlu menyematkan ID AccessKey dan Secret AccessKey secara langsung, gunakan kode berikut. Namun, kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Secret AccessKey dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran AccessKey dan membahayakan keamanan semua sumber daya dalam akun Anda.
// config.accessKeyId = "
Implementasikan menggunakan Konsol
Untuk membuat video di Konsol, Anda dapat melewati Langkah 1 dan mengikuti langkah-langkah berikut.
Langkah 1: Di panel navigasi kiri Konsol, klik Intelligent Batch Video Production. Pada tab Script-to-Video, klik Create Task. Pilih generation mode. Mode Global Scripts dan Segmented Scripts mode didukung. Contoh ini menggunakan Segmented Scripts mode.
Langkah 2: Di bagian Script Node Configuration, klik Add Material. Di panel Add Material yang muncul, pilih face search dan unggah gambar wajah untuk menemukan materi yang cocok
Langkah 3: Di hasil pencarian, klik View pada hasil tertentu untuk melihat klip video yang cocok. Lalu, klik Import Matched Clips dan OK. Materi yang cocok kemudian ditambahkan ke node skrip.
Langkah 4: Untuk menyesuaikan klip video yang ditemukan oleh pencarian wajah, arahkan kursor ke materi dan klik ikon settings. Di kotak dialog yang muncul, Anda dapat menyesuaikan titik masuk dan keluar di bagian Trimming. Lewati langkah ini jika tidak diperlukan penyesuaian.
Kemudian, ikuti prosedur standar Script-to-Video untuk mengonfigurasi title, background music, stickers and logos, dan synthesis settings sebelum mengirimkan tugas.
Metode 2: Buat video menggunakan pengeditan Timeline
Fitur
-
Konten video yang dapat dikustomisasi: Timeline memberikan tingkat kustomisasi tinggi, memberi Anda kendali tepat atas setiap titik edit, efek, transisi, dan track audio. Anda dapat menggabungkan dan menyesuaikan materi secara bebas sesuai kebutuhan kreatif untuk menghasilkan video unik.
-
Fleksibilitas tinggi: Berbeda dengan templat, pengeditan Timeline sangat fleksibel. Anda dapat menyesuaikan rencana pengeditan, urutan, efek, dan audio kapan saja untuk memenuhi berbagai kebutuhan kreatif.
Langkah
Menggunakan hasil pencarian wajah dari Langkah 1, Anda dapat mengedit video kompilasi wajah dengan menggunakan konfigurasi Timeline dari operasi SubmitMediaProducingJob. Untuk contoh, lihat bagian contoh pemanggilan SDK. Untuk kebutuhan pengeditan tingkat lanjut, seperti mengatur efek, transisi, atau pemrosesan audio, lihat Parameter dasar untuk pengeditan video dan Konfigurasi Timeline untuk memahami lebih baik cara membuat video kompilasi wajah.
Contoh pemanggilan SDK
Lihat contoh parameter Timeline
{
"VideoTracks": [
{
"VideoTrackClips": [
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 54.106018,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 56.126015
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 271.47302,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 277.393
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 326.03903,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 331.959
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 372.20602,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 375.126
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 383.03903,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 388.959
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 581.339,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 587.25903
},
{
"MediaId": "b5a003f0cd3f71ed919fe7e7c45b****",
"In": 602.339,
"Effects": [
{
"Type": "Volume",
"Gain": 0
}
],
"Out": 607.293
}
]
}
],
"AudioTracks": [
{
"AudioTrackClips": [
{
"LoopMode": true,
"MediaId": "icepublic-0c4475c3936f3a8743850f2da942ceee"
}
]
}
]
}
Metode 3: Gunakan templat tingkat lanjut
Fitur
-
Efisien dan berkualitas tinggi: Isi templat siap pakai dengan materi Anda untuk segera membuat video berkualitas tinggi. Anda juga dapat merancang templat khusus untuk gaya unik dan peningkatan kualitas.
-
Gaya video konsisten: Templat memastikan gaya video yang konsisten dan profesional, membantu bahkan pengguna yang tidak berpengalaman membuat video yang menarik.
Langkah
Menggunakan hasil pencarian wajah dari Langkah 1, Anda dapat menggunakan templat tingkat lanjut dan parameter ClipsParam dari operasi SubmitMediaProducingJob untuk membuat video kompilasi wajah. Untuk contoh, lihat bagian contoh pemanggilan SDK. Contoh ini menggunakan templat publik IceSys_VETemplate_s100241 dan mengonfigurasi klip video berdasarkan hasil pencarian wajah. Jika Anda ingin menggunakan templat tingkat lanjut milik Anda sendiri untuk membuat video kompilasi wajah, lihat Panduan pengguna: Cara menggunakan templat tingkat lanjut.
Contoh pemanggilan SDK
Lihat contoh kode
package com.example;
import java.util.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;
/**
* Anda harus menambahkan dependensi Maven berikut:
* <dependency>
* <groupId>com.aliyun</groupId>
* <artifactId>ice20201109</artifactId>
* <version>2.3.0</version>
* </dependency>
* <dependency>
* <groupId>com.alibaba</groupId>
* <artifactId>fastjson</artifactId>
* <version>1.2.9</version>
* </dependency>
*/
public class SubmitFaceEditingJobService {
static final String regionId = "cn-shanghai";
static final String bucket = "<your-bucket>";
/*** Kirim pekerjaan pengeditan kompilasi wajah berdasarkan hasil pencarian wajah. ****/
public static void submitEditingJob(String mediaId, SearchMediaClipByFaceResponse response) throws Exception {
Client iceClient = initClient();
JSONArray intervals = buildIntervals(response);
// Kirim pekerjaan templat tingkat lanjut. Contoh ini menggunakan templat publik IceSys_VETemplate_s100241 dan mengonfigurasi klip video berdasarkan hasil pencarian wajah.
JSONObject clipParams = buildClipParams(mediaId, intervals);
SubmitMediaProducingJobRequest request2 = new SubmitMediaProducingJobRequest();
request2.setTemplateId("IceSys_VETemplate_s100241");
request2.setClipsParam(clipParams.toJSONString());
request2.setOutputMediaTarget("oss-object");
outputConfig = new JSONObject();
outputConfig.put("MediaURL",
"https://" + bucket + ".oss-" + regionId + "/testTemplate/" + System.currentTimeMillis() + ".mp4");
request2.setOutputMediaConfig(outputConfig.toJSONString());
SubmitMediaProducingJobResponse response2 = iceClient.submitMediaProducingJob(request2);
System.out.println("JobId: " + response2.getBody().getJobId());
}
public Client initClient() throws Exception {
// AccessKey Akun Alibaba Cloud memberikan akses penuh ke semua API. Kami menyarankan menggunakan RAM user untuk pemanggilan API dan operasi harian.
// Contoh ini menunjukkan cara menyimpan ID AccessKey dan Secret AccessKey Anda dalam variabel lingkungan. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config();
config.setCredential(credentialClient);
// Jika Anda perlu menyematkan ID AccessKey dan Secret AccessKey secara langsung, gunakan kode berikut. Namun, kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Secret AccessKey dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran AccessKey dan membahayakan keamanan semua sumber daya dalam akun Anda.
// config.accessKeyId = "
Lihat contoh parameter clipParams
{
"Media0": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media0.clip_start": 54.066017,
"Media1": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media1.clip_start": 67.33301,
"Media2": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media2.clip_start": 271.47302,
"Media3": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media3.clip_start": 326.03903,
"Media4": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media4.clip_start": 372.20602,
"Media5": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media5.clip_start": 383.03903,
"Media6": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media6.clip_start": 581.339,
"Media7": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media7.clip_start": 587.25903,
"Media8": "b5a003f0cd3f71ed919fe7e7c45b****",
"Media8.clip_start": 602.339
}
Contoh
|
Video yang dibuat menggunakan pengeditan Timeline
Video ini adalah kompilasi wajah atlet berkaos putih bernomor 5.
|
Video yang dibuat menggunakan templat tingkat lanjut
Transisi dan efek kecepatan dalam video akhir berasal dari templat.
|
|
Video yang dibuat menggunakan Script-to-Video (SDK)
Video ini adalah kompilasi wajah atlet berkaos putih bernomor 5.
|
Video yang dibuat menggunakan Script-to-Video (Konsol)
Video ini adalah kompilasi wajah atlet berkaos putih bernomor 17.
|