文档首页 > > SDK参考> Java SDK(2.x.x)> 视频转码> 新建转码任务

新建转码任务

分享
更新时间:2020/10/29 GMT+08:00

您可以通过创建转码MpcClient实例并设置相关参数新建转码任务。

核心代码

  1. 创建媒体处理配置项
    媒体处理配置项用于媒体处理服务中获取相关授权。参数和对应说明如表1所示。
    1
    2
    3
    4
    5
       MpcConfig mpcConfig = new MpcConfig();
           mpcConfig.setEndPoint(endPoint);// 设置转码节点地址
           mpcConfig.setProjectId(projectId);// 设置用户项目编号ProjectId
           mpcConfig.setSk(sk);// 设置sk
           mpcConfig.setAk(ak);// 设置ak
    
    表1 媒体处理服务配置参数

    参数

    参数类型

    参数说明

    endPoint

    String

    节点地址。请参考获取EndPoint

    ProjectId

    String

    项目ID。请参考获取项目ID和账号名

    ak

    String

    访问密钥ID。请参考获取AK和SK

    sk

    String

    与访问密钥ID结合使用的密钥。请参考获取AK和SK

  2. 创建转码MpcClient实例
    若不设置代理服务器,可直接创建MpcClient实例。
    1
    2
         // 创建MpcClient实例
         MpcClient mpcClient = new MpcClient(mpcConfig);
    
    若业务需要设置代理服务器,可先设置代理参数,并将代理作为构造参数传入MpcClient实例即可。
    1
    2
    3
    4
    5
    6
    7
    8
    //设置代理
           ClientConfig clientConfig = new ClientConfig();
           clientConfig.setProxyHost(proxyHost);// 设置代理服务器主机IP
           clientConfig.setProxyPort(Integer.parseInt(proxyPort));// 设置代理服务器端口号
           clientConfig.setProxyUserName(proxyUserName);  // 设置代理服务器用户名
           clientConfig.setProxyPassword(proxyPassword);// 设置代理服务器用户密码
    //使用该构造函数初始化MpcClient
     MpcClient mpcClient =new MpcClient(mpcConfig, clientConfig);
    
  3. 创建转码请求
    转码请求包括输入文件、输出文件和转码模板设置。具体参数含义请参考新建转码任务
     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
           //设置媒体处理服务请求
            CreateTranscodingRequest createTranscodingRequest = new CreateTranscodingRequest();
    
           //设置转码的输入文件路径参数,可通过华为云OBS对象存储服务控制台查看。
            ObsObjInfo input  = new ObsObjInfo();
            //设置输入桶名
            input.setBucket("bucketName");
           //设置源文件路径
            input.setObject("objectKey");
           //设置输入桶所在区域
            input.setLocation("cn-north-4");
            createTranscodingRequest.setInput(input);
    
    
            // 设置转码的输出文件路径参数,可通过华为云OBS对象存储服务控制台查看。
            ObsObjInfo output  = new ObsObjInfo();
           //设置输出桶名
            output.setBucket("bucketName");
           //设置输出文件路径
            output.setObject("path");
           //设置输出桶所在区域
            output.setLocation("cn-north-4");
            createTranscodingRequest.setOutput(output);
    
            //设置转码模板ID。
            //多个转码模板中如下参数可变,其他都必须一致:视频 bitrate,height,width;音频 bitrate。
            //最多支持9个模板id。
            List<Long> transTempIds = new ArrayList<Long>();
            transTempIds.add(203L);
            transTempIds.add(212L);
            transTempIds.add(210L);
            createTranscodingRequest.setTransTemplateId(transTempIds);
    

    参数

    类型

    参数描述

    bucketName

    String

    OBS的bucket名称。

    location

    String

    输入OBS Bucket所在数据中心(OBS Location)。

    path

    String

    OBS对象路径,遵守OSS Object定义。

    当用于指示input时,需要指定到具体对象。

    当用于指示output时,只需指定到转码结果期望存放的路径。

  4. 设置转码参数(可选)

    转码参数和转码模板ID可以任选一个,若同时设置了转码模板ID和转码参数,则优先使用转码参数进行转码。

    • 新建转码参数对象
      1
      2
              List<AvParmeters> avParmetersList = new LinkedList<>();
              AvParmeters transTemplate = new AvParmeters();
      
    • 设置公共参数。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
              BaseCommonBean common = new BaseCommonBean();
      
              // 设置封装类型(DASH+MP4、HLS+TS)
              // 按bitmap来描述封装格式,每个bit代表一种封装格式
              // 00000001: DASH+MP4格式
              // 00000010: HLS+TS格式
              // 00000011: HLS+TS和DASH+MP4格式
              // 00000100: DASH+MP4(普通)格式
              // 00000101: TS格式
              common.setPackType(2);
      
              // HLS分片间隔(单位:秒),范围:[2,10],缺省值为5
              common.setHlsInterval(5);
      
              transTemplate.setCommon(common);
      
    • 设置视频参数,若需要禁用视频,则设置“video”字段为null。
       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
              BaseVideoBean video = new BaseVideoBean();
      
              // 设置输出平均码率(单位:Kbps),有效值范围为[40,30000]或者0,0表示按原始码率进行自适应
              video.setBitrate(1000);
      
              // 视频编码格式。
              // 1: VIDEO_CODEC_H264
              // 2: VIDEO_CODEC_H265
              // 3: VIDEO_CODEC_AVS2
              video.setCodec(1);
      
              // 设置帧率(单位:帧每秒),范围[1, 1000],其中范围[1,5]表示自适应帧率
              video.setFrameRate(30);
      
              // 设置视频宽度(单位:像素)
              // H264:范围[32,4096]或者0(自适应),必须为2的倍数
              // H265:范围[160,4096] 或者0(自适应),必须为2的倍数
              video.setWidth(270);
      
              // 视频高度(单位:像素)
              // H264: 范围[32,2880]或者0(自适应),必须为2的倍数
              // H265: 范围[96,2880]或者0(自适应),必须为2的倍数
              video.setHeight(480);
      
              // 黑边剪裁类型。
              // 0: 不开启黑边剪裁;
              // 1: 开启黑边剪裁,低复杂度算法,针对长视频(>5分钟);
              // 2: 开启黑边剪裁,高复杂度算法,针对短视频(<=5分钟)
              video.setBlackCut(0);
      
              transTemplate.setVideo(video);
      
    • 设置音频参数,若需要禁用音频,则设置“audio”字段为null。
       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
              BaseAudioBean audio = new BaseAudioBean();
      
              // 音频编码格式(有效值范围)
              // 1: AUDIO_CODECTYPE_AAC (default)
              // 2: AUDIO_CODECTYPE_HEAAC1
              // 3: AUDIO_CODECTYPE_HEAAC2
              // 4: AUDIO_CODECTYPE_MP3
              audio.setCodec(4);
      
              // 音频码率(单位:Kbps),范围为[8,1000]或者0(自适应)
              audio.setBitrate(126);
      
              // 音频采样率(有效值范围)
              // 1: AUDIO_SAMPLE_AUTO,缺省值,表示与原始音频采样率保持一致
              // 2: AUDIO_SAMPLE_22050
              // 3: AUDIO_SAMPLE_32000
              // 4: AUDIO_SAMPLE_44100
              // 5: AUDIO_SAMPLE_48000
              // 6: AUDIO_SAMPLE_96000
              // 当音频codec为4(MP3)时,音频采样率范围为[1,5]
              audio.setSampleRate(5);
      
              // 声道数(有效值范围)
              // 1: AUDIO_CHANNELS_1
              // 2: AUDIO_CHANNELS_2(default)
              // 3: AUDIO_CHANNELS_4
              // 4: AUDIO_CHANNELS_5
              // 5: AUDIO_CHANNELS_6
              // 6: AUDIO_CHANNELS_8
              // 当音频codec为4(MP3)时,音频声道数范围为[1,2]
              audio.setChannels(2);
      
              transTemplate.setAudio(audio);
      
    • 将转码参数填充到转码请求中。
      1
      2
              avParmetersList.add(transTemplate);
              req.setAvParmeters(avParmetersList);
      
  5. 设置转码相关参数

    以下参数,您可以根据实际需求进行设置,若不需要,可直接忽略。

    • 转码优先级。
      1
      2
      3
             //设置转码优先级。目前只能取值6或者9:。
             // 6:中优先级(默认为当前优先级);9:高优先级
              createTranscodingRequest.setPriority(6);
      
    • 视频处理控制参数。
      1
      2
      3
      4
      5
      6
      7
            // 视频处理控制参数,需要时设置
              VideoProcess videoProcess = new VideoProcess();
           // 长短边自适应控制字段。取值如下:SHORT:表示短边自适应 LONG:表示长边自适应 NONE:表示不自适应默认值:SHORT
             videoProcess.setAdaptation(VideoProcess.AdaptationEnum.LONG);
           // 视频顺时针旋转角度,可取值为0,1,2,3: 0表示不旋转, 1表示顺时针旋转90度, 2表示顺时针旋转180度, 3表示顺时针旋转270度。
             videoProcess.setRotate(1);
             createTranscodingRequest.setVideoProcess(videoProcess);	
      
    • 水印
      开启水印功能,需先将水印图片上传至OBS,并获取了OBS桶的授权。请参见获取云资源授权
       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
              // 设置水印功能
              CreateTranscodingRequest.Watermark watermark = new CreateTranscodingRequest.Watermark();
              watermark.setTemplateId("watermark_template_id");
              // 设置水印图片地址
              ObsObjInfo watermarkInput  = new ObsObjInfo();
             // 水印图片地址所在桶
              watermarkInput.setBucket("bucketName");
             // 水印图片地址所在路径
              watermarkInput.setObject("objectKey");
             // 水印图片地址所在区域
              watermarkInput.setLocation("cn-north-4");
              watermark.setInput(watermarkInput);
              // 图片水印参数, 用于对模板中字段进行覆盖
              ImageWatermark imageWatermark = new ImageWatermark();
              // 覆盖dx参数,同理可覆盖其他参数
              imageWatermark.setDx("30");
              watermark.setImageWatermark(imageWatermark);
              // 文字水印内容,内容需做Base64编码,
              // 示例:若想添加文字水印“测试文字水印”,那么Content的值为:5rWL6K+V5paH5a2X5rC05Y2w
              watermark.setTextContext("5rWL6K+V5paH5a2X5rC05Y2w");
              TextWatermark textWatermark = new TextWatermark();
              // 字体颜色。
              // 目前颜色支持black,blue,white,green,red,yellow,brown,gold,pink,orange,purple。
              // 默认颜色是white
              textWatermark.setFontColor("black");
              // 字体,当前支持fzyouh、msyh
              // 默认字体是msyh
              textWatermark.setFontName("fzyouh");
              // 字体大小。默认值:16,范围:(4, 120)
              textWatermark.setFontSize(16);
              watermark.setTextWatermark(textWatermark);
              List<CreateTranscodingRequest.Watermark> watermarks = new ArrayList<CreateTranscodingRequest.Watermark>();
              watermarks.add(watermark);
              CreateTranscodingRequest.Watermark[] watermarkArray = new CreateTranscodingRequest.Watermark[watermarks.size()];
              createTranscodingRequest.setWatermarks(watermarks.toArray(watermarkArray));
      
    • 截图
      开启截图功能,需设置截图存储的OBS桶,且桶已授权。请参见获取云资源授权
       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
              // 设置截图参数
              CreateTranscodingRequest.Thumbnail thumbnail = new CreateTranscodingRequest.Thumbnail();
              //设置截图文件打包方式,此处为tar包形式
              thumbnail.setTar(1);
              //设置截图源文件地址,需确认已对媒体处理服务进行桶授权
              ObsObjInfo thumbOutput = new ObsObjInfo();
              //OBS桶名
              thumbOutput.setBucket("obs-bills");
              //OBS桶所在区域,OBS桶需与媒体处理服务所在区域一致
              thumbOutput.setLocation("cn-north-4");
              //OBS桶下存放路径
              thumbOutput.setObject("output/thumbnail/");
              thumbnail.setThumbOutput(thumbOutput);
              CreateThumbnailRequest.ThumbnailPara thumbnailPara = new CreateThumbnailRequest.ThumbnailPara();
             
              //采样类型。支持三种采样方式PERCENT、TIME和DOTS(根据时间间隔time,根据视频时长百分比percent,根据时间截图时的时间点数组dots,目前只支持TIME和DOTS两种方式)
              thumbnailPara.setType(CreateThumbnailRequest.ThumbnailPara.TypeEnum.TIME);
             // 根据时间间隔采样时的时间间隔值
              thumbnailPara.setTime(12);
             // TIME模式的开始时间,和time配合使用。单位:秒。取值范围:数字,默认值0
              thumbnailPara.setStartTime(0);
             // TIME模式的持续时间,和time、start_time配合使用。单位:秒。取值范围[数字,ToEND],默认值ToEND。
              thumbnailPara.setDuration(60);
             // 指定时间截图时的时间点数组,仅当采样方式为DOTS时有效
              List<Integer> dots = new ArrayList<>();
              dots.add(10);
              dots.add(20);
              thumbnailPara.setDots(dots);
      
              //设置最大长度
              thumbnailPara.setMaxLength(480);
              //设置纵横比
              thumbnailPara.setAspectRatio(0);
              //设置截图格式,0表示默认,1表示JPG格式
              thumbnailPara.setFormat(1);
              createTranscodingRequest.setThumbnail(thumbnail);
      
    • 加密
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
             // 设置加密参数
             CreateTranscodingRequest.Encryption encryption = new CreateTranscodingRequest.Encryption();
             CreateTranscodingRequest.Encryption.Multidrm multidrm = new CreateTranscodingRequest.Encryption.Multidrm();
             //设置content_id唯一标识
             multidrm.setContentId("contentId");
             //定义数据流的类型,取值为DASH或HLS
             multidrm.setStreamingMode("HLS");
             //音频加密开关(0:标识音频不加密;1:标识音频加密;默认0)
             multidrm.setEncryptAudio(1);
             //定义加密方式,取值包括:默认为16420
             multidrm.setEmi(16420);
             multidrm.setDrmList(new String[]{"PLAYREADY"})
             encryption.setMultidrm(multidrm);
             createTranscodingRequest.setEncryption(encryption);
      
    • 字幕
      开启该功能,您需要先将字幕文件上传到OBS桶中,并获取了OBS的桶授权。请参见获取云资源授权
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
             //设置字幕参数
             CreateTranscodingRequest.Subtitle subtitle = new CreateTranscodingRequest.Subtitle();
             //设置字幕类型 。暂只支持0/1。0:不输出字幕 ;1:外部字幕文件嵌入视频
             subtitle.setSubtitleType(1);
             //设置字幕文件地址
             ObsObjInfo fileInput = new ObsObjInfo();
             fileInput.setBucket("bucketName");
             fileInput.setObject("objectKey");
             fileInput.setLocation("cn-north-4");
             subtitle.setSubtitleFile(fileInput);
             createTranscodingRequest.setSubtitle(subtitle);
      
    • 图像旋转
      1
      2
      3
      4
             VideoProcess videoProcess = new VideoProcess();
             // 视频顺时针旋转角度,可取值为0,1,2,3。0表示不旋转,1表示顺时针旋转90度,2表示顺时针旋转180度,3表示顺时针旋转270度。
             videoProcess.setRotate(2);
             createTranscodingRequest.setVideoProcess(videoProcess);
      
    • 画质增强
      1
      2
      3
      4
             QualityEnhance qualityEnhance = new QualityEnhance();
             // 针对一般质量、无明显问题的普通片源,通过增强、锐化等技术明显提升主观效果。该处理操作前后,分辨率、帧率等参数不发生变化。
             qualityEnhance.setNormalEnhance(QualityEnhance.NormalEnhanceEnum.NORMAL);
             createTranscodingRequest.setQualityEnhance(qualityEnhance);
      
    • 音量调节
      1
      2
      3
      4
      5
      6
             AudioProcess audioProcess = new AudioProcess();
             // 音量调整方式,可取值为auto和dynamic:auto表示自动调整音量;dynamic表示人为调整,需设定音量调整幅值。
             audioProcess.setVolume(AudioProcess.VolumeEnum.DYNAMIC);
             // 音量调整幅值,范围[-15,15],单位:dB (需指定volume为dynamic)。
             audioProcess.setVolumeExpr(15);
             createTranscodingRequest.setAudioProcess(audioProcess);
      
    • 多音轨
              // 设置多音轨参数
              MultiAudio multiAudio = new MultiAudio();
              List<AudioFile> audioFiles = new LinkedList<>();
              AudioFile audioFile = new AudioFile();
      
              ObsObjInfo multiAudioInput = new ObsObjInfo();
              // 设置输入文件路径
              multiAudioInput.setBucket("obs-syg01");
              multiAudioInput.setLocation("cn-north-4");
              multiAudioInput.setObject("1.mp3");
              audioFile.setInput(multiAudioInput);
              audioFiles.add(audioFile);
              multiAudio.setAudioFiles(audioFiles);
              createTranscodingRequest.setMultiAudio(multiAudio);
  6. 发送转码请求。
    1
    2
    3
    4
            //发送媒体处理服务请求
            CreateTranscodingResponse createTranscodingResponse = mpcClient.createTranscodingTask(createTranscodingRequest);
            //返回消息
            System.out.println(new Gson().toJson(createTranscodingResponse));
    

完整代码

  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
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import com.google.gson.Gson;
import com.huawei.mpc.client.ClientConfig;
import com.huawei.mpc.client.MpcClient;
import com.huawei.mpc.client.MpcConfig;
import com.huawei.mpc.model.ObsObjInfo;
import com.huawei.mpc.model.transcoding.CreateTranscodingRequest;
import com.huawei.mpc.model.transcoding.CreateTranscodingResponse;

        // 设置媒体处理服务配置项构造方法
        MpcConfig mpcConfig = new MpcConfig();

        //必选,设置媒体处理服务的终端节点地址,可参考“获取关键参数”章节获取
        mpcConfig.setEndPoint(endPoint);

        //必选, 设置用户项目ID,可参考“获取关键参数”章节获取
        mpcConfig.setProjectId(projectId);

        // 必选,设置SK,可参考“获取关键参数”章节获取
        mpcConfig.setSk(sk);

        // 必选,设置AK,可参考“获取关键参数”章节获取
        mpcConfig.setAk(ak);
       
       /*if you need proxy*/
       //可选,设置代理,根据实际情况进行选择设置
       /*
          ClientConfig clientConfig = new ClientConfig();
          //设置代理服务器主机IP
           clientConfig.setProxyHost(proxyHost);
          //设置代理服务器端口号
            clientConfig.setProxyPort(Integer.parseInt(proxyPort));
           //设置代理服务器用户名
           clientConfig.setProxyUserName(proxyUserName);
          //设置代理服务器用户密码
          clientConfig.setProxyPassword(proxyPassword);
         */


        // 媒体处理服务构造方法
        MpcClient mpcClient = new MpcClient(mpcConfig);

        //设置媒体处理服务请求参数
        CreateTranscodingRequest createTranscodingRequest = new CreateTranscodingRequest();

        //设置转码源文件地址
        ObsObjInfo input  = new ObsObjInfo();
        input.setBucket("bucketName");
        input.setObject("objectKey");
        input.setLocation("cn-north-4");
        createTranscodingRequest.setInput(input);


        // 设置转码后的文件存放地址
        ObsObjInfo output  = new ObsObjInfo();
        output.setBucket("bucketName");
        output.setObject("path");
        output.setLocation("cn-north-4");
        createTranscodingRequest.setOutput(output);

        /*
        // 可选,设置水印功能(该设置需要启动水印功能时才进行设置)
        CreateTranscodingRequest.Watermark watermark = new CreateTranscodingRequest.Watermark();
        watermark.setTemplateId("watermark_template_id");
        // 设置水印图片地址
        ObsObjInfo watermarkInput  = new ObsObjInfo();
        watermarkInput.setBucket("bucketName");
        watermarkInput.setObject("objectKey");
        watermarkInput.setLocation("cn-north-4");
        watermark.setInput(watermarkInput);


        List<CreateTranscodingRequest.Watermark> watermarks = new ArrayList<CreateTranscodingRequest.Watermark>();
        watermarks.add(watermark);

        CreateTranscodingRequest.Watermark[] watermarkArray = new CreateTranscodingRequest.Watermark[watermarks.size()];
        createTranscodingRequest.setWatermarks(watermarks.toArray(watermarkArray));
        */

        //设置转码模板ID
        List<Long> transTempIds = new ArrayList<Long>();
        transTempIds.add(203L);
        transTempIds.add(212L);
        transTempIds.add(210L);
        createTranscodingRequest.setTransTemplateId(transTempIds);

        /*
        // 设置截图参数(该设置需要截图时才进行设置)
        CreateTranscodingRequest.Thumbnail thumbnail = new CreateTranscodingRequest.Thumbnail();
        //设置截图文件打包方式,此处为tar包形式
        thumbnail.setTar(1);
        //设置截图源文件地址,需确认已对媒体处理服务进行桶授权
        ObsObjInfo thumbOutput = new ObsObjInfo();
        //OBS桶名
        thumbOutput.setBucket("obs-bills");
        //OBS桶所在区域
        thumbOutput.setLocation("cn-north-4");
        //OBS桶下存放路径
        thumbOutput.setObject("output/thumbnail/");
        thumbnail.setThumbOutput(thumbOutput);
        CreateThumbnailRequest.ThumbnailPara thumbnailPara = new CreateThumbnailRequest.ThumbnailPara();
        //采样类型。支持三种采样方式PERCENT、TIME和DOTS(根据时间间隔time,根据视频时长百分比percent,根据时间截图时的时间点数组dots,目前只支持TIME和DOTS两种方式)
        thumbnailPara.setTime(12);
        //设置最大长度
        thumbnailPara.setMaxLength(480);
        //设置纵横比
        thumbnailPara.setAspectRatio(0);
        //设置截图格式,0表示默认,1表示JPG格式
        thumbnailPara.setFormat(1);
        createTranscodingRequest.setThumbnail(thumbnail);

        */
        /*
       //设置转码优先级 6:中优先级(默认为当前优先级);9:高优先级
        createTranscodingRequest.setPriority(6);
        */
      
       /*
       //设置字幕参数
       CreateTranscodingRequest.Subtitle subtitle = new CreateTranscodingRequest.Subtitle();
       //设置字幕类型 0:不输出字幕 ;1:外部字幕文件嵌入视频
       subtitle.setSubtitleType(1);
       //设置字幕文件地址
       ObsObjInfo fileInput = new ObsObjInfo();
       fileInput.setBucket("bucketName");
       fileInput.setObject("objectKey");
       fileInput.setLocation("cn-north-4");
       subtitle.setSubtitleFile(fileInput);
       createTranscodingRequest.setSubtitle(subtitle);
       */

       // 设置加密参数
       CreateTranscodingRequest.Encryption encryption = new CreateTranscodingRequest.Encryption();
       CreateTranscodingRequest.Encryption.Multidrm multidrm = new CreateTranscodingRequest.Encryption.Multidrm();
       //设置content_id唯一标识
       multidrm.setContentId("contentId");
       //定义数据流的类型,取值为DASH或HLS
       multidrm.setStreamingMode("HLS");
       //音频加密开关(0:标识音频不加密;1:标识音频加密;默认0)
       multidrm.setEncryptAudio(1);
       //定义加密方式,取值包括:默认为16420
       multidrm.setEmi(16420);
       multidrm.setDrmList(new String[]{"PLAYREADY"})
       encryption.setMultidrm(multidrm);
       createTranscodingRequest.setEncryption(encryption);
       
       // 设置图像旋转参数
       VideoProcess videoProcess = new VideoProcess();
       // 视频顺时针旋转角度,可取值为0,1,2,3。0表示不旋转,1表示顺时针旋转90度,2表示顺时针旋转180度,3表示顺时针旋转270度.
       videoProcess.setRotate(2);
       createTranscodingRequest.setVideoProcess(videoProcess);

       // 设置画质增强参数
       QualityEnhance qualityEnhance = new QualityEnhance();
       // 针对一般质量、无明显问题的普通片源,通过增强、锐化等技术明显提升主观效果。该处理操作前后,分辨率、帧率等参数不发生变化。
       qualityEnhance.setNormalEnhance(QualityEnhance.NormalEnhanceEnum.NORMAL);
       createTranscodingRequest.setQualityEnhance(qualityEnhance);

       // 设置音量调节参数
       AudioProcess audioProcess = new AudioProcess();
       // 音量调整方式,可取值为auto和dynamic:auto表示自动调整音量。dynamic表示人为调整,需设定音量调整幅值。
       audioProcess.setVolume(AudioProcess.VolumeEnum.DYNAMIC);
       // 音量调整幅值,范围[-15,15],单位:dB (需指定volume为dynamic)。
       audioProcess.setVolumeExpr(15);
       createTranscodingRequest.setAudioProcess(audioProcess);

        //发送媒体处理服务请求
        CreateTranscodingResponse createTranscodingResponse = mpcClient.createTranscodingTask(createTranscodingRequest);
        //返回消息
        System.out.println(new Gson().toJson(createTranscodingResponse));
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问