创建任务接口(CreateTask)

最近更新时间:2020-10-27 20:49:41

接口描述

根据已设置的模板创建媒体转码任务

请求方式:

POST

请求参数:

参数名 类型 是否必须 描述
Preset string 模板名称
SrcInfo json array 参考下面srcInfo表格
DstBucket string 输出目标Bucket
DstDir string 截图上传目录,avsample类型专属参数,对其他任务类型不起作用
DstObjectKey string 目录及文件名,例mydirectory/myfilename.mp4
DstAcl string 转码视频访问权限设置,参数:private、public-read 默认:public-read
IsTop int 是否置顶 1-是 0-否
CbMethod string 回调用户请求方法
CbUrl string 回调用户地址
ExtParam string 附加参数。注意,此值是一个字符串,是由json序列化而成。下方有示例。

srcInfo参数说明:

参数名 类型 是否必须 描述
path string 源文件在ks3的相对路径
index int 多文件拼接场景使用,注意第一个文件序号为 0 ,填1导致转码失败
type string 源文件类型(默认为video,方便日后扩展)

ExtParam 参数说明

用来在创建任务时传递不适用于放入模板里的字段,每种任务类型,extParam内容略有不同,如下:

avtrans


"ExtParam":"{\"Callback\":{\"progress_cburl\":\"xxx\", \"progress_cbmethod\":\"xxx\", \"progress_interval\":2}, \"ss\":\"xxx\", \"duration\":\"xxxx\",\"segment_filename\":\"xxxx\",\"vol_percent\":100,\"vol_dB\":10,\"mulHlsRate\":1,\"masterSrcIndex\":0,\"passParams\":{\"max_muxing_queue_size\":\"1000000\"}"

avsnapshot


"ExtParam":"{\"ss\":\"xxx\"}"

avsample


"ExtParam":"{\"ss\":\"xxx\", \"duration\":\"xxxx\", \"pattern\":\"xxxx\"}"

avinfo


"ExtParam":"" //avinfo暂时没有ExtParam,所以可以选择不传,或传空字符串

各个参数代表意义:

字段 类型 说明 是否必填
ss string 指定转码、截图的开始时间点 单位:s
duration string 指定转码、截图持续时间长度 单位:s
segment_filename string 切片文件的名字规则,格式如右 xxxx-%03d.ts,%03d表示占位宽度为3,从000开始增长
segfile_acl string private、public-read 默认:public-read
pattern string 指定avsample各张截图名字格式,如 xxx-%05d.jpg。含义同上。如果不设,会默认用"snapshot-%5d"
masterSrcIndex int 拼接时才需要设置,表示拼接时主文件序号,序号和SrcInfo里的index对应;其作用为指定转码时以哪个源文件作为决策依据;默认为0,即第一个源文件。
vol_percent int 根据百分比调整音量大小,负值为减小,正值为增加。取值范围:-99至700 单位:%
maxAnalyeDuration int 针对参数不全的视频,设置最大分析时长获取参数信息 默认:300s 单位:s
Callback string 回调参数集
progress_cbmethod string 转码进度回调用户请求方法,默认POST,当前只支持 POST,用户不需要设置
progress_cburl string 转码进度回调用户地址
progress_interval string 指定转码进度上报时间间隔,单位:min 默认5分钟
timeout int 超时时间 单位:s
interval int 重试间隔时间 单位:s
retrytimes int 重试次数
speedlimit int 限速参数集,包括uploadSpeedLimit和downloadSpeedLimit
uploadSpeedLimit int 上传限速 取值范围:0-49 单位:MB/s
downloadSpeedLimit int 下载限速 只对copy任务起作用 取值范围:0-49 单位:MB/s
op int 图片识别参数:0x1: 鉴黄; 0x2:反暴恐; 0x4:多人检测; 0x3:鉴黄+暴恐; 0x5:鉴黄+多人检测; 0x6:反暴恐+多人检测 0x7:鉴黄+暴恐+多人检测
recogstopthreshold int 图片识别阈值,表示对视频最大识别张数,不设表示无限制。
recogtimeoutthreshold int 图片识别时间阈值,过期后不再识别。
srcheader map 访问视频源需要设置http header
dstheader map 上传到ks3需要设置header
265qua string 265同画质转码必填参数,可选值 "output264":被参照的264转码;"output265":同画质的265转码。
subtitles array 字幕参数集,目前只支持添加一个字幕文件,type:jsonarray 如下:
subtitlesUrl string subtitlesUrl : 字幕存在在ks3内网地址,支持格式:ass/srt 如:http://ks3-cn-beijing-internal.ksyun.com/xxx/xxx.ass
use_timeplate int 按照模板切片(dash转码时有效) 0-关闭,1-开启,默认: 1
use_timeline int 设置切片模板为时间模板(dash转码时有效) 0-关闭 1-开启,默认: 1
init_seg_name string 设置切片初始命名模板前缀(dash转码时有效), 注意不要包含特殊字符, 如不设置default= init-stream$RepresentationID$.m4s, 如果设置前缀为test, 那么初始模板全名应为test-0.m4s 和 test-1.m4s
mulHlsRate int 在模板配置mulrate=1情况下有效,需要输出hls多码率文件 0-关闭 1-开启
mulHlsFileName string 在mulHlsRate=1情况下,hls多码率文件名,路径与mpd文件一致,若不设置该参数则按照mpd文件名定义,如xxx.m3u8
media_seg_name string 设置切片文件名模板前缀(dash转码时有效), 注意不要包含特殊字符, 如不设置default= chunk-stream$RepresentationID$-$Number%05d$.m4s, 如果前缀为media, 那么切片文件名模板全名为media-0-00001.m4s 和 media-1-00001.m4s等
passparams map 用以兼容音视频时间戳间隔过大导致转码失败的问题。最大值1000000,单位毫秒。

其中ss与duration支持三种时间格式,选任一即可:


"55"            : 55 seconds

"12:03:45"      : 12 hours, 03 minutes and 45 seconds

"23.189"        : 23.189 seconds

subtitles参数说明:

{"ExtParam":"{\"subtitles\":[{\"subtitlesUrl\":\"http://ks3-cn-beijing-internal.ksyun.com/xxx/xxx.ass\"}]}"}

返回参数

参数名 类型 是否必须 描述
ErrNum int 错误码。0:成功;非0:失败
ErrMsg string 错误描述
TaskID string 任务ID

请求示例


POST /?Action=CreateTask

&Version=2017-01-01

&X-Amz-Algorithm=AWS4-HMAC-SHA256

&X-Amz-Date=20170519T081513Z

&X-Amz-Credential=xxxx

&X-Amz-SignedHeaders=xxxxx

&X-Amz-Signature=xxxxx HTTP/1.1

Host: kvs.cn-beijing-6.api.ksyun.com

Accept: application/json

{

    "Preset": "mypreset",

    "Pipeline":"xxxx",

    "SrcInfo": [

        {

            "path": "/mysrcbucket/myobject/mykey.mp4",

            "type": "video",

            "index": 0

        }

    ],

    "DstBucket": "mydstbucket",

    "DstObjectKey": "myobject/mykey.mp4",

    "DstDir": "",

    "DstAcl": "public-read",

    "CbMethod": "POST",

    "CbUrl": "xxxxx",

    "ExtParam": "{}"

}

返回示例


HTTP/1.1 200 OK

Server: ksyun-open-platform

Date: Fri, 12 May 2017 08:01:06 GMT

Content-Type: application/json;charset=UTF-8

Transfer-Encoding: chunked

{

    "TaskID":"40d309d3b2bf373cd3f08e5b5e1bddf720160816",

    "ErrNum":0,

    "ErrMsg":"success"

}

模板组合

拼接功能

音视频拼接功能需要设置多个源文件为前提(创建任务时指定),且存在以下限制:

  • 不转码拼接,速度快,但限制也多(暂不提供):

    不同编码方案的音频,比如libmp3lame,libfaac,音频不能拼接;

    视频拼接,编码方案相同,分辨率不同,码率相同,帧率相同,可以拼接成功,但播放器不支持;

    视频拼接,编码方案相同,分辨率相同,码率不同,帧率相同,拼接成功之后码率取平均值;

    视频拼接,编码方案相同,分辨率相同,码率相同,帧率不同,拼接成功,但播放器不支持;

    视频拼接,编码方案不同,分辨率不同,码率相同,帧率相同,有错误提示"Could not concat between 1280x720and 1920x1080";

  • 转码拼接,用avtrans:

    视频间的音视频轨道数不同,拼接失败;

    纯音频拼接,拼接失败;

    目前支持纯视频拼接和A,V轨道都为1的音视频拼接;

金山云,开启您的云计算之旅

免费注册