POST 回调接口
视频云提供HTTP POST的回调Body如下:
字段名 |
类型 |
是否必有 |
描述 |
TaskID |
string |
是 |
任务ID |
Status |
int |
是 |
任务状态:3为成功,4为失败 |
Type |
string |
是 |
任务类型,与创建任务时使用的模板类型一致 |
Details |
json object |
是 |
更详细的信息 |
字段名 |
类型 |
是否必有 |
描述 |
errnum |
int |
是 |
错误码,0:成功;非0:失败 |
errmsg |
string |
是 |
描述本次请求错误的原因 |
bucket |
string |
是 |
输出目标文件的Bucket |
snapshotNum |
int |
否 |
截图的个数,截图任务有效 |
status |
string |
否 |
任务当前所处的状态:transcoding、uploading。 |
progress |
int |
否 |
任务当前Status下的进度百分比。仅适用于长视频,且未设置时默认为0 |
items |
json object |
是 |
回调中用户定制的输出文件信息等。 |
备注:status、progress只有在用户在创建任务时,设置了定时回调进度信息才会有效。
字段名 |
类型 |
是否必有 |
描述 |
dstpath |
string |
是 |
输出文件在ks3的相对路径 |
metainfo |
string |
否 |
avinfo任务的回调字段,源文件信息。 string类型,string内部是json串 |
outMediainfo |
string |
否 |
avtrans任务的回调字段,输出视频的信息。string类型,string内部是json串 |
segmentlisttype |
string |
否 |
avtrans任务的字段,切片文件列表的类型,不为空“”,表示为切片任务,否则为普通转码任务,默认为空。 |
segmentsinfo |
string |
否 |
当任务是切片任务时(非HLS切片),每个切片的文件信息。string类型,string内部是json串,数组形式 |
thumnailsinfo |
string |
否 |
生成雪碧图时,每张雪碧图的文件信息。string类型,string内部是json串,数组形式 |
字段名 |
类型 |
是否必有 |
描述 |
streams |
json array |
是 |
流信息列表 |
format |
json object |
是 |
文件信息 |
streams部分:
字段名 |
类型 |
是否必有 |
描述 |
index |
int |
是 |
流索引值 |
codec_name |
string |
是 |
编码器名称 |
codec_long_name |
string |
是 |
编码器全称 |
codec_type |
string |
是 |
流类型,video/audio/data/subtitle等 |
codec_time_base |
string |
否 |
编码器的每帧时长,时间戳计算基础单位,分数表示 |
codec_tag_string |
string |
否 |
编码器的标签名 |
codec_tag |
string |
否 |
编码器标签的二进制代号 |
time_base |
string |
是 |
每帧时长,时间戳计算基础单位,分数表示 |
start_time |
string |
是 |
首帧时间,单位:秒 |
duration |
string |
否 |
该路流时长,单位:秒 |
duration_ts |
int |
否 |
该路流时长,以time_base为单位 |
bit_rate |
string |
是 |
该路流平均码率 |
max_bit_rate |
string |
否 |
该路流最大码率 |
nb_frames |
string |
否 |
音视频帧数 |
width |
int |
是 |
视频帧的高,文件必须有视频流 |
height |
int |
是 |
视频帧的宽,文件必须有音频流 |
coded_width |
int |
否 |
编码器对齐的帧宽 |
coded_height |
int |
否 |
编码器对齐的帧高 |
has_b_frames |
int |
否 |
包含B帧信息 |
sample_aspect_ratio |
string |
否 |
图像采样率 |
display_aspect_ratio |
string |
否 |
图像显示比例 |
pix_fmt |
string |
是 |
帧的图像色彩格式 |
profile |
string |
否 |
编码的profile |
level |
int |
否 |
编码的level |
refs |
int |
否 |
B和P帧向前预测参考的帧数 |
is_avc |
string |
否 |
封装格式是否是avc 1代表avc 0表示annexb格式 |
rotate |
string |
否 |
输出为转码后文件的rotate,与源文件无关,一般系统会自动旋转并删除rotate防止终端播放二次旋转 |
sample_fmt |
string |
是 |
音频采样格式 |
sample_rate |
string |
是 |
音频采样率 |
channels |
int |
是 |
音频声道数,对于音轨数>2的文件,可能该值不准 |
channel_layout |
string |
否 |
声道设计,是指的单声道,双声道,立体声 |
format部分:
字段名 |
类型 |
是否必有 |
描述 |
nb_streams |
int |
是 |
文件包含的流个数 |
format_name |
string |
是 |
文件封装格式 |
format_long_name |
string |
是 |
文件封装格式全称 |
duration |
string |
是 |
文件总时长,单位:秒 |
size |
int |
是 |
文件大小,单位:bytes |
bit_rate |
string |
是 |
文件平均码率,单位bps |
字段名 |
类型 |
是否必有 |
描述 |
outMediainfo |
string |
是 |
视频信息 |
metadata |
json object |
是 |
视频metadata |
streams |
json array |
是 |
视频流信息列表 |
format |
json object |
是 |
视频文件信息 |
metadata部分
字段名 |
类型 |
是否必需 |
描述 |
rotate |
string |
否 |
旋转信息 |
streams部分
字段名 |
类型 |
是否必需 |
描述 |
index |
int |
是 |
序号 |
codec_type |
string |
是 |
流类型 |
codec_name |
string |
是 |
编码格式 |
bit_rate |
int |
是 |
码率,单位bps |
width |
int |
否 |
宽 |
height |
int |
否 |
高 |
r_frame_rate |
string |
否 |
帧率 |
channels |
int |
否 |
声道数 |
sample_rate |
int |
否 |
音频采样率 |
format部分
字段名 |
类型 |
是否必需 |
描述 |
duration |
string |
是 |
文件时长,单位秒 |
format_name |
string |
是 |
文件容器格式 |
size |
int |
是 |
文件大小,单位字节 |
bit_rate |
string |
是 |
文件平均码率,单位bps |
字段名 |
类型 |
是否必需 |
描述 |
fileindex |
int |
是 |
切片文件的顺序,从0开始 |
filename |
string |
是 |
切片文件的名字 |
duration |
string |
是 |
每个切片的实际时长,字符串内用小数表示,单位为秒,如"10.000",表示10s |
filesize |
int |
是 |
文件大小,单位字节 |
字段名 |
类型 |
是否必需 |
描述 |
fileindex |
int |
是 |
雪碧图文件的顺序,从0开始 |
thumbnailpath |
string |
是 |
雪碧图在ks3中的存路路径,不包括bucket信息 |
filesize |
int |
是 |
文件大小,单位字节 |
POST回调接口的Body的格式示例:
注:offline老用户回调内容格式,json一级参数没有驼峰
{
//任务id type:string
"taskid": "92e3745751aee5662f9f06ff3f03076920160914",
//处理中:2 成功:3 失败: 4 type:int
"status": 2,
//任务类型:与创建请求的任务类型一致
"type": "avtrans",
//视频云媒体转码返回信息
"details": {
...
}
}
{
//任务id type:string
"TaskID": "92e3745751aee5662f9f06ff3f03076920160914",
//处理中:2 成功:3 失败: 4 type:int
"Status": 2,
//任务类型:与创建请求的任务类型一致
"Type": "avtrans",
//视频云媒体转码返回信息
"Details": {
//转码处理状态 transcoding 转码中,uploading 上传中 type:string
"status": "transcoding",
//转码进度百分比 type:int
"progress": 5
}
}
- avtrans任务中segment切片任务(非HLS)回调内容格式示例
{
//任务id type:string
"TaskID": "92e3745751aee5662f9f06ff3f03076920160914",
//处理中:2 成功:3 失败: 4 type:int
"Status": 3,
//任务类型:与创建请求的任务类型一致
"Type": "avtrans",
//视频云媒体转码返回信息
"Details": {
//成功:0 失败:其他 type:int
"errnum": 0,
//bucket地址 type:string
"bucket": "wangshuai9",
"items": [
{
//文件存储地址 type:string
"dstpath": "m3u8/test/filelist.m3u8"
//输出文件视频信息
"segmenglisttype":"m3u8",
"segmentsinfo":"[
{
"fileindex":0,
"filename":"segmentfile-000.mp4",
"duration":"10.0000",
"filesize":67778
},
{
"fileindex":1,
"filename":"segmentfile-001.mp4",
"duration":"11.0000",
"filesize":76578
},
{
"fileindex":2,
"filename":"segmentfile-002.mp4",
"duration":"10.0000",
"filesize":54776
},
{
"fileindex":3,
"filename":"segmentfile-003.mp4",
"duration":"12.0000",
"filesize":76564
}
]"
}
]
}
}
- avtrans、avsample、avsnapshop 等普通任务结束回调内容格式示例
{
//任务id type:string
"TaskID": "92e3745751aee5662f9f06ff3f03076920160914",
//处理中:2 成功:3 失败: 4 type:int
"Status": 3,
//任务类型:与创建请求的任务类型一致
"Type": "avtrans",
//兼容ks3老用户需求,avtrans任务没有该参数
"itmes": [
{
"cmd": "tag=avop|tag=saveas&bucket=wangshuai9&object=bTN1OC90ZXN0LzEubXA",
"desc": "success",
"keys": [
"m3u8/test/shouyin1.mp4"
],
"code": 3
}
],
//视频云媒体转码返回信息
"Details": {
//成功:0 失败:其他 type:int
"errnum": 0,
//bucket地址 type:string
"bucket": "wangshuai9",
//截图总量
//该参数只有avsample任务有效
"snapshotNum":0,
"items": [
{
//文件存储地址 type:string
"dstpath": "m3u8/test/shouyin1.mp4"
//输出文件视频信息
"outMediainfo": "{
"metadata":{
"rotate":"10"
},
"streams":[
{
"index":0,
"codec_name":"h264",
"codec_type":"video",
"width":1280,
"height":720,
"bit_rate":"500000",
"r_frame_rate":"30.1"
},
{
"index":1,
"channels":2,
"sample_rate":44100,
"codec_name":"aac",
"codec_type":"audio",
"bit_rate":"64000"
}
],
"format":{
"duration":"198.123",
"format_name":"mp4",
"size":198
}
}"
}
]
}
}
{
"TaskID":"0c33c9c372ff87fe197cb0dcf236e18d20161223",
"Status":3,
"Type":"avinfo",
// 为兼容ks3老客户,新用户接入时,不带有itmes字段,请忽略
"itmes":[
{
"cmd":"tag=avinfo",
"desc":"success",
"keys":[
""
],
"code":3
}
],
"Details":{
"errnum":0,
"bucket":"",
"items":[
{
"dstpath":"",
"metainfo":"{
"streams":[
{
"codec_name":"aac",
"codec_long_name":"AAC (Advanced Audio Coding)",
"profile":"LC",
"codec_type":"audio",
"codec_time_base":"1/48000",
"codec_tag_string":"mp4a",
"codec_tag":"0x6134706d",
"r_frame_rate":"0/0",
"avg_frame_rate":"0/0",
"time_base":"1/48000",
"start_time":"0.000000",
"duration_ts":61673448,
"duration":"1284.863500",
"bit_rate":"47325",
"nb_frames":"60228",
"sample_fmt":"fltp",
"sample_rate":"48000",
"channels":2,
"channel_layout":"stereo"
},
{
"index":1,
"codec_name":"h264",
"codec_long_name":"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"profile":"High",
"codec_type":"video",
"codec_time_base":"642153/15575000",
"codec_tag_string":"avc1",
"codec_tag":"0x31637661",
"r_frame_rate":"13/1",
"avg_frame_rate":"7787500/642153",
"time_base":"1/16000",
"start_pts":10176,
"start_time":"0.636000",
"duration_ts":20548896,
"duration":"1284.306000",
"bit_rate":"781679",
"nb_frames":"15575",
"width":500,
"height":600,
"coded_width":512,
"coded_height":608,
"has_b_frames":2,
"sample_aspect_ratio":"0:1",
"display_aspect_ratio":"0:1",
"pix_fmt":"yuv420p",
"level":22,
"chroma_location":"left",
"refs":1,
"is_avc":"true",
"bits_per_raw_sample":"8"
}
],
"format":{
"nb_streams":2,
"format_name":"mov,mp4,m4a,3gp,3g2,mj2",
"format_long_name":"QuickTime / MOV",
"duration":"1284.864000",
"size":"133778683",
"bit_rate":"832951",
"probe_score":100
}
}"
}
]
}
}
流式任务回调Body如下:
字段名 |
类型 |
是否必有 |
描述 |
TaskID |
string |
是 |
任务ID |
Status |
int |
是 |
任务状态:3为成功,4为失败 |
Details |
json object |
是 |
更详细的信息 |
字段名 |
类型 |
是否必有 |
描述 |
Order |
int |
是 |
任务在流式中的执行顺序 |
Type |
string |
是 |
任务类型 |
Status |
int |
是 |
子任务执行结果:3为成功,4为失败 |
Errnum |
int |
否 |
任务错误码 |
Errmsg |
string |
否 |
任务错误信息 |
Bucket |
string |
否 |
输出文件的bucket |
OutInfo |
json object |
是 |
输出信息详情 |
字段名 |
类型 |
是否必有 |
描述 |
dstpath |
string |
是 |
任务在流式中的执行顺序 |
metainfo |
string |
是 |
任务类型 |
snapshotNum |
int |
是 |
子任务执行结果:3为成功,4为失败 |
outMediainfo |
string |
否 |
任务错误码 |
segmentsinfo |
string |
否 |
任务错误信息 |
thumnailsinfo |
string |
否 |
输出文件的bucket |
segmentlisttype |
string |
是 |
输出信息详情 |
备注:对metinfo,outMediainfo等的说明,见前文单独任务中该字段详情。
- 两个avtrans类型的任务流式执行,结束后回调内容格式示例
{
//任务id type:string
"TaskID": "92e3745751aee5662f9f06ff3f03076920160914",
//处理中:2 成功:3 失败: 4 type:int
"Status": 3,
//视频云离线转码返回信息
"Details": [
{
"Order": 0,
"Type": "avtrans",
//子任务的执行结果状态码
"Status": 3,
//成功:0 失败:其他 type:int
"Errnum": 0,
"Errmsg": "",
//bucket地址 type:string
"Bucket": "xxxxx",
"OutInfo": {
//文件存储地址 type:string
"dstpath": "xxxx/xxx/xxx.mp4",
//输出文件视频信息
"outMediainfo": "{
"metadata":{
"rotate":"10"
},
"streams":[
{
"index":0,
"codec_name":"h264",
"codec_type":"video",
"width":1280,
"height":720,
"bit_rate":"500000",
"r_frame_rate":"30.1"
},
{
"index":1,
"channels":2,
"sample_rate":44100,
"codec_name":"aac",
"codec_type":"audio",
"bit_rate":"64000"
}
],
"format":{
"duration":"198.123",
"format_name":"mp4",
"size":198
}
}"
}
},
{
"Order": 1,
"Type": "avtrans",
//子任务的执行结果状态码
"Status": 3,
//成功:0 失败:其他 type:int
"Errnum": 0,
"Errmsg": "",
//bucket地址 type:string
"Bucket": "xxxxx",
"OutInfo": {
//文件存储地址 type:string
"dstpath": "xxxx/xxx/xxx.mp4",
//输出文件视频信息
"outMediainfo": "{
"metadata":{
"rotate":"10"
},
"streams":[
{
"index":0,
"codec_name":"h264",
"codec_type":"video",
"width":1280,
"height":720,
"bit_rate":"200000",
"r_frame_rate":"25"
},
{
"index":1,
"channels":2,
"sample_rate":44100,
"codec_name":"aac",
"codec_type":"audio",
"bit_rate":"64000"
}
],
"format":{
"duration":"220.456",
"format_name":"flv",
"size":328
}
}"
}
}
]
}
GET 回调接口
目前不提供