本示例介绍如何使用Alibaba Cloud SDK for Java调用AddTemplate接口新增自定义转码模板。

创建自定义模板包含容器信息、视频和音频流等设置。如果自定义模板没有相关的配置,则转码流中也不会包含相关的信息。

前提条件

在使用本教程前,请确保已完成以下操作:
  • 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
  • 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>java.demo</groupId>
        <artifactId>test</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>4.6.1</version>
            </dependency>
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-mts -->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-mts</artifactId>
                <version>2.7.2</version>
            </dependency>
        </dependencies>
    </project>

示例代码

本文操作示例主要以代码形式体现,具体代码如下:
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.mts.model.v20140618.*;

public class AddTemplate {

    /**
     * 创建DefaultAcsClient实例并初始化
     *
     * @return IAcsClient
     */
    private static IAcsClient getIAcsClient() {
        DefaultProfile profile = DefaultProfile.getProfile(
                       "<your-region-id>",        // 地域ID
                       "<your-access-key-id>",    // 您的AccessKey ID
                       "<your-access-key-secret>" // 您的AccessKey Secret
        );
        return new DefaultAcsClient(profile);
    }

    public static void main(String[] args) {
        // 创建API请求并设置参数
        AddTemplateRequest request = new AddTemplateRequest();
        AddTemplateResponse response;
        // Name  / 模板名称,最大长度128字节
        request.setName("test-mts-template-2018");
        // Container / 输出的容器类型(文件格式),视频支持mp4、flv、ts、m3u8格式,音频支持mp3、mp4等格式
        JSONObject container = new JSONObject();
        container.put("Format", "mp4");
        request.setContainer(container.toJSONString());
        // Video / 视频流配置,JSON对象。例如编码格式、码率、宽、高、帧率等
        JSONObject video = new JSONObject();
        video.put("Codec", "H.264");
        video.put("Profile", "high");
        video.put("Bitrate", "500");
        video.put("Crf", "15");
        video.put("Width", "256");
        video.put("Height", "800");
        video.put("Fps", "25");
        video.put("Gop", "10");
        request.setVideo(video.toJSONString());
        // Audio / 音频参数,JSON对象
        JSONObject audio = new JSONObject();
        audio.put("Codec", "AAC");
        audio.put("Bitrate", "500");
        audio.put("Channels", "2");
        audio.put("Samplerate", "44100");
        request.setAudio(audio.toJSONString());
        // 发起请求并处理应答或异常
        try {
            response = getIAcsClient().getAcsResponse(request);
            System.out.println("RequestId :" + response.getRequestId());
            System.out.println(String.format("Id: %s, Name: %s", response.getTemplate().getId(), response.getTemplate().getName()));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

}