1.概述
1.1.用途
云视睿博视频转码系统(以下简称“转码系统”)可以将转码后的视频文件通过HTTP协议上传到服务器上。
默认情况下,给出一个可以上传文件的HTTP地址即可。为了满足更复杂的应用需求,转码系统还支持更灵活的上传方式,本文档定义转码系统的上传规则。开发人员可以参考本规则实现上传服务器的服务端逻辑。
1.2.通信协议
本规范中,接收数据的服务器是通信的服务器端(简称“服务器”),转码系统是通信客户端。客户端和服务器通过HTTP协议通信,客户端使用HTTP Get向服务器发送请求,服务器返回json格式的数据给客户端。服务器可以是任何能够按本规范提供服务的第三方系统,如云视睿博的流媒体服务器系统和内容管理系统。
1.3.必要条件
如果要让转码系统按照本接口规范访问接口和上传文件,请在转码系统的设置界面中,将“上传位置满足云视规范”的选项勾选上,如下图:
2.查询上传位置
客户端通过访问服务器提供的接口位置,获取实际的上传位置和回调位置。接口位置是符合HTTP规范的URL地址。
客户端通过HTTP GET请求接口,服务器收到请求后,返回如下格式的json数据:
{
"code": 0,
"data": {
"upload": "http:\/\/192.168.1.11\/upload\/?sub_path=&field_name=field1",
"callback": "http:\/\/192.168.1.11\/mserver\/interface\/src=_FILENAME&src_id=_SRC_ID&title=_TITLE"
}
}
如果不可上传,返回code不等于零的json数据,按如下格式返回错误:
{
"code":100,
"err_desc":"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"
}
其中:
upload 是实际上传文件的位置,客户端将通过HTTP POST向该位置上传文件。
callback 是文件上传结束后的回调位置,可以忽略。
如果提供callback位置,在文件正确上传完毕后,客户端会调用该接口,并在调用之前试图替换接口中的如下字符串:
_FILENAME 上传文件名,用实际的文件名替换
_SRC_ID 用文件名去掉后缀的部分替换
_TITLE 用文件名去掉后缀的部分替换,或者用明确设定的文件标题替换
如果调用callback成功,服务器返回:
{
"code":0
}
失败返回code非零的数据:
{
"code":100,
"err_desc":"。。。"
}
3.文件上传
转码系统使用HTTP POST协议向upload位置上传文件。POST数据采用multipart/form-data编码。
原文地址:http://blog.51cto.com/livestreaming/2083342