@sewise-dev
2019-07-03T03:45:14.000000Z
字数 13287
阅读 559
api
编号 | 版本 | 说明 | 作者 | 日期 |
---|---|---|---|---|
1 | v1.0 | 1.创建文档; | GuQiuSheng | 2019-07-03 |
当请求发生错误时,系统返回错误码和错误描述;错误分为 客户端错误 和 服务端错误
HTTP请求状态列表,4xx为客户端错误,5xx为服务端错误
HTTP状态码 | 错误码 | 错误描述 |
---|---|---|
400 | 10001 | 消息格式错误,缺少必要的参数或者是参数传值错误 |
413 | 10002 | HTTP请求内容类型错误 |
401 | 11001 | 身份验证失败 |
404 | 12001 | api接口不存在 |
500 | 50001 | 内部错误,服务器执行过程中遇到未知错误,会返回该未知错误,遇到该错误,请及时联系 |
50002 | 服务器资源不足 | |
50003 | 服务器暂不支持该功能 | |
504 | 50003 | 服务器繁忙,操作超时 |
HTTP请求状态返回格式
返回字段 | 字段类型 | 说明 |
---|---|---|
code | Integer | 请求失败状态码(详细请见状态表) |
error | String | 错误描述 |
错误样例
{
"code": 11001,
"error": "core expired"
}
回调地址功能
sewise server 执行调用者请求的任务后返回结果通知
接口地址
自定义
HTTP请求类型
GET/POST
请求参数
参数 必选 类型 说明 data 是 String Json格式的回调结果,并做URLEncode
接口示例
Request
回调地址:uploadCallback = http://callback.sewise.com/api/callback
回调数据:data = URLEncode(data)
curl -X GET http://callback.sewise.com/api/callback?data=%7B%22filepath%22%3A%22test%22%7D
Response
{"success":true}
以下接口中,类型为 UNIX TIME 的时间均为 UTC+0 时间
通过字符串传入的时间,格式为 yyyy-MM-ddTHH:mm:ssTZ
支持用户将本地文件上传到sewise的流媒体服务器(支持断点续传,需客户端支持)
文件上传握手操作,系统根据请求参数返回该文件相应的上传操作指导
/api/file/fupload
application/json
POST
参数 必选 类型 说明 RequestBody source_id 是 String 该文件的MD5值,该值将作为sewise系统为该文件的唯一标识码
200
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件的MD5值 |
status | Integer | 文件上传状态,包括以下状态:0,文件未存在,可按请求正常上传;1,文件上传未完成,需要重新上传;2,文件已存在; |
upload_url | String | 上传地址,当 status=0 或 status=1 时存在 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X POST -H "Content-Type:application/json" -d {"source_id":"1234qwer"} http://api.sewise.com/api/file/fupload/qwerasdfzxcvtyuiqwerasdfzxcvtyui
Response
{"source_id":"qwerasdfzxcvtyuiqwerasdfzxcvtyui","status":1,"upload_url":"http://api.sewise.com/api/upload"}
支持用户将本地文件上传到sewise的流媒体服务器,支持用户以Form表单形式上传完整文件
/api/file/fupload
multipart/form-data
POST
POST /api/file/ HTTP/1.1
Content-Type: multipart/form-data; boundary="----=_Part_6_19788992.1452675017567"
Content-Length: 8418
Host: localhost:8888
Connection: Keep-Alive------=_Part_6_19788992.1452675017567
Content-Disposition: form-data; name="source_id"{source_id}
------=_Part_6_19788992.1452675017567
Content-Disposition: form-data; name="file_name"{file_name}
------=_Part_6_19788992.1452675017567
Content-Disposition: form-data; name="tag"{tag}
------=_Part_6_19788992.1452675017567
Content-Disposition: form-data; name="upload_callback"{upload_callback}
------=_Part_6_19788992.1452675017567
Content-Type: video/mp4; name=test.jpg
Content-Transfer-Encoding: binary
Content-Disposition: form-data; name="test.mp4"; filename="test.mp4"{file_binary_data}
------=_Part_6_19788992.1452675017567--
参数 必选 类型 说明 RequestBody source_id 否 String 该文件的MD5值,该值将作为sewise系统为该文件的唯一标识码 tag 否 String 文件标签 file_name 否 String 默认使用文件的 sourceid 为文件名 capture_image 否 Boolean 默认不截取封面图片 upload_callback 否 String 文件上传结果回调地址,返回数据格式为 【5.文件查询】-【HTTP响应状态】-200-【data】-【Response Item】,回调请求说明请参照 【备注】-【回调地址说明】;若不存在回调地址,可以通过文件查询接口获取上传文件的信息 file_binary_data 是 Binary 二进制文件数据(需要上传的文件)
200
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件的MD5值 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -F "file=@e:/test.mp4" -F "source_id=1234qwer" -F "file_name=1234qwer" -F "tag=sd" -F "capture_image=false" -F "upload_callback=http://api.sewise.com/api/callback" http://api.sewise.com/api/file/fupload
Response
{"source_id":"1234qwer"}
支持用户将本地文件上传到sewise的流媒体服务器(支持断点续传,需客户端支持)
文件上传握手操作,系统根据请求参数返回该文件相应的上传操作指导
/api/file/upload
application/json
POST
参数 必选 类型 说明 RequestBody source_id 是 String 该文件的MD5值,该值将作为sewise系统为该文件的唯一标识码 file_size 是 Long 文件大小,单位为byte slice_size 是 Integer 文件分块大小 slice_nums 是 Integer 文件分块数目 suffix_name 是 String 文件扩展名 tag 否 String 文件标签 file_name 否 String 默认使用文件的 sourceid 为文件名 capture_image 否 Boolean 默认不截取封面图片 upload_callback 否 String 文件上传结果回调地址,返回数据格式为 【5.文件查询】-【HTTP响应状态】-200-【data】-【Response Item】,回调请求说明请参照 【备注】-【回调地址说明】;若不存在回调地址,可以通过文件查询接口获取上传文件的信息
200
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件的MD5值 |
status | Integer | 文件上传状态,包括以下状态:0,文件未存在,可按请求正常上传;1,文件上传一部分;2,文件已存在; |
upload_url | String | 上传地址,当 status=0 或 status=1 时存在 |
upload_set | String | Json格式的文件上传参数,只有当 status=1 时存在,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
file_name | String | 文件名 |
tag | String | 文件标签,存在时返回,否则为空 |
file_size | Long | 文件大小,单位为byte |
slice_size | Integer | 文件分块大小 |
slice_nums | Integer | 文件分块数目 |
slice_arr | Array | 未上传的文件分块列表;如果客户端通过单线程按照序号顺序上传分块的方式,则本参数返回最后一个上传的分块序号,如果客户端通过多线程同时上传分块分的方式,则本参数返回未上传切片的序号列表 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X POST -H "Content-Type:application/json" -d {"file_size":10000,"slice_size":250,"slice_nums":40,
"upload_callback":"http://callback.sewise.com/api/callback"} http://api.sewise.com/api/file/upload/qwerasdfzxcvtyuiqwerasdfzxcvtyui
Response
{"source_id":"qwerasdfzxcvtyuiqwerasdfzxcvtyui","status":1,"upload_set":{"file_size":1000,"slice_size":25,"slice_nums":40,"slice_arr":[4]}}
上传分片文件,客户端需串行上传文件
/api/file/upload/{source_id}/{slice_id}
application/octet-stream
PUT
参数 必选 类型 说明 PathParam source_id 是 String 文件ID slice_id 是 Integer 文件分块序号
文件分块的二进制数据
200
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件ID |
slice_id | Integer | 文件分片序号 |
Request
curl -X PUT -H "Content-Type:application/octet-stream" http://api.sewise.com/api/file/upload/qwerasdfzxcvtyuiqwerasdfzxcvtyui/1
Response
{"source_id":"qwerasdfzxcvtyuiqwerasdfzxcvtyui","slice_id":1}
删除已上传的文件,包括与该资源相关的内容
/api/file/{source_id[,source_id]}
application/json
DELETE
参数 必选 类型 说明 PathParam source_id 是 String 视频id,可以批量操作,格式如下xxx,xxx
200
返回字段 | 字段类型 | 说明 |
---|---|---|
result | Array | Json格式的请求结果列表,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件ID |
success | boolean | 文件删除是否成功 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X DELETE -H "Content-Type:application/json" http://api.sewise.com/api/file/qwerasdfzxcvtyuiqwerasdfzxcvtyui
,qwerasdfzxcvtyuiqwerasdfzxcvtyu7
Response
{"result":[{"success":true,"source_id":"qwerasdfzxcvtyuiqwerasdfzxcvtyui"}]}
查询文件的详细信息
/api/file/{source_id[,source_id]}
application/json
GET
参数 必选 类型 说明 PathParam source_id 否 String 视频id,可以批量操作,格式如下xxx,xxx QureyParam tag 否 String 当source_id不存在,可根据tag查询,支持多tag查询,格式如 tag1,tag2 status 否 Integer 当source_id不存在,可根据status查询,获取指定状态的文件信息 size 否 Integer 当source_id不存在,可设置查询文件个数,默认为20 page 否 Integer 当source_id不存在,可设置查询文件的页数,默认为1
200
返回字段 | 字段类型 | 说明 |
---|---|---|
total_record | Integer | 总文件数 |
size | Integer | 分页大小 |
page | Integer | 当前分页 |
total_page | Integer | 总的分页数 |
data | Array | Json格式的文件列表信息,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 文件ID |
file_name | String | 文件名称 |
status | Integer | 文件状态,0:不可用;1:上传中;2:可用;3:可播放 |
tag | String | 文件标签,存在时则返回 |
create_time | Long | UNIX TIME,文件创建时间 |
file_info | String | Json格式的文件详细信息,当 status=1,2 时存在,详细信息请看 FileInfo Item |
job_info | Array | Json格式的文件转码信息列表,当 status=1 时存在,详细信息请看 JobInfo Item |
multiple | Array | Json格式的多码率文件列表,仅当用户调用多码率转码操作完成后存在,详细信息请看 Multiple Item |
FileInfo Item
返回字段 | 字段类型 | 说明 |
---|---|---|
file_size | Long | 文件大小,单位byte |
cover | String | 封面图片地址,可通过http访问的绝对地址,存在时返回该值 |
duration | Integer | 视频时长,单位s |
format | String | 文件格式 |
vcodec | String | 视频编码格式 |
dimension | String | 分辨率 |
bitrate | Integer | 码率,单位kb/s |
framerate | Float | 帧率 |
acodec | String | 音频编码格式 |
channels | Integer | 音轨数量 |
samplerate | Integer | 音频采样率 |
JobInfo Item
返回字段 | 字段类型 | 说明 |
---|---|---|
job_id | String(8) | 转码任务ID |
status | Integer | 转码状态 |
Multiple Item
返回字段 | 字段类型 | 说明 |
---|---|---|
source_id | String | 转码文件ID |
dimension | String | 分辨率,格式为640x480 |
bitrate | Integer | 视频码率,单位为kb/s |
framerate | float | 视频帧率 |
size | Long | 视频大小 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X GET -H "Content-Type:application/json" http://api.sewise.com/api/file/1234qwerasdfzxcv1234qwerasdfzxcv
Response
{"total_record":1,"total_page":1,"page":1,"size":1,"data":[{"source_id":1234qwerasdfzxcv1234qwerasdfzxcv,"status":2,"create_time":1445307741210,"file_info":{"file_size":10000,"format":"ts","duration":300,"vcodec":"h264","acode":"aac","dimension":"640x480","bitrate":"200","framerate":"30","samplerate":"44100","channles":2}}]}
下载指定文件
/api/file/download/{source_id}
application/json
GET
参数 必选 类型 说明 PathParam source_id 是 String 视频id QueryParam format 否 String 视频格式
200
返回字段 | 字段类型 | 说明 |
---|---|---|
url | String | 文件下载地址 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X GET -H "Content-Type:application/json" http://api.sewise.com/api/file/download/qwerasdfzxcvtyuiqwerasdfzxcvtyui
Response
{"url":"http://download.sewise.com/qwerasdfzxcvtyuiqwerasdfzxcvtyui.flv"}
对已上传成功的文件根据需求执行转码操作
/api/file/transcode/{source_id}
application/json
POST
参数 必选 类型 说明 PathParam source_id 是 String 文件ID RequestBody template_id 是 String(8) 转码参数模板ID,8位任意字符串组成,系统默认的转码模板ID除外;系统默认已设定三种转码模板可供使用,id分别为tp_sd,tp_hd,tp_shd,详细信息请看 【备注】-【转码模板】 trans_callback 否 String 转码任务结果回调地址;回调地址格式请参照【备注】-【回调地址说明】;回调数据格式为 【查询转码】-【HTTP 响应状态】- 200 -【data】-【Response Item】-【Multiple Item】;
200
返回字段 | 字段类型 | 说明 |
---|---|---|
job_id | String(8) | 转码任务ID |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X POST -H "Content-Type:aplication/json" -d {"template_id":"tp_sd","trans_callback":"http://callback.sewise.com/api/callback"} http://api.sewise.com/api/file/transcode/1234qwer
Response
{"job_id":"1234qwer"}
取消正在进行的转码任务
/api/file/transcode/{job_id[,job_id]}
application/json
PUT
参数 必选 类型 说明 PathParam job_id 是 String(8) 转码任务ID,可以批量操作,格式如:xxx,xxx
200
返回字段 | 字段类型 | 说明 |
---|---|---|
result | Array | Json格式的取消转码结果列表,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
success | boolean | 请求结果 |
job_id | String(8) | 转码任务ID |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X POST -H "Content-Type:aplication/json" http://api.sewise.com/api/file/transcode/1234qwer,qwer1234
Response
{"result":[{"job_id":"1234qwer","success":true},{"job_id":"qwer1234","success":true}]}
查询正在进行的转码任务
/api/file/transcode/{job_id[,job_id]}
application/json
GET
参数 必选 类型 说明 PathParam job_id 否 String(8) 文件ID,支持批量操作,格式为xxx,xxx QueryParam size 否 Integer 查询任务的数量,默认为20 page 否 Integer 查询任务的页数,默认为1
200
返回字段 | 字段类型 | 说明 |
---|---|---|
total_record | Integer | 总文件数 |
size | Integer | 分页大小 |
page | Integer | 当前分页 |
total_page | Integer | 总的分页数 |
data | Array | Json 格式的转码任务列表,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
job_id | String(8) | 转码任务ID |
template_id | String(8) | 转码模板ID |
create_time | Long | 任务创建时间 |
status | Integer | 转码状态,0:等待转码;1:正在转码中;2:转码完成 |
process | Float | 转码进度,仅当 status==1 时存在 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X GET -H "Content-Type:application/json" http://api.sewise.com/api/transcode/1234qwer
Response
{"total_record":1,"total_page":1,"page":1,"size":1,"data":[{"job_id":"1234qwer","template_id":"qwerasdf","status":"1","process":"20.01","create_time":1445307741210}]}
自定义合适的转码模板
/api/transtemplate
application/json
POST
参数 必选 类型 说明 RequestBody template_name 否 String 转码模板的名称 params 是 String Json格式的转码参数列表,详细信息请看 Request Item
Request Item
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
video | 否 | String | Json格式的视频转码参数列表,详细信息请看 Video Params |
audio | 否 | String | Json格式的音频转码参数列表,详细信息请看 Audio Params |
watermark | 否 | String | Json格式的水印参数列表,暂不支持使用 |
Video Params
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
dimension | 否 | String | 视频分辨率,默认为原视频分辨率 |
bitrate | 否 | Integer | 视频码率,单位kb/s,默认为原视频码率 |
framerate | 否 | Float | 视频帧率,默认为原视频帧率 |
Audio Params
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
channels | 否 | Integer | 音轨数量,默认为原音轨数 |
simplerate | 否 | Integer | 音频采样率,默认为原音频采样率 |
bitrate | 否 | Integer | 音频码率,单位为kb/s,默认为原音频码率 |
200
返回字段 | 字段类型 | 说明 |
---|---|---|
template_id | String(8) | 转码模板ID,8位任意字符串组成 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X POST -H "Content-Type:application/json" -d {"template_name":"标清","params":{"video":{},"audio":{}}} http://api.sewise.com/api/transtemplate
Response
{"template_id":"qwerasdf"}
更新指定的转码模板
/api/transtemplate/{template_id}
application/json
PUT
参数 必选 类型 说明 PathParam template_id 是 String(8) 转码模板ID RequestBody params 是 String Json格式的转码参数列表,详细信息请看 Request Item
Request Item
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
video | 否 | String | Json格式的视频转码参数列表,详细信息请看 Video Params |
audio | 否 | String | Json格式的音频转码参数列表,详细信息请看 Audio Params |
watermark | 否 | String | Json格式的水印参数列表,暂不支持使用 |
Video Params
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
dimension | 否 | String | 视频分辨率,默认为原视频分辨率 |
bitrate | 否 | Integer | 视频码率,单位kb/s,默认为原视频码率 |
framerate | 否 | Float | 视频帧率,默认为原视频帧率 |
Audio Params
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
channels | 否 | Integer | 音轨数量,默认为原音轨数 |
simplerate | 否 | Integer | 音频采样率,默认为原音频采样率 |
bitrate | 否 | Integer | 音频码率,单位为kb/s,默认为原音频码率 |
200
返回字段 | 字段类型 | 说明 |
---|---|---|
success | boolean | 请求结果 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X PUT -H "Content-Type:application/json" -d {"params":{"video":{},"audio":{}}} http://api.sewise.com/api/transtemplate/qwerasdf
Response
{"success":true}
获取指定或者全部的转码模板信息
/api/transtemplate/{template_id[,template_id]}
application/json
GET
参数 必选 类型 说明 PathParam template_id 否 String(8) 转码模板ID,可以批量操作,格式为xxxx,xxxx QureyParam page 否 Integer 查询日志的页数,默认为1 size 否 Integer 查询每页日志的条数,默认为20
200
返回字段 | 字段类型 | 说明 |
---|---|---|
total_record | Long | 已记录日志总数量 |
total_page | Integer | 已记录日志的总页数 |
page | Integer | 当前页数 |
size | Integer | 每一页日志的数量 |
data | Array | Json格式的转码模板信息列表,详细信息请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
template_id | String(8) | 转码模板ID |
template_name | String | 转码模板名称 |
params | String | Json格式的转码参数列表,详细信息请参照【设置转码模板】-【Request Item】 |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X GET -H "Content-Type:application/json" -d {"keyword":"ssss"} http://api.sewise.com/api/transtemplate/qwerasdf
Response
{"total_record":1,"total_page":1,"page":1,"size":1,"data":[{"template_id":"1234qwer","template_name":"hd","params":{}}]}
删除指定转码模板
/api/transtemplate/{template_id[,template_id]}
application/json
DELETE
参数 必选 类型 说明 PathParam template_id 是 String(8) 转码模板ID,可以批量操作,格式为xxxx,xxxx
200
返回字段 | 字段类型 | 说明 |
---|---|---|
result | Array | Json格式的删除转码模板列表,详细请看 Response Item |
Response Item
返回字段 | 字段类型 | 说明 |
---|---|---|
success | boolean | 请求结果 |
template_id | String(8) | 转码模板ID |
其他响应状态描述请参照:【备注】-【错误码】
Request
curl -X DELETE -H "Content-Type:application/json" http://api.sewise.com/api/transtemplate/qwerasdf
Response
{"result":[{"template_id":"qwerasdf","success":true}]}