新建转码任务 - CreateTranscodingTask
功能介绍
新建转码任务可以将视频进行转码,并在转码过程中压制水印、视频截图等。视频转码前需要配置转码模板。
待转码的音视频需要存储在与媒体处理服务同区域的OBS桶中,且该OBS桶已授权。
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
mpc:transcodeTask:create
Write
-
-
-
-
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 否 | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
Authorization | 否 | String | 使用AK/SK方式认证时必选,携带的鉴权信息。 |
X-Project_Id | 否 | String | 使用AK/SK方式认证时必选,携带项目ID信息, 与路径参数中的项目ID相同。 |
X-Sdk-Date | 否 | String | 使用AK/SK方式认证时必选,请求的发生时间。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
input | 否 | ObsObjInfo object | 源文件存储地址,非追加音频等场景,该参数必选。 |
output | 是 | ObsObjInfo object | 输出文件存储地址。 |
trans_template_id | 否 | Array of integers | 转码模板ID,没带av_parameter参数时,必须带该参数,数组,每一路转码输出对应一个转码配置模板ID,最多支持9个模板ID。 多个转码模板中如下参数可变,其他都必须一致: 视频bitrate,height,width。 |
trans_template_list | 否 | Array of TransIdTemplate objects | 转码模板数组 |
av_parameters | 否 | Array of AvParameters objects | 转码参数。 若同时设置“trans_template_id”和此参数,则优先使用此参数进行转码,不带trans_template_id时,该参数必选。 |
additional_manifests | 否 | Array of AdditionalManifests objects | 主索引定制参数。 |
output_filenames | 否 | Array of strings | 输出文件名称,每一路转码输出对应一个名称,需要与转码模板ID数组的顺序对应。
|
user_data | 否 | String | 用户自定义数据,该字段可在查询接口或消息通知中按原内容透传给用户。 |
watermarks | 否 | Array of WatermarkRequest objects | 图片水印参数,数组,最多支持10个成员。 |
thumbnail | 否 | Thumbnail object | 截图信息。 说明: 仅“trans_template_id”对应的转码模板或“av_parameters”中设置的输出分辨率为1920×1080、1280×720、854×480或480×270时,视频转码才会输出对应的截图文件;否则将不输出截图文件。 |
thumbnails | 否 | Array of Thumbnail objects | 多截图任务,数组,最多支持20个成员。 |
image_sprites | 否 | Array of ImageSprite objects | 雪碧图参数,数组,最多支持20个成员。 |
priority | 否 | Integer | 任务优先级,取值如下:
暂时只支持6和9。 |
subtitle | 否 | Subtitle object | 字幕参数。 |
encryption | 否 | Encryption object | 视频加密控制参数。 |
crop | 否 | Crop object | 截取前多少秒做转码。 |
audio_track | 否 | AudioTrack object | 音轨参数。 |
multi_audio | 否 | MultiAudio object | 音频多语言多声道参数。 |
video_process | 否 | VideoProcess object | 视频处理控制参数 |
audio_process | 否 | AudioProcess object | 音频处理控制参数 |
metadata | 否 | Array of FileMetaData objects | metadata设置,默认只支持AIGC |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
template_id | 是 | Integer | 输出视频对应的模板ID |
output | 否 | ObsObjInfo object | 输出路径,不填写时与外层转码输出在一起 说明: hls多路输出时,每路输出路径不同时,index.m3u8将不可用,音视频分离不可用。 |
output_filename | 否 | String | 输出文件名 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
video | 否 | VideoParameters object | 视频参数 |
audio | 否 | Audio object | 音频参数 |
common | 是 | Common object | 公共参数 |
output | 否 | ObsObjInfo object | 输出路径,不填写时与外层转码输出在一起 说明: hls多路输出时,每路输出路径不同时,index.m3u8将不可用,音视频分离不可用。 |
output_filename | 否 | String | 输出文件名 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
output_policy | 否 | String | 输出策略:
取值如下:
|
codec | 否 | Integer | 视频编码格式。 取值如下:
|
crf | 否 | Object | 视频恒定码率控制因子。 取值范围为[0, 51] |
max_bitrate | 否 | Integer | 输出最大码率 取值范围:0或[40,800000]之间的整数。 单位:kbit/s 带crf时使用,参考原片的平均码率进行设置(一般为1.5倍) |
bitrate | 否 | Integer | 输出平均码率。 取值范围:0或[40,50000]之间的整数。 单位:kbit/s 若设置为0,则输出平均码率为自适应值。 |
profile | 否 | Integer | 编码档次 取值如下:
|
level | 否 | Integer | 编码级别 取值如下:
|
preset | 否 | Integer | 编码质量等级。 取值如下:
默认值1。 |
max_iframes_interval | 否 | Integer | I帧最大间隔 取值范围:[2,10]。 默认值:5。 单位:秒。 |
bframes_count | 否 | Integer | 最大B帧间隔。 取值范围:
单位:帧。 |
frame_rate | 否 | Integer | 帧率。 取值范围:0或[5,60],0表示自适应。 单位:帧每秒。 说明: 若设置的帧率不在取值范围内,则自动调整为0,若设置的帧率高于片源帧率,则自动调整为片源帧率。 |
width | 否 | Integer | 视频宽度(单位:像素)
|
height | 否 | Integer | 视频高度(单位:像素)
|
black_cut | 否 | Integer | 黑边剪裁类型
|
stream_name | 否 | String | 流名称 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
output_policy | 否 | String | 输出策略:
取值如下:
|
codec | 否 | Integer | 音频编码格式。 取值如下:
|
sample_rate | 否 | Integer | 音频采样率。 取值如下:
说明: 当编码格式为MP3时,音频采样率取值不为6 |
bitrate | 否 | Integer | 音频码率。 取值范围:0或[8,1000]。 单位:kbit/s。 |
channels | 是 | Integer | 声道数。 取值如下:
当媒体的封装格式是音频格式(MP3)时,声道数不支持设为5.1声道。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
PVC | 否 | Boolean | 是否开启高清低码功能。 取值如下:
(数字0表示关闭,其余正整数,负数都表示true) |
hls_interval | 否 | Integer | HLS分片间隔,仅封装格式“pack_type”取值为1或3时,该参数生效。 取值范围:[2,10]。 单位:秒。 |
dash_interval | 否 | Integer | DASH间隔,仅封装格式“pack_type”取值为2或3时,该参数生效。 取值范围:[2,10]。 单位:秒。 |
pack_type | 是 | Integer | 封装格式。 取值如下:
说明: pack_type设置为5和6时不能设置视频参数,设置为9时不支持多音频,设置为10时不支持H265编码。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
manifest_name_modifier | 否 | String | 定制的索引后缀名 |
selected_outputs | 否 | Array of strings | 选择的流名称 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
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”,则此配置项不能为空。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
dx | 否 | String | 水印图片起点相对输出视频顶点的水平偏移量。 设置方法有如下两种:
示例:输出视频分辨率宽1920,设置“dx”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在水平方向上偏移距离为192。 |
dy | 否 | String | 水印图片起点相对输出视频顶点的垂直偏移量。
示例:输出视频分辨率高1080,设置“dy”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在垂直方向上的偏移距离为108。 |
referpos | 否 | String | 水印的位置。 取值如下:
|
timeline_start | 否 | String | 水印开始时间,与“timeline_duration”配合使用。 取值范围:数字。 单位:秒。 |
timeline_duration | 否 | String | 水印持续时间,与“timeline_start”配合使用。 取值范围:[数字,ToEND]。“ToEND”表示持续到视频结束。 默认值:ToEND。 |
random_time_min | 否 | String | 轮转间隔时间最小值,单位:秒 取值范围:(0,3600000] |
random_time_max | 否 | String | 轮转间隔时间最大值,单位:秒 取值范围:(0,3600000] |
image_process | 否 | String | 图片水印处理方式,type设置为Image时有效。 取值如下:
|
width | 否 | String | 水印图片宽,值有两种形式:
|
height | 否 | String | 水印图片高,值有两种形式:
|
base | 否 | String | 水印叠加母体 取值如下:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
dx | 否 | String | 水印图片起点相对输出视频顶点的水平偏移量。 设置方法有如下两种:
示例:输出视频分辨率宽1920,设置“dx”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在水平方向上偏移距离为192。 |
dy | 否 | String | 水印图片起点相对输出视频顶点的垂直偏移量。
示例:输出视频分辨率高1080,设置“dy”为“0.1”,“referpos”为“TopRight”(右上角),则水印图片右上角到视频右顶点在垂直方向上的偏移距离为108。 |
referpos | 否 | String | 水印的位置。 取值如下:
|
timeline_start | 否 | String | 水印开始时间,与“timeline_duration”配合使用。 取值范围:数字。 单位:秒。 |
timeline_duration | 否 | String | 水印持续时间,与“timeline_start”配合使用。 取值范围:[数字,ToEND]。“ToEND”表示持续到视频结束。 默认值:ToEND。 |
random_time_min | 否 | String | 轮转间隔时间最小值,单位:秒 取值范围:(0,3600000] |
random_time_max | 否 | String | 轮转间隔时间最大值,单位:秒 取值范围:(0,3600000] |
font_name | 否 | String | 字体,当前支持fzyouh |
font_size | 否 | Integer | 字体大小。 取值范围:[4, 120] |
font_color | 否 | String | 字体颜色。 目前颜色支持 black,blue,white,green,red,yellow,brown,gold,pink,orange,purple。 |
base | 否 | String | 水印叠加母体 取值如下:
默认值:input |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
tar | 否 | Integer | 是否压缩抽帧图片生成tar包
|
out | 否 | ObsObjInfo object | 截图输出路径,不填写时与转码输出在一起 |
params | 是 | ThumbnailPara object | 截图参数。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
type | 否 | String | 采样类型。 取值如下:
默认值:"TIME" |
amount | 否 | Integer | 黑点比例大于等于此值认为是黑帧。 |
threshold | 否 | Integer | 像素值小于此值认为是黑点。 |
time | 否 | Integer | 采样截图的时间间隔值。 取值范围[1,100],默认值:12。 单位:秒 |
start_time | 否 | Integer | 采样类型为“TIME”模式的开始时间,和“time”配合使用。 默认值:0。 单位:秒。 说明: start_time超过片源时长,不进行抽帧 |
duration | 否 | Integer | 采样类型为“TIME”模式的持续时间,和“time”、“start_time”配合使用,表示从视频文件的第“start_time”开始,持续时间为“duration”,每间隔“time”生成一张截图。 取值范围:[数字,ToEND]。“ToEND”表示持续到视频结束。 默认值: ToEND。 单位:秒。 说明: “duration”必须大于等0,若设置为0,则截图持续时间从“start_time”到视频结束。 |
dots | 否 | Array of integers | 指定时间截图的时间点数组 例如输入[1,3,5],分别截取视频第1秒、第3秒、第5秒位置的图像帧
|
dots_ms | 否 | Array of integers | 同步截图下,指定时间截图的时间点数组,单位毫秒 例如输入[1000],截取视频第1000毫秒位置的图像帧,仅支持一个时间点 |
output_filename | 否 | String | 截图输出文件名。
|
format | 否 | Integer | 截图文件格式。 取值如下: 1:表示jpg格式 2:表示png格式 仅同步截图支持png格式 |
width | 否 | Integer | 图片宽度 取值范围:
单位:px |
height | 否 | Integer | 图片高度 取值范围:
单位:px |
max_length | 否 | Integer | 截图最长边的尺寸。宽边尺寸按照该尺寸与原始视频像素等比缩放计算。 参考取值范围:[240,3840] 单位:像素 说明: 该参数和width/height选择使用,以width/height优先,若width/height都不等于0,则图片尺寸按width/height得出;反之,则图片尺寸按max_length 得出;若该参数和width/height都未选择,则按源片源宽高输出截图 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
params | 是 | ImageSpritePara object | 雪碧图参数。 |
output | 否 | ObsObjInfo object | 雪碧图输出路径,不填写时与转码输出在一起 |
output_object_name | 否 | String | 截取雪碧图后,雪碧图图片文件的输出文件名,如果不填,则默认为:{inputName}imageSprite{雪碧图id}_{number}.{format}.{雪碧图id}和{number}从0开始递增 |
webvtt_object_name | 否 | String | 截取雪碧图后,Web VTT 文件的输出路径,只能为相对路径。如果不填,则默认为相对路径:{inputName}imageSprite{雪碧图_id}.vtt |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
sample_type | 是 | String | 采样类型,取值:
|
sample_interval | 是 | Integer | 采样间隔。 -当 sample_type 为 PERCENT 时,指定采样间隔的百分比,范围(0,100]。 -当 sample_type 为 TIME 时,指定采样间隔的时间,单位为秒,范围(0,360000]。 |
row_count | 是 | Integer | 雪碧图中小图的行数,行数*列数不得超过 100。 |
column_count | 是 | Integer | 雪碧图中小图的列数,行数*列数不得超过 100。 |
width | 否 | Integer | 雪碧图中小图的宽度(或长边)的最大值,取值范围:0 和 [96, 4096],单位:px。
|
height | 否 | Integer | 雪碧图中小图的高度(或短边)的最大值,取值范围:0 和 [96, 4096],单位:px。
|
resolution_adaptive | 否 | String | 分辨率自适应,可选值:
|
fill_type | 否 | String | 填充方式,当视频流配置宽高参数与原始视频的宽高比不一致时,对转码的处理方式,即为“填充”。可选填充方式:
|
format | 否 | String | 图片格式,取值为 jpg、png。默认为 jpg。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
input | 否 | ObsObjInfo object | 字幕文件地址。 |
inputs | 否 | Array of MulInputFileInfo objects | 多字幕文件地址。 |
subtitle_type | 否 | Integer | 字幕类型。取值如下:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
language | 否 | String | 字幕语言标签。建议采用ISO 639-2编码。 |
input | 否 | ObsObjInfo object | 输入字幕文件地址。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 是 | String | 使用base64编码的内容加密密钥 |
url | 是 | String | 密钥获取服务的地址,用于播放hls分片时解密使用。 |
iv | 否 | String | 初始向量,base64binary,随机数 |
algorithm | 否 | String | 加密算法。
默认值:AES-128-CTR |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
type | 否 | Integer | 音轨选取方式。
|
left | 否 | Integer | 选取左声道所在的音轨编号。 |
right | 否 | Integer | 选取右声道所在的音轨编号。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
tracks_info | 否 | Array of TracksInfo objects | 音轨信息 |
audio_files | 否 | Array of AudioFile objects | 音频文件 |
default_language | 否 | String | 默认语言标签。建议采用ISO 639-2编码。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
bucket | 是 | String | OBS的bucket名称。 |
location | 是 | String | OBS桶所在的区域,且必须与使用的MPC区域保持一致。 |
object | 是 | String | OBS对象路径,遵守OSS Object定义。
在字幕场景下,字幕文件名称中禁止携带特殊符号,否则会导致转码任务失败,如:[
|
file_name | 否 | String | 文件名,文件名长度不能超过180个字符。
在作为输出文件名时:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
hls_init_count | 否 | Integer | 需要单独设置时长的HLS起始分片数量。 取值范围:[0,10],默认值为:0 说明: 与hls_init_interval配合使用,设置前面hls_init_count个HLS分片时长。为0表示不单独配置时长。 |
hls_init_interval | 否 | Integer | 表示前面hls_init_count个HLS分片的时长。 取值范围:[2,10] ,默认值为:5 说明: hls_init_count不为0时,该字段才起作用。 |
hls_storage_type | 否 | String | hls的音视频流存储方式。
|
rotate | 否 | Integer | 视频顺时针旋转角度。
|
adaptation | 否 | String | 长短边自适应控制字段:
|
fill_type | 否 | String | adaptation为NONE时生效:
|
upsample | 否 | Integer | 是否开启上采样,如支持从480P的片源转为720P。 取值如下所示:
|
hls_segment_type | 否 | String | HLS切片类型。 取值如下所示:
不设置默认为ts切片。 |
响应参数
状态码:202
参数 | 参数类型 | 描述 |
|---|---|---|
task_id | Integer | 接受任务后,产生的任务ID。 转码任务ID的值会从1开始,一直增长至2146483647,之后再从1开始循环,不建议使用此ID作为唯一性标识。 |
状态码:403
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码。 |
error_msg | String | 错误描述。 |
请求示例
新建转码任务,可以将视频进行转码。
POST https://{endpoint}/v1/{project_id}/transcodings
{
"input" : {
"bucket" : "example-bucket",
"location" : "region01",
"object" : "example-path/input.mp4"
},
"output" : {
"bucket" : "example-bucket",
"location" : "region01",
"object" : "example-path/output"
},
"trans_template_id" : [ 1002, 1003, 1004, 1005 ],
"priority" : "9",
"subtitle" : {
"subtitle_type" : 1,
"input" : {
"bucket" : "example-bucket",
"location" : "region01",
"object" : "example-subtitle.srt"
}
},
"encryption" : {
"hls_encrypt" : {
"iv" : "******",
"key" : "******",
"url" : "http://{your-keyserver}",
"algorithm" : "AES-128-CBC"
}
},
"thumbnail" : {
"out" : {
"bucket" : "example-bucket",
"location" : "region01",
"object" : "example/path"
},
"tar" : 1,
"params" : {
"time" : 2,
"format" : 1,
"max_length" : 480
}
}
} 响应示例
状态码:202
新建转码任务提交成功。
{
"task_id" : 100211
} 状态码:403
新建转码任务提交失败。
{
"error_code" : "MPC.10202",
"error_msg" : "Invalid request parameter"
} 状态码
状态码 | 描述 |
|---|---|
202 | 新建转码任务提交成功。 |
403 | 新建转码任务提交失败。 |
错误码
请参见错误码。

