Tous les produits
Search
Centre de documentation

Intelligent Media Services:Montage et production vidéo

Dernière mise à jour :Aug 11, 2026

Exemple de code pour créer une tâche de montage et de production vidéo dans Intelligent Media Services en appelant une opération d'API avec le SDK Java côté serveur.

Notes d'utilisation

Lorsque vous créez une tâche de production, utilisez l'un des paramètres suivants : Timeline, TemplateId ou ProjectId.

Exemple de code

Déboguez les appels d'API en ligne sur le Portail des développeurs OpenAPI Alibaba Cloud.

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{

        // An Alibaba Cloud account AccessKey has full access permissions for all APIs. Use a Resource Access Management (RAM) user for API access or daily O&M.
        // This example shows how to save the AccessKey ID and AccessKey secret in environment variables.
        com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
        Config config = new Config();
        config.setCredential(credentialClient);

        // To hard-code the AccessKey ID and AccessKey secret, use the following code. However, do not save your AccessKey ID and AccessKey secret in your project code. Hard coding may lead to an AccessKey leak and compromise the security of all resources in your account.
        // config.accessKeyId = <yourAccessKeyId>;
        // config.accessKeySecret = <yourAccessKeySecret>;

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

        // Create a production job using 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\":\"description\",\"title\":\"title\",\"tags\":\"Tag1,Tag2,Test\"}");
        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());

        // Create a production job using 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());

        // Create a production job using 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());

        // Get a single production job
        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());

        // Submit a production job for a live stream segment
        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());

        // Get information about a single live editing job by JobId
        GetLiveEditingJobRequest getLiveEditingJobRequest = new GetLiveEditingJobRequest();
        getLiveEditingJobRequest.setJobId("****d80e4e4044975745c14b****");
        GetLiveEditingJobResponse getLiveEditingJobResponse = client.getLiveEditingJob(getLiveEditingJobRequest);
        System.out.println("state:"+getLiveEditingJobResponse.getBody().getLiveEditingJob().getStatus());

    }
}

Opérations d'API associées