[关闭]
@sewise-dev 2017-10-13T13:10:40.000000Z 字数 5104 阅读 665

云转码

云转码API


更新历史

编号 版本 说明 作者 创建日期 修改日期
1 v1.1 创建文档 zewise 2017-09-18 2017-09-20


目录

API接口

1 添加单个任务

|http post /api/addtask|

参数 类型 说明 必选
taskid 1111 字符串 json:"taskid,omitempty"必须要唯一
callurl http:ip/api/callback 字符串 json:"callurl,omitempty"完整的回调url
fileinfo 详见TransCodecInfo结构体 json:"fileinfo,omitempty"转码文件信息

1.1TransCodecInfo
参数 类型 说明 必选
in 详见FileInfo 输入信息json:"in",完整文件的信息,程序会自动填入,源文件路劲必填
out 详见FileInfo 输入信息json:"out",目标文件信息
1.2FileInfo
参数 类型 说明 必选
format 输出格式[ts mp4 flv] string json:"format,omitempty"//文件格式 in:可选 out:必选
filepath string json:"filepath,omitempty"//文件存储路径
videoinfo 详见VideoCodec json:"videoinfo,omitempty" //视频编码信息
audioinfo 详见AudioCodec json:"audioinfo,omitempty" //音频编码信息
1.3VideoCodec
参数 类型 说明 必选
action 0 off 1 codec 2 copy int json:"action,omitempty" in:无效 out:必选
vcodec 默认值为H264: 28 int json:"vcodec,omitempty" //编码id
codeclevel int json:"codeclevel,omitempty" //编码等级
Profile 1:basic 2: main 3:high int json:"profile,omitempty" //编码等级
Usage QUALITY=1, SPEED=2, BALANCE=3 int json:"usage,omitempty" // QUALITY, SPEED, BALANCE
width int json:"width,omitempty" //宽
height int json:"height,omitempty" //高
goptime 1 second int json:"goptime,omitempty" //gop大小,单位秒
goppicsize int json:"goppicsize,omitempty" //gop大小
goprefdist int json:"goprefdist,omitempty" //gop间距
idrinterval int json:"idrinterval,omitempty" //关键帧间距
ratecontrolmethod 保留 int json:"ratecontrolmethod,omitempty" //码率控制方式
frameRate int json:"frameRate,omitempty" //帧率
bitRate int json:"bitRate,omitempty" //码率
deinterlace bool json:"deinterlace,omitempty" //去隔行
scantype bool json:"scantype,omitempty" //底部和顶部
watermark 详见Watermark json:"watermark,omitempty"//水印信息
1.4Watermark
参数 类型 说明 必选
mode 0:off 1 :左上角 2:右下角 int json:"Mode" // 0 off 1 left 2 bottom
logo string json:"logo" logo图片地址 Mode开启时必选
offsetx int json:"offsetx" 水印坐标x Mode开启时必选
offsety int json:"offsety" 水印坐标y Mode开启时必选
1.4AudioCodec
参数 类型 说明 必选
action 0 off 1 codec 2 copy int json:"action,omitempty" in:无效 out:必选
acodec 默认AAC: 0x15002 int json:"acodec,omitempty" //编码id
bitRate int json:"bitRate,omitempty" //码率
codeclevel 保留 int json:"codeclevel,omitempty" 暂时没用//编码等级 main high
numchannel 0 2 4 int json:"numchannel,omitempty" //声道
samplefrequency 48100 int json:"samplefrequency,omitempty" //音频采样率
2 删除单个任务

|http post /api/deltask|

参数 类型 说明 必选
taskid "1111" 字符串 必须要唯一
3 查询单个任务

|http post /api/status|

参数 类型 说明 必选
taskid "1111" 字符串 必须要唯一
4 任务自动回调 任务查询回调

|callback url|
|开始、进度、结束、错误回调|

参数 类型 说明 必选
taskid "1111" 字符串 必须要唯一
event "slice" "code" "merge" "complete" string slice:切割,code:分片转码,merge:视频合成,complete:完成
errorcode string 失败时的错误原因, 成功为空
precent 80% int 任务完成的进度
duration 10s int 任务完成时的耗时
5 接口示例
5.1添加任务json

{
"taskid":"1111",
"fileinfo":{
"in":{
"Format":"flv",
"Filepath":"/home/video/test.mp4",
"videoinfo":{
"action":0,
"vcodec":28,
"codeclevel":1,
"profile":2,
"usage":0,
"width":1920,
"height":1080,
"goppicsize":60,
"goprefdist":25,
"idrinterval":0,
"ratecontrolmethod":1,
"frameRate":25,
"bitRate":2000,
"deinterlace":false,
"scantype":true
},
"audioinfo":{
"action":0,
"acodec":228,
"bitRate":64,
"codeclevel":3,
"numchannel":2,
"samplefrequency":44100
}
},
"out":{
"Format":"mp4",
"Filepath":"/home/video/test1.mp4",
"videoinfo":{
"action":1,
"vcodec":28,
"codeclevel":1,
"profile":2,
"usage":2,
"width":1080,
"height":720,
"goppicsize":120,
"goprefdist":25,
"idrinterval":0,
"ratecontrolmethod":3,
"frameRate":30,
"bitRate":1500,
"deinterlace":false,
"scantype":true,
"watermark":{
"mode":1,
"logo":"/cammer/SEWISE3.png",
"offsetx":10,
"offsety":10
}
},
"audioinfo":{
"action":1,
"acodec":228,
"bitRate":32,
"codeclevel":1,
"numchannel":2,
"samplefrequency":9600
}
}
}
}

示例:

curl -H "Content-Type: application/json" -X POST --data "{\"taskid\":\"123\",\"fileinfo\":{\"in\":{\"Filepath\":\"/cammer/video/001.MTS\"},\"out\":{\"Format\":\"ts\",\"Filepath\":\"/home/video/test1.mp4\",\"videoinfo\":{\"action\":1,\"goptime\":2,\"watermark\":{\"mode\":0,\"logo\":\"/cammer/SEWISE3.png\",\"offsetx\":10,\"offsety\":10}},\"audioinfo\":{\"action\":1,\"acodec\":86018}}}}" http://127.0.0.1:8080/api/addtask

(1)微录播音视频转码json: 1秒gop

{"taskid":"123","fileinfo":{"in":{"Filepath":"/cammer/video/001.MTS"},"out":{"Format":"mp4","Filepath":"/home/video/test1.mp4","videoinfo":{"action":1,"vcodec":28,"goptime":1},"audioinfo":{"action":1,"samplefrequency":44100,"acodec":86018}}}}

(2)微录播转码音频(码率默认、采样率),视频拷贝

{"taskid\":"123","fileinfo":{"in":{"Filepath":"/cammer/video/001.MTS"},"out":{"Format":"mp4","Filepath":"/home/video/test1.mp4","videoinfo":{"action":2},"audioinfo":{"action":1,"samplefrequency":44100,"acodec":86018}}}}

(3)转码视频,音频拷贝 带水印

{"taskid":"123\","fileinfo":{"in":{"Filepath":"/cammer/v"Filepath":"/home/video/test1.mp4","videoinfo":{"action":1,"vcodec":86018,"goptime":1, "watermark":{"mode":0,"logo":"/cammer/SEWISE3.png","offsetx":10,"offsety":10}},"audioinfo":{"action\":2}}}}

5.2删除任务json

body 参数 json

{
"taskid":"1111", 字符串: 必须要唯一
}

5.3查询任务json

body 参数 json
{
"taskid":"1111", 字符串: 必须要唯一
}

5.4回调任务json

//接口定义之任务回调 开始、进度、结束、错误回调
//http post //callback
body 参数 json
//slice: 1. errorcode
//code: 1. videocode_status [Precent] 2. audiocode_status [precent] errorcode
//merge: 1. errorcode
//complete: 1. Duration 2. errorcode

{
"taskid":1111,
"event":"slice",
"errorcode":"slice error",
"precent":80, //80%
"duration":10 //second
}

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注