上传API

该接口为用户提供自编码完成视频上传功能,包括Flash和HTTP两种方式。

Flash视频上传

Spark API 需要 Flash 插件的版本在 10.1 以上方可正常使用,请确保 Flash 插件版本符合要求。

在上传视频的过程中,不需要与 Spark 平台进行 HTTP 通信,使用 JavaScript 和 Spark 提供的 Flash 进行交互即可完成。上传接口用到的所有 javascript 函数定义见下表:

函数定义 参数说明
on_spark_selected_file(file_name, file_size) file_name: 上传文件名
file_size: 上传的文件大小,单位字节
on_spark_upload_validated(status, videoid) status: 验证结果
videoid: 视频 id
on_spark_upload_progress(progress) progress: 上传进度。正确时,0~100 之间的整数,包括 0 和 100;错误时,返回-1.

网页嵌入 Spark 提供的上传 Flash 时,需要传递下列参数:

参数(flashvars) 参数说明
progress_interval 回调进度函数的时间间隔,默认 1 秒
notify_url 视频处理完毕后的通知地址

上传视频流程

第一步,选择文件

Spark 提供一个透明的 Flash 进行文件上传,地址如下: http://union.bokecc.com/flash/api/uploader.swf

由于它是透明的,所以可以置于任何一个 html 元素的上方而不影响的页面视觉效果。上传文件时,必须通过点击到该 flash 从而打开浏览对话框进行文件选择。 文件选择成功后,Flash 会调用页面中的on_spark_selected_file 函数,页面可以选择合适的方式处理该事件。

第二步,验证参数

当用户选择文件后,需将下面的参数按照 THQS 算法处理后传递给 Flash 的 start_upload 函数后,才能开始上传流程。首先要进行参数和权限的验证,通过 后才开始文件上传。

参数列表

参数 含义 备注
userid 用户ID 必选
categoryid 分类id 可选
title 视频标题,若值为空,则采用去后缀的文件名作为title 必选
tag 视频标签 必选
description 视频简介 必选

验证完成后,Flash 会调用 on_spark_upload_validated 函数传递验证结果以及视频 id。验证状态码的含义如下:

|验证状态码|说明| |OK|成功| |NETWORK_ERROR|网络错误| |其它|Spark API 错误码|

第三步,文件上传

文件开始上传后,Flash 会周期性调用 on_spark_upload_progress 函数来报告上传进度,间隔秒数由 progress_interval 参数指定。如果上传的进度为负数, 则说明发生网络错误,上传中断。返回 100 则表示上传成功。当返回 100 或者 -1 后,Flash 就不再调用该函数了。

第四步,回调

当处理完毕视频后(上传、转码、审核都完成后),Spark 平台会通过由参数 notify_url 指定的 HTTP/HTTPS 地址以 GET ⽅式发起回调。若⽤户网站地址使⽤HTTPS协议进⾏数据安全传输时,⽤户需保证其拥有的CA证书是合法的。

⽤户指定的 notify_url 符合以下四种 notify_url 格式之⼀即为合法:

1、http://domain

2、http://domain?data=******(data为⽤户⾃定义的参数)

3、https://domain

4、https://domain?data=****

若参数 notify_url 中携带有⽤户⾃定义的参数,则在进⾏回调通知时会将⽤户⾃定义的参数和下表中的参数⼀起以 THQS ⽅式进⾏加密。

参数 说明
videoid 视频 id,16位 hex 字符串
status 视频状态。”OK”表示视频处理成功,”FAIL”表示视频处理失败。
duration 片长(单位:秒)
image 视频截图地址

视频处理失败有多种情况,例如视频文件异常、视频内容违规等等。

<?xml version="1.0" encoding="UTF-8"?>
<video>OK</video>

当 notify_url 指定的接口返回上述 xml 时,Spark 会认为网站已经成功接收到了回调信息,不再进行重试。返回其它任何内容,Spark 视频平台会进行重试,重试的间隔会随着重试次数的增大而增大。若重试 7 次后,依然没有成功,则不再进行通知。因此,Spark 视频平台最多通知 8 次。这 8 次的通知时间距第一次的通知时间的差分别为:

[0,15s, 1m, 4m, 16m, 1h4m, 4h16m, 17h4m]

results matching ""

    No results matching ""