视频云提供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
}
}
{
//任务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
}
]"
}
]
}
}
{
//任务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等的说明,见前文单独任务中该字段详情。
{
//任务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
}
}"
}
}
]
}
目前不提供
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!