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编码。