#Sewise 接口
- Qiniu向Sewise发送一个转码请求,返回得到一个
taskid
,输入文件的url包含在请求中 - Sewise在转码完成后用这个
taskid
往Qiniu回调(回调的url包含在第一步的请求里),表示结果
Request:
POST /api/file/transcode
{
"location": "http://xxx", # 需要转码的文件
"callback_url": "htttp://xxx", # 转码完成后的回调地址
"outputs": [
{
"output_key": "...", # 输出结果的key,体现在callback的results上面
"format": "mp4|m3u8|avi|flv|mp3|...", # 输出格式
"vcodec": "copy|libx264|...", # 视频编码器
"acodec": "copy|libacc|...", #音频编码器
"vb": "", # video bitrate
"r": 25, # 视频帧率
"ab": "", # audio bitrate
"ar": "", # audio samplerate
"size": "", # 分辨率, wxh形式, e.g. 400x300
"ss": 5, # 开始转码的时间,单位:秒
"t": 7, # 转码的时长,单位:秒 e.g. 假如ss=4,t=50,就是相当于结果只需要原文件的第4秒到第50+4秒这个区间
"scodec": "mov_text|srt|...", # 字幕,默认需要保留字幕
"rotate": "auto|90|180|270", # 视频旋转
"an": 1|0, # 1:不保留音频流 0:保留
"vn": 1|0, # 1:不保留视频流 0:保留
"stripmeta": 1|0, # 1:去除隐私信息 0:保留
"speed": 0-32.0, # 0<speed<=32, 倍速转换,当前主要用于加速审查
"segtime": 10, # 切片时间默认10s
"ts_url_format": "cc$(count).ts", # playlist中每个ts文件的格式,$(count)用对应的序号代替
"ts_key_format": "key$(count).ts", # 每个ts文件在回调结果中的格式,$(count)用对应的序号代替
"aes_key": "...", # 如果存在这个字段m3u8需要用aes128加密,加密m3u8时候所用的秘钥
"aes_url": "...", # PlayList里面到取解密秘钥的url
"watermarks": [ # 可能包含一个或多个的图片水印
{
"image_url": "..." # 图片水印url
"gravity": "NorthWest|North|NorthEast|West|Center|EastSouthWest|South|SouthEast", # 水印位置
},
...
],
"drawtexts": [ # 可能包含一个或多个的文字水印
{
"text": "..." # 文字水印
"gravity": "...", # 水印位置
"font": "...", # 字体
"size": "...", # 水印大小
"color": "...", # 水印颜色
},
...
]},
{...},
...
]
}
Response:
200 OK
{
"taskid": "123456"
}
结果分成单输出(普通转码)和多输出(hls),都是通过url来指定目标文件,但是多输出需要指定结果的key是怎么样的
Request:
{
"taskid":"11113242",
"status_code": 2xx|4xx|5xx, # 结果的状态码,200表示成功
"error_message": "...", # 假如是非200的结果,需要返回错误信息
"results": [ # 输出结果列表
{"url":"http://output.com/taskid/1/1080.mp4", "key": ""},
{"url":"http://output.com/taskid/1/720.mp4", "key": ""},
]
}
Response:
200 OK
Request:
POST /api/file/delete
{
"taskid": "..."
}
Response:
200 OK
a) hls转码时,对应的format应该是m3u8?如果format不是m3u8,hls参数就会被忽略?
b) 多码率转码时,多码率是要在vb传值?所以vb是要为一个数组?
c) "scodec": "mov_text|srt|...", # 字幕,默认需要保留字幕:如果原视频的字幕是dvb,可能就没有办法保留了。
"results": [ # 多输出时候(如hls)的结果列表
{"url":"http://output.com/taskid/1/1080.mp4", "key": ""},
{"url":"http://output.com/taskid/1/720.mp4", "key": ""},
]
这里对应的多输出应该是m3u8?mp4的话,key的意思是?