新建转码任务
功能介绍
新建转码任务可以将视频进行转码,并在转码过程中压制水印、视频截图等。视频转码前需要配置转码模板。
待转码的音视频需要存储在与媒体处理服务同区域的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。 |
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时,视频转码才会输出对应的截图文件;否则将不输出截图文件。 |
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 |
音频处理控制参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
video |
否 |
VideoParameters object |
视频参数 |
audio |
否 |
Audio object |
音频参数 |
common |
是 |
Common object |
公共参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
output_policy |
否 |
String |
输出策略:
取值如下:
|
codec |
否 |
Integer |
视频编码格式。 取值如下:
|
crf |
否 |
Object |
视频恒定码率控制因子。 取值范围为[0, 51] |
max_bitrate |
否 |
Integer |
输出最大码率 单位: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时,不能设置视频参数。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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。 |
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。 |
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 |
采样类型。 取值如下:
|
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都未选择,则按源片源宽高输出截图 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
文件名
在作为输出文件名时:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
长短边自适应控制字段:
|
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 |
新建转码任务提交失败。 |
错误码
请参见错误码。