本示例介绍使用Alibaba Cloud SDK for Java调用AddCustomLiveStreamTranscode接口添加自定义转码配置。

前提条件

请在pom.xml文件中增加以下依赖,准确的SDK版本号,请参见 阿里云开发工具包(SDK)

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-live</artifactId>
    <version>3.7.5</version>
 </dependency>

示例代码

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.live.model.v20161101.AddCustomLiveStreamTranscodeRequest;
import com.aliyuncs.live.model.v20161101.AddCustomLiveStreamTranscodeResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;

public class TestAddCustomLiveStreamTranscode {

    @SuppressWarnings("deprecation")
    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
                "<your-region-id>",  // 地域ID,可以通过接口 DescribeRegions 查看可用的地域ID。
                "<your-access-key-id>",             // 您的AccessKey ID
                "<your-access-key-secret>");        // 您的AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

        AddCustomLiveStreamTranscodeRequest request = new AddCustomLiveStreamTranscodeRequest();
        /**
         * 自定义转码模版类型。
         * 目前支持:
         *     h264(自定义H264标准模版)
         *     h264-nbhd(自定义H264窄带高清™模版)
         */
        request.setTemplateType("h264");
        // 视频GOP, 1表示baseline, 2表示main, 3表示high, 取值要求: 1 <= Profile <= 3
        request.setProfile(2);
        // 视频GOP, 单位: 帧, 取值要求: 1 <= Gop <= 3000
        request.setGop("300");
        // 转码音频比特率, 单位: kbps, 取值要求: 1 <= AudioBitrate <= 512
        request.setAudioBitrate(400);
        /**
         * 转码视频比特率。
         * 单位:kbps。
         *  取值范围:[1,6000] 转码视频会尽量接近您所设定的比特率,
         *  但转码视频的实际比特率不能保证和您所设定的完全一致,
         *  尤其是当您设定的比特率过大或过小时。
         */
        request.setVideoBitrate(3000);
        // 您的加速域名。
        request.setDomain("www.yourDomainName.com");
        // 转码视频高度。取值范围:Width≥ 100max(Height,Width) ≤ 1920min(Height,Width) ≤ 1080
        request.setHeight(720);
        // 转码视频宽度。取值要求:Width ≥ 100max(Height,Width) ≤ 1920min(Height,Width) ≤ 1080
        request.setWidth(576);
        // 转码视频帧率。单位:fps。取值范围:[1, 30]
        request.setFPS(30);
        // 转码模板自定义名称。 取值要求:数字、大小写字母或短横线("-")。 不能与标准的转码模板命名重复。
        request.setTemplate("LDtest");
        // 直播流所属应用名称。取值要求: 数字、大小写字母、下划线("_")或短横线("-")。
        request.setApp("testApp");

        try {
            AddCustomLiveStreamTranscodeResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }

    }

}
说明 更多接口信息,请参见API概览