文档

转码模板

更新时间:

当媒体处理中的预置模板不能满足您的实际业务需求时,您可以创建一个新的转码模板,自定义模板中的编码格式、帧率、分辨率等参数。本文提供了Java SDK转码模板相关功能的API调用示例,包含添加模板、修改模板、删除模板、查询模板。

前提条件

使用前请先初始化客户端,详细说明请参见初始化

添加模板

调用AddTemplate接口添加模板。

说明
  • 如果您在添加模板时遇到The resource "Template" quota has been used up错误,代表您的转码模板配额已用完,可以通过提交工单申请对应模板配额。

  • 建议您在添加模板后记录返回的转码模板ID,您也可以通过控制台来创建、获取转码模板。详细说明,请参见转码模板

/**
 * 创建模板
 * @param client
 * @return
 * @throws Exception
 */
public static AddTemplateResponse addTemplate(DefaultAcsClient client) throws Exception {

    AddTemplateRequest request = new AddTemplateRequest();
    request.setName("test-template");
    request.setContainer("{\"Format\":\"mp4\"}");
    request.setVideo("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Width\":\"1280\",\"Height\":\"720\",\"Fps\":\"25\",\"Gop\":\"300\"}");
    request.setAudio("{\"Codec\":\"AAC\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}");
    request.setTransConfig("{\"TransMode\":\"onepass\"}");
    return client.getAcsResponse(request);
}

更新模板配置

调用UpdateTemplate接口,更新转码模板配置。

/**
 * 更新模板配置
 * @param client
 * @return
 * @throws Exception
 */
public static UpdateTemplateResponse updateTemplate(DefaultAcsClient client) throws Exception {

    UpdateTemplateRequest request = new UpdateTemplateRequest();
    //转码模板ID,可以在MPS控制台>模板管理>转码模板查看,或通过addTemplate创建
    request.setTemplateId("81766fad9d7beb87d36ae****");
    request.setName("update name");
    request.setContainer("{\"Format\":\"m3u8\"}");
    request.setVideo("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Width\":\"1280\",\"Height\":\"720\",\"Fps\":\"25\",\"Gop\":\"300\"}");
    request.setAudio("{\"Codec\":\"AAC\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}");
    request.setTransConfig("{\"TransMode\":\"onepass\",\"IsCheckReso\":\"true\"}");
    request.setMuxConfig("{\"Segment\":{\"Duration\":\"10\"}}");

    return client.getAcsResponse(request);
}

删除模板

调用DeleteTemplate接口删除转码模板。

/**
 * 删除模板
 * @param client
 * @return
 * @throws Exception
 */
public static DeleteTemplateResponse deleteTemplate(DefaultAcsClient client) throws Exception {

    DeleteTemplateRequest request = new DeleteTemplateRequest();
    //转码模板ID,可以在MPS控制台>模板管理>转码模板,或通过addTemplate创建
    request.setTemplateId("81769d796feb87d36ae****");

    return client.getAcsResponse(request);
}

通过ID查询模板

调用QueryTemplateList接口通过ID查询模板。

/**
 * 通过ID 查询模板
 * @param client
 * @return
 * @throws Exception
 */
public static QueryTemplateListResponse queryTemplateList(DefaultAcsClient client) throws Exception {

    QueryTemplateListRequest request = new QueryTemplateListRequest();
    //转码模板ID,可以在MPS控制台>模板管理>转码模板查看,或通过addTemplate创建
    //支持查询多个模板ID,一次最多查询10个,使用半角逗号(,)分隔
    request.setTemplateIds("8176796feb8eb87d36ae****");

    return client.getAcsResponse(request);
}

通过状态查询模板

调用SearchTemplate接口通过状态查询模板。

/**
 * 通过状态查询模板
 * @param client
 * @return
 * @throws Exception
 */
public static SearchTemplateResponse searchTemplate(DefaultAcsClient client) throws Exception {

    SearchTemplateRequest request = new SearchTemplateRequest();
    //模板状态
    //All:全部模板、Normal:正常状态、Deleted:已删除状态
    request.setState("Normal");

    return client.getAcsResponse(request);
}

完整代码

import com.alibaba.fastjson.JSON;
import com.aliyun.mps.utils.InitClient;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.mts.model.v20140618.*;

/**
 * *****   使用须知     ******
 * 本Demo为基本的模板相关接口示例, 包含添加模板、修改模板、删除模板、查询模板。
 *
 * *****   方法介绍     ******
 * addTemplate   添加模板 https://help.aliyun.com/document_detail/602839.html
 * updateTemplate   更新模板配置 https://help.aliyun.com/document_detail/602840.html
 * deleteTemplate   删除模板 https://help.aliyun.com/document_detail/602843.html
 * queryTemplateList   通过ID查询模板 https://help.aliyun.com/document_detail/602841.html
 * searchTemplate    通过状态查询模板 https://help.aliyun.com/document_detail/602842.html
 *
 * 更多模板参数 请参考 https://help.aliyun.com/document_detail/29253.html#section-i3e-rj4-51n
 *
 * *****   main方法     ******
 * main方法中仅以addTemplate和updateTemplate作为调用示例, 如需调用其他方法请自行替换response
 */
public class Template{

    public static void main(String[] args) throws ClientException {

        //初始化调用client
        DefaultAcsClient client = InitClient.initMpsClient();

        AddTemplateResponse response;
        try {
            response = addTemplate(client);
            System.out.println("RequestId is:" + response.getRequestId());
            System.out.println("TemplateI is:" + response.getTemplate().getId());
        } catch (Exception e) {
            e.printStackTrace();
        }

//        UpdateTemplateResponse response;
//        try {
//            response = updateTemplate(client);
//            System.out.println("RequestId is:" + response.getRequestId());
//            System.out.println("TemplateId is:" + response.getTemplate().getId());
//            System.out.println("Template is:" + JSON.toJSON(response.getTemplate()));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }

    }

    /**
     * 创建模板
     * @param client
     * @return
     * @throws Exception
     */
    public static AddTemplateResponse addTemplate(DefaultAcsClient client) throws Exception {

        AddTemplateRequest request = new AddTemplateRequest();
        request.setName("test-template");
        request.setContainer("{\"Format\":\"mp4\"}");
        request.setVideo("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Width\":\"1280\",\"Height\":\"720\",\"Fps\":\"25\",\"Gop\":\"300\"}");
        request.setAudio("{\"Codec\":\"AAC\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}");
        request.setTransConfig("{\"TransMode\":\"onepass\"}");
        return client.getAcsResponse(request);
    }

    /**
     * 更新模板配置
     * @param client
     * @return
     * @throws Exception
     */
    public static UpdateTemplateResponse updateTemplate(DefaultAcsClient client) throws Exception {

        UpdateTemplateRequest request = new UpdateTemplateRequest();
        //转码模板ID,可以在MPS控制台>模板管理>转码模板查看,或通过addTemplate创建
        request.setTemplateId("8176eb87d36ae96fad9d7****");
        request.setName("update name");
        request.setContainer("{\"Format\":\"m3u8\"}");
        request.setVideo("{\"Codec\":\"H.264\",\"Profile\":\"high\",\"Bitrate\":\"500\",\"Width\":\"1280\",\"Height\":\"720\",\"Fps\":\"25\",\"Gop\":\"300\"}");
        request.setAudio("{\"Codec\":\"AAC\",\"Samplerate\":\"44100\",\"Bitrate\":\"500\",\"Channels\":\"2\"}");
        request.setTransConfig("{\"TransMode\":\"onepass\",\"IsCheckReso\":\"true\"}");
        request.setMuxConfig("{\"Segment\":{\"Duration\":\"10\"}}");

        return client.getAcsResponse(request);
    }

    /**
     * 删除模板
     * @param client
     * @return
     * @throws Exception
     */
    public static DeleteTemplateResponse deleteTemplate(DefaultAcsClient client) throws Exception {

        DeleteTemplateRequest request = new DeleteTemplateRequest();
        //转码模板ID, 可以在MPS控制台>模板管理>转码模板查看,或通过addTemplate创建
        request.setTemplateId("8176f9d796eb87d36ae****");

        return client.getAcsResponse(request);
    }

    /**
     * 通过ID 查询模板
     * @param client
     * @return
     * @throws Exception
     */
    public static QueryTemplateListResponse queryTemplateList(DefaultAcsClient client) throws Exception {

        QueryTemplateListRequest request = new QueryTemplateListRequest();
        //转码模板ID, 可以在MPS控制台>模板管理>转码模板查看,或通过addTemplate创建
        //支持查询多个模板ID,一次最多查询10个,使用半角逗号(,)分隔
        request.setTemplateIds("8176f9d796eb87d36ae****");

        return client.getAcsResponse(request);
    }

    /**
     * 通过状态查询模板
     * @param client
     * @return
     * @throws Exception
     */
    public static SearchTemplateResponse searchTemplate(DefaultAcsClient client) throws Exception {

        SearchTemplateRequest request = new SearchTemplateRequest();
        //模板状态
      	//All:全部模板、Normal:正常状态、Deleted:已删除状态
        request.setState("Normal");

        return client.getAcsResponse(request);
    }
}

相关文档

  • 本页导读 (1)
文档反馈