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

Creating a Packaging Task

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

Prerequisites

  • You have purchased OBS and uploaded source videos for media processing in the region of MPC (for example, CN North-Beijing4) by referring to Uploading Media Files.
  • You have obtained the authorization for MPC to access cloud resources by following the instructions provided in Authorizing Access to Cloud Resources.

Core Code

  1. Create a packaging task.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    // Set the paths of the input and output files.
    ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.flv");
    ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
    // Create a packaging request.
    CreateRemuxTaskRequest req = new CreateRemuxTaskRequest()
            .withBody(new CreateRemuxTaskReq().withInput(input).withOutput(output)
                    // Configure packaging parameters.
                    .withOutputParam(new RemuxOutputParam()
                            // Set the packaging format.
                            .withFormat("HLS")
                            // Set the HLS segment interval.
                            .withSegmentDuration(5)));
    // Send the packaging request.
    CreateRemuxTaskResponse rsp = initMpcClient().createRemuxTask(req);
    System.out.println(rsp.toString())
    

Full 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
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ClientRequestException;
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.mpc.v1.MpcClient;
import com.huaweicloud.sdk.mpc.v1.model.CreateRemuxTaskReq;
import com.huaweicloud.sdk.mpc.v1.model.CreateRemuxTaskRequest;
import com.huaweicloud.sdk.mpc.v1.model.CreateRemuxTaskResponse;
import com.huaweicloud.sdk.mpc.v1.model.ObsObjInfo;
import com.huaweicloud.sdk.mpc.v1.model.RemuxOutputParam;
import com.obs.services.internal.ServiceException;

public class TestRemux {
    /**
     * 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 packaging task.
     * @param args
     */
    public static void main(String[] args) {
        // Set the paths of the input and output files.
        ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("ok.flv");
        ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
        // Create a packaging request.
        CreateRemuxTaskRequest req = new CreateRemuxTaskRequest()
                .withBody(new CreateRemuxTaskReq().withInput(input).withOutput(output)
                        // Configure packaging parameters.
                        .withOutputParam(new RemuxOutputParam()
                                // Set the packaging format.
                                .withFormat("HLS")
                                // Set the HLS segment interval.
                                .withSegmentDuration(5)));
        // Send the packaging request.
        try {
            CreateRemuxTaskResponse rsp = initMpcClient().createRemuxTask(req);
            System.out.println(rsp.toString());
        } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) {
            System.out.println(e);
        }
    }
}