All Products
Search
Document Center

Intelligent Media Services:Sorotan olahraga

Last Updated:Nov 11, 2025

Dokumen ini memperkenalkan parameter sintesis dan contoh pemanggilan SDK untuk produksi video pencocokan cerdas gambar-teks dalam skenario sorotan acara olahraga.

Penting
  • Catatan: Pada antarmuka ini, wilayah dalam semua URL OSS aset media harus konsisten dengan wilayah pada titik akhir layanan OpenAPI.

  • Wilayah yang didukung: Tiongkok (Shanghai).

  • Dalam penggunaan aktual, Anda perlu mengganti semua contoh parameter dalam dokumen seperti [your-bucket], [your-region-id], [your-file-name], [your-file-path], dan ID aset media (misalnya, "****9d46c8b4548681030f6e****") dengan nilai aktual Anda.

Catatan
  • Untuk pemahaman yang lebih baik mengenai dokumen ini, kami menyarankan Anda terlebih dahulu mempelajari konsep dan alur penggunaan "Produksi Video Pencocokan Gambar-Teks Cerdas Satu Klik – Sorotan Acara Olahraga" melalui Panduan operasi produksi video satu klik cerdas.

Instruksi penggunaan

Parameter InputConfig

Anda dapat mengonfigurasi InputConfig untuk menentukan parameter material dasar, seperti material video, narasi suara, musik latar, dan stiker.

Parameter

Tipe

Deskripsi

Nilai contoh

Wajib

SportsCategory

String

Jenis acara olahraga

Bola Basket: bola basket

Tenis meja: pingpong

basketball

Ya

InputMedia

String

Material acara olahraga input. Mendukung MediaId atau MediaURL

  • Hanya mendukung satu material saja.

  • Hanya mendukung video. Untuk format yang didukung, lihat Format video.

****9d46c8b4548681030f6e****

Ya

FaceRegister

List<FaceInfo>

Identitas orang, panjang array kurang dari atau sama dengan 5.

Lihat Contoh parameter

Tidak

SlowMotionLogoRegister

SlowMotionLogoRegister

Identifikasi gerakan lambat. Jika gerakan lambat diperlukan dalam video akhir, Anda perlu memberikan informasi identifikasi logo yang muncul sebelum gerakan lambat dalam video sumber. Panjang array kurang dari atau sama dengan 5.

Lihat Contoh parameter

Tidak

TransferNameRegister

List<TransferNameInfo>

Identifikasi transkripsi nama, yang mengonversi singkatan nama tim pada papan skor menjadi nama tim lengkap. Panjang array kurang dari atau sama dengan 10.

Lihat Contoh parameter

Ya

Parameter FaceInfo

Field

Tipe

Deskripsi

Nilai contoh

Wajib

FaceUrls

List<String>

  • Tautan citra wajah, sebaiknya mencakup wajah depan dan samping. Harap pastikan bahwa citra wajah hanya berisi satu individu, dan wajah harus terlihat jelas tanpa adanya penutupan atau kehilangan fitur yang signifikan.

  • Untuk format yang didukung, lihat Format citra.

["http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png","http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png""]

Ya

Name

String

Nama orang, harus sesuai dengan nama yang ditampilkan pada papan skor dalam video input

James

Ya

Parameter SlowMotionLogoRegister

Field

Tipe

Deskripsi

Nilai contoh

Wajib

SlowMotionLogoUrls

List<String>

  • Tautan citra logo yang muncul sebelum adegan gerakan lambat dalam video sumber.

  • Untuk format yang didukung, lihat Format citra.

["http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png","http://[your-bucket].oss-[your-region-id].aliyuncs.com/test1.png""]

Ya

Parameter TransferNameInfo

Field

Tipe

Deskripsi

Nilai contoh

Wajib

OriginalName

String

Singkatan nama tim pada papan skor acara

Rockets

Ya

TransferName

String

Nama tim lengkap

Houston Rockets

Ya

Contoh parameter

{
  "SportsCategory": "Basketball",
  "InputMedia": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4",
  "FaceRegister": [
    {
      "FaceUrls": ["http://testcdn.com/front.jpg", "http://testcdn.com/side.jpg"],
      "Name": "James"
    }
  ],
  "SlowMotionLogoRegister": {
  	"SlowMotionLogoUrls": ["http://testcdn.com/logo1.jpg", "http://testcdn.com/logo2.jpg"]
  },
  "TransferNameRegister": [
    {
      "OriginalName": "IND",
      "TransferName": "Indiana Pacers"
    }
  ]
}

Parameter EditingConfig

Catatan

Konfigurasi parameter EditingConfig saat ini tidak didukung.

Parameter OutputConfig

Anda dapat mengonfigurasi OutputConfig untuk menentukan parameter sintesis, seperti alamat output, aturan penamaan, resolusi video akhir (lebar dan tinggi), serta jumlah video output.

Parameter

Tipe

Deskripsi

Nilai contoh

Wajib

MediaURL

String

Alamat video output, harus menyertakan placeholder {index}.

Aturan: http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4

Contoh: http://example.oss-cn-shanghai.aliyuncs.com/example/example_{index}.mp4

Wajib jika GeneratePreviewOnly=false dan output ke OSS

StorageLocation

String

Menentukan alamat penyimpanan untuk file media yang dioutput ke VOD.

Aturan: [your-vod-bucket].oss-[your-region-id].aliyuncs.com

Contoh: outin-****6c886b4549d481030f6e****.oss-cn-shanghai.aliyuncs.com

Wajib jika GeneratePreviewOnly=false dan output ke VOD

FileName

String

Nama file output, harus menyertakan placeholder {index}.

Aturan: [your-file-name]__{index}.mp4

Contoh: example_{index}.mp4

Wajib jika GeneratePreviewOnly=false dan output ke VOD

GeneratePreviewOnly

Boolean

  • Jika GeneratePreviewOnly = true, berarti tugas saat ini hanya menghasilkan timeline untuk pratinjau dan tidak benar-benar mensintesis video. Anda tidak perlu mengisi alamat video output dan dimensi.

  • Setelah tugas produksi video satu klik selesai, Anda dapat mengkueri hasil tugas melalui GetBatchMediaPoducingJob. Daftar sub-tugas yang dikembalikan akan mencakup ID proyek pengeditan (projectId). Anda kemudian dapat memanggil GetEditingProject untuk mendapatkan timeline pratinjau.

false

Tidak, default adalah false

Count

Integer

Jumlah video output. Saat ini hanya mendukung Count=1. Dukungan untuk beberapa video output mungkin akan ditambahkan di masa mendatang.

1

Tidak, default adalah 1

Width

Integer

Lebar video dalam px

1080

Ya

Height

Integer

Tinggi video dalam px

1920

Ya

Detail video

JSONObject

Konfigurasi terkait aliran video output, seperti Crf, Codec, dll.

{"Crf": 27}

Tidak

Contoh parameter

{
 	"MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/xxx_{index}.mp4",
 	"Count": 1,
 	"Width": 1080,
 	"Height": 1920,
 	"Video": {"Crf": 27},
        "GeneratePreviewOnly":false
}

Contoh pemanggilan SDK

Prasyarat

Anda telah menginstal SDK server IMS. Untuk informasi selengkapnya, lihat Persiapan.

Contoh kode

Bentangkan untuk melihat contoh kode

package com.example.vodservicesdktest.ice.editing;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.GetBatchMediaProducingJobRequest;
import com.aliyun.ice20201109.models.GetBatchMediaProducingJobResponse;
import com.aliyun.ice20201109.models.SubmitSportsHighlightsJobRequest;
import com.aliyun.ice20201109.models.SubmitSportsHighlightsJobResponse;
import com.aliyun.teaopenapi.models.Config;

/**
 *  Perlu mengimpor dependensi Maven:
 *   <dependency>
 *      <groupId>com.aliyun</groupId>
 *      <artifactId>ice20201109</artifactId>
 *      <version>3.4.0</version>
 *  </dependency>
 *  <dependency>
 *      <groupId>com.alibaba</groupId>
 *      <artifactId>fastjson</artifactId>
 *      <version>1.2.9</version>
 *  </dependency>
 */
public class SportsHighlightsJobService {

    static final String regionId = "[your-region-id]";
    static final String bucket = "[your-bucket]";
    private Client iceClient;

    public static void main(String[] args) throws Exception {
        SportsHighlightsJobService scriptBatchEditingService = new SportsHighlightsJobService();
        scriptBatchEditingService.initClient();
        scriptBatchEditingService.runExample();
    }

    public void initClient() throws Exception {
        // AccessKey akun Alibaba Cloud memiliki izin akses ke semua operasi API. Kami menyarankan Anda menggunakan pengguna Resource Access Management (RAM) untuk akses API atau operasi harian.
        // Pada contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan. Untuk metode konfigurasi, lihat: https://www.alibabacloud.com/help/zh/sdk/developer-reference/v2-manage-access-credentials
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();

        Config config = new Config();
        config.setCredential(credentialClient);

        // Untuk menyematkan ID AccessKey dan Rahasia AccessKey secara langsung, gunakan baris berikut. Namun, demi keamanan, kami tidak menyarankan Anda menyematkan ID AccessKey dan Rahasia AccessKey secara langsung.
        // config.accessKeyId = <ID AccessKey yang dibuat pada langkah 2>;
        // config.accessKeySecret = <Rahasia AccessKey yang dibuat pada langkah 2>;
        config.endpoint = "ice." + regionId + ".aliyuncs.com";
        config.regionId = regionId;
        iceClient = new Client(config);
    }

    public void runExample() throws Exception {

        JSONObject inputConfig = new JSONObject();
        inputConfig.put("SportsCategory", "basketball");
        inputConfig.put("InputMedia", "http://[your-bucket].oss-[your-region-id].basketball.mp4");

        JSONArray transferNameRegisterArray = new JSONArray();
        JSONObject transferName = new JSONObject();
        transferName.put("OriginalName", "IND");
        transferName.put("TransferName", "Indiana Pacers");
        transferNameRegisterArray.add(transferName);
        inputConfig.put("TransferNameRegister", transferNameRegisterArray);

        // Lebar dan tinggi video, menghasilkan video potret
        //int outputWidth = 1080;
        //int outputHeight = 1920;

        //// Lebar dan tinggi video, menghasilkan video lanskap
        int outputWidth = 1920;
        int outputHeight = 1080;

        // Alamat output OSS, harus menyertakan placeholder {index}
        String mediaUrl = "http://" + bucket + ".oss-" + regionId + ".aliyuncs.com/sports_highlights/output_{index}.mp4";

        JSONObject outputConfig = new JSONObject();
        outputConfig.put("MediaURL", mediaUrl);
        outputConfig.put("Width", outputWidth);
        outputConfig.put("Height", outputHeight);

        // Kirim tugas sorotan olahraga
        SubmitSportsHighlightsJobRequest request = new SubmitSportsHighlightsJobRequest();
        request.setInputConfig(inputConfig.toJSONString());
        request.setOutputConfig(outputConfig.toJSONString());

        SubmitSportsHighlightsJobResponse response = iceClient.submitSportsHighlightsJob(request);
        String jobId = response.getBody().getJobId();
        System.out.println("Mulai tugas sorotan olahraga, JobId: " + jobId);

        // Periksa status tugas hingga semuanya selesai
        System.out.println("Menunggu tugas selesai...");
        int maxTry = 3000;
        int i = 0;
        while (i < maxTry) {
            Thread.sleep(3000);
            i++;
            GetBatchMediaProducingJobRequest getRequest = new GetBatchMediaProducingJobRequest();
            getRequest.setJobId(jobId);
            GetBatchMediaProducingJobResponse getResponse = iceClient.getBatchMediaProducingJob(getRequest);
            String status = getResponse.getBody().getEditingBatchJob().getStatus();
            System.out.println("JobId: " + jobId + ", status:" + status);

            if ("Failed".equals(status)) {
                System.out.println("Tugas gagal. InfoTugas: " + JSONObject.toJSONString(getResponse.getBody().getEditingBatchJob()));
                throw new Exception("Produksi gagal. BatchJobId: " + jobId);
            }

            if ("Finished".equals(status)) {
                System.out.println("Tugas selesai. InfoTugas: " + JSONObject.toJSONString(getResponse.getBody().getEditingBatchJob()));
                break;
            }
        }
    }
}

Detail parameter pemanggilan API

Bentangkan untuk melihat InputConfig

{
  "Category": "Basketball",
  "InputMedia": "http://[your-bucket].oss-[your-region-id].basketball-0707.mp4",
  "FaceRegister": [
    {
      "FaceUrls": ["http://testcdn.com/front.jpg", "http://testcdn.com/side.jpg"],
      "Name": "James"
    }
  ],
  "SlowMotionLogoRegister": {
  	"SlowMotionLogoUrls": ["http://testcdn.com/logo1.jpg", "http://testcdn.com/logo2.jpg"]
  },
  "TransferNameRegister": [
    {
      "OriginalName": "IND",
      "TransferName": "Indiana Pacers"
    }
  ]
}

Bentangkan untuk melihat OutputConfig

{
  "Count": 1,
  "Height": 1080,
  "Width": 1920,
  "MediaURL": "http://[your-bucket].oss-[your-region-id].aliyuncs.com/[your-file-path]/[your-file-name]_{index}.mp4"
}

Logika pemrosesan

  • Menentukan jenis acara olahraga berdasarkan SportsCategory: basket-basketball, tenis meja-pingpong.

  • Menggunakan parameter identitas orang FaceRegister untuk menentukan bidikan atlet mana yang harus muncul dalam video akhir.

  • Menggunakan parameter identifier gerakan lambat SlowMotionLogoRegister untuk menentukan ulangan gerakan lambat mana yang harus disertakan dalam video akhir.

  • Menggunakan parameter transkripsi nama TransferNameRegister untuk mengonversi singkatan nama tim pada papan skor menjadi nama tim lengkap.

Referensi