新建转码任务
功能介绍
新建转码任务可以将视频进行转码,并在转码过程中压制水印、视频截图等。视频转码前需要配置转码模板。
待转码的音视频需要存储在与媒体处理服务同区域的OBS桶中,且该OBS桶已授权。
调用方法
请参见如何调用API。
URI
POST /v1/{project_id}/transcodings
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID。获取方法请参考获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
音频处理控制参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
输出文件名 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
否 |
Float |
轮转间隔时间最小值,单位:秒 |
random_time_max |
否 |
Float |
轮转间隔时间最大值,单位:秒 |
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 |
否 |
Float |
轮转间隔时间最小值,单位:秒 |
random_time_max |
否 |
Float |
轮转间隔时间最大值,单位:秒 |
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 |
水印叠加母体 取值如下: |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
tar |
否 |
Integer |
是否压缩抽帧图片生成tar包 |
out |
否 |
ObsObjInfo object |
截图输出路径,不填写时与转码输出在一起 |
params |
是 |
ThumbnailPara object |
截图参数。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
否 |
String |
采样类型。 取值如下: |
amount |
否 |
Integer |
黑点比例大于等于此值认为是黑帧。 |
threshold |
否 |
Integer |
像素值小于此值认为是黑点。 |
time |
否 |
Integer |
采样截图的时间间隔值。 默认值: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编码。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
tracks_info |
否 |
Array of TracksInfo objects |
音轨信息 |
input |
否 |
ObsObjInfo object |
输入存储位置 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
channel_layout |
否 |
String |
音频轨的声道layout |
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。 |
状态码: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 |
新建转码任务提交失败。 |
错误码
请参见错误码。