全部产品
Search
文档中心

Intelligent Media Services:Pengeditan dan produksi

更新时间:Jul 06, 2025

Topik ini menjelaskan contoh kode yang digunakan untuk memanggil operasi API dengan menggunakan SDK server untuk membuat tugas pengeditan dan produksi di Intelligent Media Services (IMS).

Catatan penggunaan

Anda dapat membuat tugas produksi menggunakan Timeline, TemplateId, atau ProjectId sesuai kebutuhan bisnis Anda.

Kode contoh

Anda dapat menggunakan Alibaba Cloud OpenAPI Explorer untuk melakukan debugging secara online.

package com.aliyun.ice.sample;

import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;

public class MediaProducingJobSample {

    public static void main (String[] args) throws Exception{

        // Sepasang AccessKey dari akun Alibaba Cloud memiliki izin akses pada semua operasi API. Kami merekomendasikan agar Anda menggunakan sepasang AccessKey dari pengguna RAM untuk memanggil operasi API atau melakukan pemeliharaan rutin.
        // Dalam contoh ini, ID AccessKey dan rahasia AccessKey diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut, kunjungi https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials?spm=a3c0i.23458820.2359477120.17.332f6e9bDw0ggo.
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
        Config config = new Config();
        config.setCredential(credentialClient);

        // Untuk menuliskan langsung ID AccessKey dan rahasia AccessKey Anda, gunakan kode berikut. Namun, kami merekomendasikan agar Anda tidak menyimpan ID AccessKey dan rahasia AccessKey dalam kode proyek Anda. Jika tidak, sepasang AccessKey mungkin bocor dan keamanan sumber daya dalam akun Anda mungkin terganggu.
        // config.accessKeyId = <yourAccessKeyId>;
        // config.accessKeySecret = <yourAccessKeySecret>;

        config.endpoint = "ice.cn-shanghai.aliyuncs.com";
        Client client = new Client(config);

        // Buat tugas produksi dengan menggunakan Timeline.
        SubmitMediaProducingJobRequest submitMediaProducingJobRequest1 = new SubmitMediaProducingJobRequest();
        submitMediaProducingJobRequest1.setTimeline("{\"VideoTracks\":[{\"VideoTrackClips\":[{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"},{\"MediaId\":\"****9b4d7cf14dc7b83b0e801cbe****\"}]}]}");
        submitMediaProducingJobRequest1.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");
        submitMediaProducingJobRequest1.setProjectMetadata("{\"coverURL\":\"http://test.sample.com/mediaid.jpg\",\"description\":\"deskripsi\",\"title\":\"judul\",\"tags\":\"Tag1,Tag2,Uji\"}");
        SubmitMediaProducingJobResponse submitMediaProducingJobResponse1 = client.submitMediaProducingJob(submitMediaProducingJobRequest1);
        System.out.println("requestId : " + submitMediaProducingJobResponse1.getBody().getRequestId());
        System.out.println("jobId : " + submitMediaProducingJobResponse1.getBody().getJobId());
        System.out.println("projectId : " + submitMediaProducingJobResponse1.getBody().getProjectId());

        // Buat tugas produksi dengan menggunakan TemplateId.
        SubmitMediaProducingJobRequest submitMediaProducingJobRequest2 = new SubmitMediaProducingJobRequest();
        submitMediaProducingJobRequest2.setTemplateId("IceSys_VideoMerge");
        submitMediaProducingJobRequest2.setClipsParam("{\"VideoArray\":[\"****05512043f49f697f7425****\",\"****2788e810116a45109f2e****\",\"****67f44f4964e6c998dee8****\",]}");
        submitMediaProducingJobRequest2.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");
        SubmitMediaProducingJobResponse submitMediaProducingJobResponse2 = client.submitMediaProducingJob(submitMediaProducingJobRequest2);
        System.out.println("requestId : " + submitMediaProducingJobResponse2.getBody().getRequestId());
        System.out.println("jobId : " + submitMediaProducingJobResponse2.getBody().getJobId());
        System.out.println("projectId : " + submitMediaProducingJobResponse2.getBody().getProjectId());

        // Buat tugas produksi dengan menggunakan ProjectId.
        SubmitMediaProducingJobRequest submitMediaProducingJobRequest3 = new SubmitMediaProducingJobRequest();
        submitMediaProducingJobRequest3.setProjectId("****67f44f4964e6c998dee8****");
        submitMediaProducingJobRequest3.setOutputMediaConfig("{\"MediaURL\":\"http://example-bucket.oss-object.com/example.mp4\"}");
        SubmitMediaProducingJobResponse submitMediaProducingJobResponse3 = client.submitMediaProducingJob(submitMediaProducingJobRequest3);
        System.out.println("requestId : " + submitMediaProducingJobResponse3.getBody().getRequestId());
        System.out.println("jobId : " + submitMediaProducingJobResponse3.getBody().getJobId());
        System.out.println("projectId : " + submitMediaProducingJobResponse3.getBody().getProjectId());

        // Dapatkan satu tugas produksi.
        GetMediaProducingJobRequest request = new GetMediaProducingJobRequest();
        request.setJobId("****67f44f4964e6c998dee8****");
        GetMediaProducingJobResponse reqponse = client.getMediaProducingJob(request);
        System.out.println("jobId : " + reqponse.getBody().getMediaProducingJob().getJobId());
        System.out.println("status : " + reqponse.getBody().getMediaProducingJob().getStatus());

        // Kirimkan tugas produksi dengan menentukan klip aliran langsung.
        SubmitLiveEditingJobRequest submitLiveEditingJobRequest = new SubmitLiveEditingJobRequest();
        submitLiveEditingJobRequest.setClips("[{\"StartTime\":\"2021-06-21T08:01:00Z\",\"EndTime\":\"2021-06-21T08:03:00Z\",\"AppName\":\"app\",\"DomainName\":\"domain.com\",\"StreamName\":\"stream\"},{\"StartTime\":\"2021-06-21T08:05:00Z\",\"EndTime\":\"2021-06-21T08:09:00Z\"}]");
        submitLiveEditingJobRequest.setProjectId("****fddd7748b58bf1d47e95****");
        submitLiveEditingJobRequest.setLiveStreamConfig("{ \"AppName\": \"app\", \"DomainName\": \"domain.com\", \"StreamName\": \"stream\" }");
        submitLiveEditingJobRequest.setOutputMediaConfig("{ \"MediaURL\": \"https://example-bucket.oss-cn-shanghai.aliyuncs.com/testfile.mp4\" }");
        submitLiveEditingJobRequest.setMediaProduceConfig("{ \"Mode\": \"AccurateFast\"}");
        submitLiveEditingJobRequest.setUserData("{\"key\": \"value\"}");
        submitLiveEditingJobRequest.setOutputMediaTarget("oss-object");
        SubmitLiveEditingJobResponse submitLiveEditingJobResponse = client.submitLiveEditingJob(submitLiveEditingJobRequest);
        System.out.println("jobId:"+submitLiveEditingJobResponse.getBody().getJobId());
        System.out.println("requestid:"+submitLiveEditingJobResponse.getBody().getRequestId());

        // Dapatkan informasi tentang satu tugas aliran langsung dengan menggunakan JobId.
        GetLiveEditingJobRequest getLiveEditingJobRequest = new GetLiveEditingJobRequest();
        getLiveEditingJobRequest.setJobId("****d80e4e4044975745c14b****");
        GetLiveEditingJobResponse getLiveEditingJobResponse = client.getLiveEditingJob(getLiveEditingJobRequest);
        System.out.println("state:"+getLiveEditingJobResponse.getBody().getLiveEditingJob().getStatus());

    }
}

Operasi API terkait