文档首页 > > API参考> 媒资转码接口> 新建转码任务

新建转码任务

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

功能介绍

新建转码任务可以将视频进行转码,并在转码过程中压制水印、内容质检、视频截图等。视频转码前需要配置转码模板。 待转码的音视频需要存储在与媒体处理服务同区域的OBS桶中,且该OBS桶已授权。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1/{project_id}/transcodings

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

input

ObsObjInfo object

源文件存储地址。

output

ObsObjInfo object

输出文件存储地址。

trans_template_id

Array of integers

转码模板ID,数组,每一路转码输出对应一个转码配置模板ID,最多支持9个模板ID。

多个转码模板中如下参数可变,其他都必须一致:

  • 视频bitrate,height,width。

  • 音频bitrate。

output_filenames

Array of strings

输出文件名称,每一路转码输出对应一个名称,需要与转码模板ID数组的顺序对应。

  • 若设置该参数,表示输出文件按该参数命名。

  • 若不设置该参数,表示输出文件按默认方式命名。

watermarks

Array of WatermarkRequest objects

图片水印参数,数组,最多支持20个成员。

thumbnail

Thumbnail object

截图信息。

说明:

仅“trans_template_id”对应的转码模板或“av_parameters”中设置的输出分辨率为表 标准分辨率中的分辨率时,视频转码才会输出对应的截图文件;否则将不输出截图文件。

priority

Integer

任务优先级,取值如下:

  • 9代表高优先级。

  • 6代表中优先级,默认为6。

暂时只支持6和9。

audit

Audit object

内容质检参数

subtitle

Subtitle object

字幕参数。

encryption

Encryption object

视频加密控制参数。

crop

Crop object

截取前多少秒做转码,默认10秒。

audio_track

AudioTrack object

音轨参数。

multi_audio

MultiAudio object

音频多语言多声道参数。

video_process

VideoProcess object

视频处理控制参数

audio_process

AudioProcess object

音频处理控制参数

system_process

SystemProcess object

系统处理控制参数。

av_parameters

Array of AvParameters objects

转码参数。

若同时设置“trans_template_id”和此参数,则优先使用此参数进行转码。

表4 ObsObjInfo

参数

是否必选

参数类型

描述

bucket

String

OBS的bucket名称。

location

String

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

object

String

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

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

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

file_name

String

文件名,仅用于输出。

  • 当指定了此参数时,输出的对象名为object/file_name 。

  • 当不指定此参数时,输出的对象名为object/xxx,其中xxx由MPC指定。

表5 WatermarkRequest

参数

是否必选

参数类型

描述

input

ObsObjInfo object

源文件地址。

template_id

String

水印模板。可通过新建水印模板接口创建水印模板。

text_context

String

文字水印内容,内容需做Base64编码,若类型为文字水印 (type字段为Text),则此配置项不能为空

示例:若想添加文字水印“测试文字水印”,那么Content的值为:5rWL6K+V5paH5a2X5rC05Y2w

image_watermark

ImageWatermark object

图片水印参数,用于覆盖图片水印模板中的同名参数。

text_watermark

TextWatermark object

文字水印配置,若设置“text_context”,则此配置项不能为空。

表6 ImageWatermark

参数

是否必选

参数类型

描述

dx

String

水印图片起点相对输出视频顶点的水平偏移量。

设置方法有如下两种:

  • 整数型:表示图片起点水平偏移视频顶点的像素值,单位px。取值范围:[0,4096]

  • 小数型:表示图片起点相对于视频分辨率宽的水平偏移比率。取值范围:(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

示例:输出视频分辨率宽1920,设置“dx”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在水平方向上偏移距离为192。

dy

String

水印图片起点相对输出视频顶点的垂直偏移量。

  • 设置方法有如下两种:整数型:表示图片起点垂直偏移视频顶点的像素值,单位px。取值范围:[0,4096]

  • 小数型:表示图片起点相对于视频分辨率高的垂直偏移比率。取值范围:(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

示例:输出视频分辨率高1080,设置“dy”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在垂直方向上的偏移距离为108。

referpos

String

水印的位置。

取值如下:

  • TopRight:右上角。

  • TopLeft:左上角。

  • BottomRight:右下角。

  • BottomLeft:左下角。

timeline_start

String

水印开始时间,与“timeline_duration”配合使用。

取值范围:数字。

单位:秒。

timeline_duration

String

水印持续时间,与“timeline_start”配合使用。

取值范围:[数字,ToEND]。“ToEND”表示持续到视频结束。

默认值:ToEND。

image_process

String

图片水印处理方式,type设置为Image时有效。

取值如下:

  • Original:只做简单缩放,不做其他处理。

  • Grayed:彩色图片变灰。

  • Transparent:透明化。

width

String

水印图片宽,值有两种形式:

  • 整数型代水印图片宽的像素值,范围[8,4096],单位px。

  • 小数型代表相对输出视频分辨率宽的比率,范围(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

height

String

水印图片高,值有两种形式:

  • 整数型代表水印图片高的像素值,范围[8,4096],单位px。

  • 小数型代表相对输出视频分辨率高的比率,范围(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

base

String

水印叠加母体

取值如下:

  • input :水印叠加在输入片源上,转码输出后实际大小按图像等比例缩放

  • output :水印叠加在转码输出文件上。

表7 TextWatermark

参数

是否必选

参数类型

描述

dx

String

水印图片起点相对输出视频顶点的水平偏移量。

设置方法有如下两种:

  • 整数型:表示图片起点水平偏移视频顶点的像素值,单位px。取值范围:[0,4096]

  • 小数型:表示图片起点相对于视频分辨率宽的水平偏移比率。取值范围:(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

示例:输出视频分辨率宽1920,设置“dx”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在水平方向上偏移距离为192。

dy

String

水印图片起点相对输出视频顶点的垂直偏移量。

  • 设置方法有如下两种:整数型:表示图片起点垂直偏移视频顶点的像素值,单位px。取值范围:[0,4096]

  • 小数型:表示图片起点相对于视频分辨率高的垂直偏移比率。取值范围:(0,1),支持4位小数,如0.9999,超出部分系统自动丢弃。

示例:输出视频分辨率高1080,设置“dy”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在垂直方向上的偏移距离为108。

referpos

String

水印的位置。

取值如下:

  • TopRight:右上角。

  • TopLeft:左上角。

  • BottomRight:右下角。

  • BottomLeft:左下角。

timeline_start

String

水印开始时间,与“timeline_duration”配合使用。

取值范围:数字。

单位:秒。

timeline_duration

String

水印持续时间,与“timeline_start”配合使用。

取值范围:[数字,ToEND]。“ToEND”表示持续到视频结束。

默认值:ToEND。

font_name

String

字体,当前支持fzyouh、msyh

font_size

Integer

字体大小。

取值范围:[4, 120]

font_color

String

字体颜色。 目前颜色支持 black,blue,white,green,red,yellow,brown,gold,pink,orange,purple。

base

String

水印叠加母体 取值如下:

  • input:水印叠加在输入片源上,转码输出后实际大小按图像等比例缩放

  • output:水印叠加在转码输出文件上。

表8 Thumbnail

参数

是否必选

参数类型

描述

tar

Integer

是否压缩抽帧图片生成tar包

  • 0:表示压缩

  • 1:表示不压缩

out

ObsObjInfo object

截图输出路径,不填写时与转码输出在一起

params

ThumbnailPara object

截图参数。

表9 ThumbnailPara

参数

是否必选

参数类型

描述

type

String

采样类型。支持三种采样方式,目前只支持time,dots两种方式。

percent

Integer

根据视频时长百分比间隔采样时的百分比值。

time

Integer

根据时间间隔采样时的时间间隔值。

start_time

Integer

TIME模式的开始时间,和time配合使用。

单位:秒。

duration

Integer

TIME模式的持续时间,和time、start_time配合使用。

单位:秒。

dots

Array of integers

指定时间截图时的时间点数组。

output_filename

String

截图输出文件名。

  • 如果只抽一张图(即:按DOTS方式,指定1个时间点)则按该指定文件名输出图片。

  • 如果抽多张图(即:按DOTS方式指定多个时间点或按TIME间隔截图)则输出图片名在该指定文件名基础上在增加时间点(示例:output_filename_10.jpg)。

  • 如果指定了压缩抽帧图片生成tar包,则tar包按该指定文件名输出。

format

Integer

截图文件格式。

取值如下:

1:表示jpg格式

aspect_ratio

Integer

纵横比。

width

Integer

图片宽度

取值范围:(96,3840]

单位:px

height

Integer

图片高度

取值范围:(96,2160]

单位:px

max_length

Integer

截图最长边的尺寸。宽边尺寸按照该尺寸与原始视频像素等比缩放计算。

取值范围:[240,3840]

单位:px

表10 Audit

参数

是否必选

参数类型

描述

position

Integer

字幕类型

index

Integer

字幕类型

表11 Subtitle

参数

是否必选

参数类型

描述

input

ObsObjInfo object

字幕文件地址。

inputs

Array of MulInputFileInfo objects

多字幕文件地址。

subtitle_type

Integer

字幕类型

表12 MulInputFileInfo

参数

是否必选

参数类型

描述

language

String

语言标签。

input

ObsObjInfo object

输入字幕文件地址。

表13 Encryption

参数

是否必选

参数类型

描述

hls_encrypt

HlsEncrypt object

视频加密控制参数。

表14 HlsEncrypt

参数

是否必选

参数类型

描述

key

String

内容加密秘钥

url

String

秘钥获取服务的地址

iv

String

初始向量,base64binary,随机数

algorithm

String

加密算法。

  • AES-128-CTR

  • AES-128-CBC

  • SM4CBC

默认值:AES-128-CTR

表15 Crop

参数

是否必选

参数类型

描述

duration

Integer

截取的视频时长。

单位:秒

从0秒开始算起

表16 AudioTrack

参数

是否必选

参数类型

描述

type

Integer

音轨选取方式。

  • 0:默认选取

  • 1:手动选择

left

Integer

选取左声道所在的音轨编号。

right

Integer

选取右声道所在的音轨编号。

表17 MultiAudio

参数

是否必选

参数类型

描述

tracks_info

Array of TracksInfo objects

音轨信息

audio_files

Array of AudioFile objects

音频文件

default_language

String

默认语言

表18 AudioFile

参数

是否必选

参数类型

描述

tracks_info

Array of TracksInfo objects

音轨信息

input

ObsObjInfo object

输入存储位置

表19 TracksInfo

参数

是否必选

参数类型

描述

channel_layout

String

音频轨的声道layout

language

String

音频轨对应语言描述

表20 VideoProcess

参数

是否必选

参数类型

描述

rotate

Integer

视频顺时针旋转角度。

  • 0:表示不旋转

  • 1:表示顺时针旋转90度

  • 2:表示顺时针旋转180度

  • 3:表示顺时针旋转270度

adaptation

String

长短边自适应控制字段:

  • SHORT:表示短边自适应

  • LONG:表示长边自适应

  • NONE:表示不自适应

表21 AudioProcess

参数

是否必选

参数类型

描述

volume

String

音量调整方式:

  • auto:表示自动调整音量。

  • dynamic:表示人为调整,需设定音量调整幅值。

volume_expr

Integer

音量调整幅值,需指定volume为dynamic。

取值范围:[-15,15]

单位:dB

表22 SystemProcess

参数

是否必选

参数类型

描述

hls_index

ObsObjInfo object

当前任务需合并信息的m3u8文件。

dash_index

ObsObjInfo object

当前任务需合并信息的mpd文件。

表23 AvParameters

参数

是否必选

参数类型

描述

video

VideoParameters object

视频参数

audio

Audio object

音频参数

common

Common object

公共参数

表24 VideoParameters

参数

是否必选

参数类型

描述

output_policy

String

输出策略。

取值如下:

  • discard

  • transcode

说明:
  • 当视频参数中的“output_policy”为"discard",且音频参数中的“output_policy”为“transcode”时,表示只输出音频。

  • 当视频参数中的“output_policy”为"transcode",且音频参数中的“output_policy”为“discard”时,表示只输出视频。

  • 同时为"discard"时不合法。

  • 同时为“transcode”时,表示输出音视频。

codec

Integer

视频编码格式。

取值如下:

  • 1:VIDEO_CODEC_H264

  • 2:VIDEO_CODEC_H265

  • 3:VIDEO_CODEC_AVS2

bitrate

Integer

输出平均码率(单位:Kbps)

profile

Integer

编码档次

取值如下:

  • 1:VIDEO_PROFILE_H264_BASE

  • 2:VIDEO_PROFILE_H264_MAIN

  • 3:VIDEO_PROFILE_H264_HIGH

  • 4:VIDEO_PROFILE_H265_MAIN

  • 5:VIDEO_PROFILE_AVS2_MAIN

level

Integer

编码级别

取值如下:

  • 1:VIDEO_LEVEL_1_0

  • 2:VIDEO_LEVEL_1_1

  • 3:VIDEO_LEVEL_1_2

  • 4:VIDEO_LEVEL_1_3

  • 5:VIDEO_LEVEL_2_0

  • 6:VIDEO_LEVEL_2_1

  • 7:VIDEO_LEVEL_2_2

  • 8:VIDEO_LEVEL_3_0

  • 9:VIDEO_LEVEL_3_1

  • 1:VIDEO_LEVEL_3_2

  • 1:VIDEO_LEVEL_4_0

  • 1:VIDEO_LEVEL_4_1

  • 1:VIDEO_LEVEL_4_2

  • 1:VIDEO_LEVEL_5_0

  • 1:VIDEO_LEVEL_5_1

  • 1:VIDEO_LEVEL_x_x

preset

Integer

编码质量等级

取值如下:

  • 1:VIDEO_PRESET_HSPEED2 (只用于h.265, h.265 default)

  • 2:VIDEO_PRESET_HSPEED (只用于h.265)

  • 3:VIDEO_PRESET_NORMAL (h264/h.265可用,h.264 default)

  • 4:VIDEO_PRESET_xxxx (AVS2 default)

ref_frames_count

Integer

最大参考帧数。

  • H264:范围[1,8],缺省值4

  • H265:固定值4

  • AVS2:范围[1,4],缺省值3

单位:帧

max_iframes_interval

Integer

I帧最大间隔

单位:秒

bframes_count

Integer

最大B帧间隔。

  • H264:范围[0,8],缺省值4

  • H265:固定值7

  • AVS2:范围[1,4],缺省值3

单位:帧

frame_rate

Integer

帧率,单位:帧每秒。

取值范围:0或[5,60],0表示自适应。

sync_timestamp

Boolean

降帧率时是否同步调整时间戳 在配置降帧率场景下有效。

取值范围:

  • false:不调整时间戳

  • true:根据 frame_rate 配置的帧率,重新计算时间戳

width

Integer

视频宽度(单位:像素)

  • H264:范围[32,4096],必须为2的倍数

  • H265:范围[320,4096],必须是4的倍数

  • AVS2:范围[320,4096],必须是4的倍数

height

Integer

视频高度(单位:像素)

  • H264:范围[32,2880],必须为2的倍数

  • H265:范围[240,2880] ,必须是4的倍数

  • AVS2:范围[0,2880],必须是4的倍数

aspect_ratio

Integer

纵横比(保留,图像缩放方式)

  • 0:自适应(保持原有宽高比)

  • 1:补黑边(16:9)

  • 2:裁黑边(18:9)

black_cut

Integer

黑边剪裁类型

  • 0:不开启黑边剪裁

  • 1:开启黑边剪裁,低复杂度算法,针对长视频(>5分钟)

  • 2:开启黑边剪裁,高复杂度算法,针对短视频(<=5分钟)

表25 Audio

参数

是否必选

参数类型

描述

output_policy

String

输出策略。

取值如下:

  • discard

  • transcode

说明:
  • 当视频参数中的“output_policy”为"discard",且音频参数中的“output_policy”为“transcode”时,表示只输出音频。

  • 当视频参数中的“output_policy”为"transcode",且音频参数中的“output_policy”为“discard”时,表示只输出视频。

  • 同时为"discard"时不合法。

  • 同时为“transcode”时,表示输出音视频。

codec

Integer

音频编码格式。

取值如下:

  • 1:AAC格式。

  • 2:HEAAC1格式 。

  • 3:HEAAC2格式。

  • 4:MP3格式 。

sample_rate

Integer

音频采样率。

取值如下:

  • 1:AUDIO_SAMPLE_AUTO

  • 2:AUDIO_SAMPLE_22050(22050Hz)

  • 3:AUDIO_SAMPLE_32000(32000Hz)

  • 4:AUDIO_SAMPLE_44100(44100Hz)

  • 5:AUDIO_SAMPLE_48000(48000Hz)

  • 6:AUDIO_SAMPLE_96000(96000Hz)

bitrate

Integer

音频码率。

取值范围:0或[8,1000]。

单位:kbit/s。

channels

Integer

声道数。

取值如下:

  • 1:AUDIO_CHANNELS_1

  • 2:AUDIO_CHANNELS_2

  • 6:AUDIO_CHANNELS_5_1

表26 Common

参数

是否必选

参数类型

描述

PVC

Boolean

是否开启高清低码功能。

取值如下:

  • false:关闭。

  • true:开启。

hls_interval

Integer

HLS分片间隔,仅封装类型“pack_type”取值为1或3时,该参数生效。

取值范围:[2,10]。

单位:秒。

dash_interval

Integer

DASH间隔,仅封装类型“pack_type”取值为2或3时,该参数生效。

取值范围:[2,10]。

单位:秒。

pack_type

Integer

封装类型。

取值如下:

  • 1:HLS

  • 2:DASH

  • 3:HLS+DASH

  • 4:MP4

  • 5:MP3

  • 6:ADTS

说明:

pack_type设置为5和6时,不能设置视频参数。

响应参数

状态码为 202 时:

表27 响应Body参数

参数

参数类型

描述

task_id

Integer

任务ID。 如果返回值为200 OK,为接受任务后产生的任务ID。

状态码为 403 时:

表28 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

请求示例

```
POST https://mts.cn-north-1.myhuaweicloud.com/v1/{project_id}/transcodings
{
  "input": {
        "bucket": "example-bucket",
        "location": "cn-north-1",
        "object": "/VOD/input/sample.MP4"
        },
  "output": {
        "bucket": "example-bucket",
        "location": "cn-north-1",
        "object": "/VOD/output/"
      },
   "trans_template_id": [1002, 1003, 1004, 1005],
   "priority": "9",
   "audit": {
        "position": 2,
        "index": 2
    },
   "subtitle": {
        "subtitle_type": 1,
        "input": {
                "bucket": "bucket",
                "location": "cn-north-1",
                "object": "subtitle.srt"
          }
       },
    "encryption": {
       "multidrm": {
          "content_id": "123456789",
          "streaming_mode": "HLS ",
          "encrypt_audio": 0,
          "emi": 16420,
          "drm_list": ["PLAYREADY"]
       }
     },
    "thumbnail": {
     "out": {
        "bucket": "example-bucket",
        "location": "cn-north-1",
        "object": "/VOD/output/"
      },
    "tar": 1,
     "params": {
        "time": 2,
        "format": 1,
        "aspect_ratio": 1,
        "max_length": 480
    }
    }
}
```

响应示例

状态码为 202 时:

{
  "task_id" : 0
}

状态码为 403 时:

{
  "error_code" : "string",
  "error_msg" : "string"
}

状态码

状态码

描述

202

新建转码任务提交成功。

403

新建转码任务提交失败。

错误码

请参见错误码

分享:

    相关文档

    相关产品

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

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

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

字符长度不能超过200

提交反馈 取消

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

智能客服提问云社区提问