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

Creating a Transcoding Template

You can use the SDK to create a transcoding template. For details about template parameters, see the API for creating a transcoding template.

Core Code

  1. Set template parameters.
     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
    // Set a request for creating a transcoding template.
    CreateTransTemplateRequest req = new CreateTransTemplateRequest()
            .withBody(new TransTemplate().withTemplateName("test_123")
    // Set video parameters.
                    .withVideo(new Video()
                            // Video encoding format. The value 1 indicates H.264, and the value 2 indicates H.265.
                            .withCodec(1)
                            // Video bitrate (kbit/s)
                            .withBitrate(6000)
                            // Encoding level. The recommended value is 3.
                            .withProfile(3)
                            .withLevel(15)
                            // Encoding quality. A larger value indicates higher quality and longer duration.
                            .withPreset(3)
                            .withRefFramesCount(4)
                            .withMaxIframesInterval(5)
                            .withBframesCount(4)
                            .withHeight(1080)
                            .withWidth(1920))
                    // Set audio parameters.
                    .withAudio(new Audio()
                            // Audio encoding format. The value can be 1 (AAC), 2 (HEAAC1), 3 (HEAAC2), or 4 (MP3).
                            .withCodec(1)
                            // Sampling rate. The value can be 1 (AUDIO_SAMPLE_AUTO), 2 (22,050 Hz), 3 (32,000 Hz), 4 (44,100 Hz), 5 (48,000 Hz), or 6 (96,000 Hz).
                            .withSampleRate(4)
                            // Audio bitrate (kbit/s)
                            .withBitrate(128)
                            // Number of audio channels.
                            .withChannels(2))
                    // Set common parameters.
                    .withCommon(new Common()
                            .withDashInterval(5)
                            .withHlsInterval(5)
                            // Whether to enable low bitrate HD.
                            .withPvc(false)
                            // Pack type. The value can be 1 (HLS), 2 (DASH), 3 (HLS+DASH), 4 (MP4), 5 (MP3), or 6 (ADTS).
                            .withPackType(1)));
    
  2. Send the request for creating a transcoding template and return a message.
    1
    2
    3
    4
    // Send the request.
    CreateTransTemplateResponse rsp = initMpcClient().createTransTemplate(req);
    // Print the response message.
    System.out.println("CreateTransTemplateResponse=" + JsonUtils.toJSON(rsp));
    

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.core.utils.JsonUtils;
import com.huaweicloud.sdk.mpc.v1.MpcClient;
import com.huaweicloud.sdk.mpc.v1.model.Audio;
import com.huaweicloud.sdk.mpc.v1.model.Common;
import com.huaweicloud.sdk.mpc.v1.model.CreateTransTemplateRequest;
import com.huaweicloud.sdk.mpc.v1.model.CreateTransTemplateResponse;
import com.huaweicloud.sdk.mpc.v1.model.TransTemplate;
import com.huaweicloud.sdk.mpc.v1.model.Video;
import com.obs.services.internal.ServiceException;

public class TestTranscodeTemplate {
    /**
     * 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 template.
     * @param args
     */
    public static void main(String[] args) {
        // Create a transcoding template request.
        CreateTransTemplateRequest req = new CreateTransTemplateRequest()
                .withBody(new TransTemplate().withTemplateName("test_123")
                        // Set video parameters.
                        .withVideo(new Video()
                                // Video encoding format. The value 1 indicates H.264, and the value 2 indicates H.265.
                                .withCodec(1)
                                // Video bitrate (kbit/s)
                                .withBitrate(6000)
                                // Encoding level. The recommended value is 3.
                                .withProfile(3)
                                .withLevel(15)
                                // Encoding quality. A larger value indicates higher quality and longer duration.
                                .withPreset(3)
                                .withRefFramesCount(4)
                                .withMaxIframesInterval(5)
                                .withBframesCount(4)
                                .withHeight(1080)
                                .withWidth(1920))
                        // Set audio parameters.
                        .withAudio(new Audio()
                                // Audio encoding format. The value can be 1 (AAC), 2 (HEAAC1), 3 (HEAAC2), or 4 (MP3).
                                .withCodec(1)
                                // Sampling rate. The value can be 1 (AUDIO_SAMPLE_AUTO), 2 (22,050 Hz), 3 (32,000 Hz), 4 (44,100 Hz), 5 (48,000 Hz), or 6 (96,000 Hz).
                                .withSampleRate(4)
                                // Audio bitrate (kbit/s)
                                .withBitrate(128)
                                // Number of audio channels.
                                .withChannels(2))
                        // Set common parameters.
                        .withCommon(new Common()
                                .withDashInterval(5)
                                .withHlsInterval(5)
                                // Whether to enable low bitrate HD.
                                .withPvc(false)
                                // Pack type. The value can be 1 (HLS), 2 (DASH), 3 (HLS+DASH), 4 (MP4), 5 (MP3), or 6 (ADTS).
                                .withPackType(1)));
        // Send a transcoding template request.
        try {
            CreateTransTemplateResponse rsp = initMpcClient().createTransTemplate(req);
            System.out.println("CreateTransTemplateResponse=" + JsonUtils.toJSON(rsp));
        } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) {
            System.out.println(e);
        }
    }
}