Updated on 2024-05-09 GMT+08:00

Creating a Transcoding Task

You can create a transcoding task by creating an MPC client instance and configuring related parameters.

Core Code

  1. Create an MPC client instance.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public static MpcClient initMpcClient() {
        // Set httpConfig.
        HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);
        // Set the HTTP proxy as required.
        //httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").
                //withProxyPassword("xxxxxx");
        // Enter the AK and SK. To view your AK and SK, choose My CredentialsAccess Keys under your account on the console.
        String ak = "xxxxxx";
        String sk = "xxxxxx";
            // Enter the project ID. To view your project ID, choose My CredentialsAPI Credentials under your account on the console.
        String projectId = "xxxxxx";
        // Enter the endpoint. The following uses region01 as an example.
        String endpoint = "https://mpc.region01.myhuaweicloud.com";
        BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);
        return MpcClient.newBuilder()
                .withHttpConfig(httpConfig)
                .withCredential(auth)
                .withEndpoint(endpoint)
                .build();
    }
    
  2. Create a transcoding request and set the request body.
    A transcoding request includes information about an input file and output file, and transcoding template settings. For details about the parameters, see Creating a Transcoding Task.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // Set the input file path.
    ObsObjInfo input = new ObsObjInfo()
        // Set the bucket name.
        .withBucket("mpc-east-2")
        // Set the region where the OBS bucket is located.
        .withLocation("region01")
        // Set the input file object.
        .withObject("input/ok.mp4");
    // Set the output file path.
    ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01")
            // Set the output file path.
            .withObject("output");
    // Create a transcoding request.
    CreateTranscodingTaskRequest request
            = new CreateTranscodingTaskRequest().withBody(new CreateTranscodingReq()
            .withInput(input)
            .withOutput(output)
            // Configure a transcoding template. To view IDs of system templates, choose Global SettingsSystem Templates on the MPC console.
            .withTransTemplateId(Collections.singletonList(7000530))
            // Set output file names. Each template has a name.
            .withOutputFilenames(Collections.singletonList("output_"))
            // Configure snapshot parameters and fill in the thumbnail structure as required.
            //.withThumbnail(new Thumbnail())
            // Configure encryption parameters and fill in the encryption structure as required.
            //.withEncryption(new Encryption())
    );
    
  3. Send the transcoding request.
    1
    2
    3
    4
    // Send the transcoding request.
    CreateTranscodingTaskResponse response = initMpcClient().createTranscodingTask(request);
    // Return a message.
    System.out.println("CreateTranscodingTaskResponse=" + response);
    

Sample Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.http.HttpConfig;
import com.huaweicloud.sdk.core.utils.JsonUtils;
import com.huaweicloud.sdk.mpc.v1.MpcClient;
import com.huaweicloud.sdk.mpc.v1.model.CreateTranscodingReq;
import com.huaweicloud.sdk.mpc.v1.model.CreateTranscodingTaskRequest;
import com.huaweicloud.sdk.mpc.v1.model.CreateTranscodingTaskResponse;
import com.huaweicloud.sdk.mpc.v1.model.ListTranscodingTaskRequest;
import com.huaweicloud.sdk.mpc.v1.model.ListTranscodingTaskResponse;
import com.huaweicloud.sdk.mpc.v1.model.ObsObjInfo;
import com.obs.services.internal.ServiceException;
import org.junit.Test;

import java.util.Arrays;
import java.util.Collections;

public class TestTranscode {
    /**
     * Initialize the MPC client.
     * @return
     */
    public static MpcClient initMpcClient() {
        HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);
        // Configure the HTTP proxy.
        //httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").
        //        withProxyPassword("xxxxxx");
        // Enter the AK and SK. To view your AK and SK, choose My CredentialsAccess Keys under your account on the console.
        String ak = "xxxxxx";
        String sk = "xxxxxx";
        // Enter the project ID. To view your project ID, choose My CredentialsAPI Credentials under your account on the console.
        String projectId = "xxxxxx";
        // Enter the endpoint. The following uses region01 as an example.
        String endpoint = "https://mpc.region01.myhuaweicloud.com";
        BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);
        return MpcClient.newBuilder()
                .withHttpConfig(httpConfig)
                .withCredential(auth)
                .withEndpoint(endpoint)
                .build();
    }

    /**
     * Create a transcoding task.
     * @param args
     */
    public static void main(String[] args) {
        // Set the input file path.
        ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.mp4");
        // Set the output file path.
        ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
        // Create a transcoding request.
        CreateTranscodingTaskRequest request
                = new CreateTranscodingTaskRequest().withBody(new CreateTranscodingReq()
                .withInput(input)
                .withOutput(output)
                // Configure a transcoding template. To view IDs of system templates, choose Global SettingsSystem Templates on the MPC console.
                .withTransTemplateId(Collections.singletonList(7000530))
                // Set output file names. Each template has a name.
                .withOutputFilenames(Collections.singletonList("output_"))
                // Configure snapshot parameters.
                //.withThumbnail(new Thumbnail())
                // Configure encryption parameters.
                //.withEncryption(new Encryption())
        );
        try {
            CreateTranscodingTaskResponse response = initMpcClient().createTranscodingTask(request);
            System.out.println("CreateTranscodingTaskResponse=" + response);
        } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) {
            System.out.println(e);
        }
    }
}