首页> 中国专利> 基于HTTP代理的移动流媒体离线缓存系统及方法

基于HTTP代理的移动流媒体离线缓存系统及方法

摘要

本发明提供一种基于HTTP代理的移动流媒体离线缓存系统及方法,相关系统包括移动端应用层,接口层,缓存代理层,数据层,通过预先缓存数据,然后离线提供视频流服务,缓存代理采用存储技术、碎片技术、限速技术、视频拖动技术与数据加密验证安全技术,实现存储最优路径选择、快速索引建立、及时数据更新、最佳数据淘汰、安全数据存储、播放极速响应等,做到了数据防拷贝、防篡改与防盗链功能,最终解决了移动流媒体在无网或网络极差的环境、用户免费移动流量用完的情况下完全得不到应用的问题。

著录项

  • 公开/公告号CN105245939A

    专利类型发明专利

  • 公开/公告日2016-01-13

    原文格式PDF

  • 申请/专利权人 北京市空越技术有限公司;

    申请/专利号CN201510479176.4

  • 发明设计人 柯于勇;

    申请日2015-08-07

  • 分类号H04N21/433(20110101);H04N21/443(20110101);H04L29/08(20060101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 100000 北京市宣武区马连道路6号院6号楼1207室(鼎观大厦)

  • 入库时间 2023-12-18 13:33:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    未缴年费专利权终止 IPC(主分类):H04N21/433 授权公告日:20180529 终止日期:20190807 申请日:20150807

    专利权的终止

  • 2018-05-29

    授权

    授权

  • 2016-09-07

    专利申请权的转移 IPC(主分类):H04N21/433 登记生效日:20160818 变更前: 变更后: 申请日:20150807

    专利申请权、专利权的转移

  • 2016-02-10

    实质审查的生效 IPC(主分类):H04N21/433 申请日:20150807

    实质审查的生效

  • 2016-01-13

    公开

    公开

说明书

技术领域

本发明涉及视频数据存储领域,具体涉及一种基于HTTP代理的移动流媒体离线缓存系统及方法。

背景技术

随着移动互联网的高速发展,移动终端流媒体应用成为移动通信行业的重量级业务,尤其是视频行业、教育行业,但是移动互联网其自身存在区域盲点或覆盖不均衡、流量昂贵等缺点,导致传统移动流媒体在无网或网络极差的环境、用户免费移动流量用完的情况下完全得不到应用。

发明内容

本发明在于克服上述不足,提供一种基于HTTP代理的移动流媒体离线缓存系统及方法,预先缓存数据,然后离线提供视频流服务,解决移动流媒体在无网或网络极差的环境、用户免费移动流量用完的情况下完全得不到应用的问题。

本发明技术方案如下:

一种基于HTTP代理的移动流媒体离线缓存系统,包括移动端应用层,接口层,缓存代理层,数据层,其特殊之处在于:

所述移动端应用层,采用代码兼容技术使移动流媒体缓存的各个功能模块代码都能在Android、iOS、WindowsCE平台上运行;

所述接口层包含API接口与WebServices接口;所述API接口实现移动平台应用的兼容调用,完成代理启动、停止、设置路径的功能;所述WebServices接口采用HTTP调用方式实现下载任务启动、停止、信息读取、缓存清理的功能;

所述缓存代理层包含HTTP代理、会话调度引擎、存储管理与数据安全管理;所述HTTP代理采用HTTP标准协议,实现HTTP服务端与HTTP客户端功能;所述会话调度引擎实现会话管理功能,并完成流媒体视频请求与相应调度工作;所述存储管理实现数据索引、存储、淘汰与删除功能;所述数据安全管理用于实现数据索引单向加密,数据信息可逆加解密,数据分片HASH加解密的功能;

所述数据层包含流媒体视频格式解析与数据存储,用于实现流媒体视频格式解析,以及根据视频拖动请求进行视频流重组的功能,同时采用数据碎片技术,按照红黑平衡树算法,将数据以块的方式存储,存储顺序采用HASH方式。

进一步地,所述数据索引存储于相应的数据文件中,包含文件索引与文件块索引,其中,所述文件索引采用红黑平衡树算法建立缓存文件索引,时间复杂度为O(logn);所述文件块索引采用对象数组存储,时间复杂度为O(1);

进一步地,同一个文件的数据块存储在同一个数据文件里,数据文件由文件Metadata信息与文件数据组成,所述文件Metadata信息包含校验值、版本、缓存方式、视频类型、原文件大小、原文件修改时间属性、原文件最后访问时间与原文件最后未访问周期。

优选地,所述数据碎片技术将数据拆分成固定大小的数据块进行存储,每个数据块的大小为256KB-2MB;所述数据块由块头与块体组成,块头包含块数据的单向加密校验值、块数据的长度与块数据的有效偏移量,其中,元数据和块头均采用DES3可逆加密算法进行加密存储;

进一步地,所述数据淘汰包含时效与LRU两种策略,当数据存储超过最后未访问时限时,数据被自动清除;如果数据访问未到达最后未访问时限,但是存储空间已不足,则使用LRU算法淘汰最久且最少访问的缓存文件。

本发明还提供利用上述基于HTTP代理的移动流媒体离线缓存系统进行离线缓存的方法,其特殊之处在于,包括以下步骤:

1)缓存模块调用步骤:移动APP调用缓存代理提供的API接口初始化、启动与停止,所述Android采用JNI实现,所述iOS采用ObjectiveC++实现;

2)WebServices调用步骤:具体为:

移动APP调用缓存代理提供的WebServices接口连接HTTPServer;

所述HTTPServer向会话调度引擎发送HTTPSession创建请求,会话调度引擎建立HTTPSession;

所述HTTPSession执行下载启动、停止、信息读取与清除缓存指令,其中,所述HTTPSession执行下载启动指令时,先由会话调度引擎建立DownloadSession,然后由DownloadSession使用HTTPClient与流媒体视频服务器建立连接,并取得数据,然后交由存储管理完成数据存储;

3)流媒体服务提供步骤:具体为:

利用HTML5VideoPlayer根据流媒体视频URL与HTTPServer建立连接,其中所述URL带token参数,用于验证访问有效性;

所述HTTPServer向会话调度引擎发送HTTPSession创建请求,会话调度引擎建立HTTPSession;

所述HTTPSession进行三步操作:第一步,访问合法性验证,即将token交由HTTPClient向Token认证中心进行验证,验证不通过,则响应错误结果,验证通过,则继续下一步服务;第二步,流媒体数据获取,首先交由存储管理检查数据是否存在,如果存在,则直接进行下一步,如果不存在,则让HTTPClient按块向流媒体视频服务器获取数据,并交由存储管理进行数据存储;第三步,流媒体数据响应,从存储管理中取得流媒体数据,组成数据流,响应给HTML5VideoPlayer。

在上述步骤中,缓存位置的选择方法是使用存储空间最大的SD卡作为缓存卡,具体为:从系统读取SD卡列表与相应信息,对比并找到存储空间最大的SD卡路径,然后创建数据存储目录;

数据缓存分为预先存储与边播边存储两种,在网络环境较好的情况下可预先下载并存储,在网络不稳定或无网的环境下观看;在网络环境好的情况下边播边存储。

进一步地,针对边播边存储的方式,在取得流媒体视频文件头数据后,先解析出视频文件的平均比特率,然后做适量的增量调整以确定一个合理的限速值,根据这个值进行数据请求限速。

本发明移动流媒体离线缓存代理包含移动端应用层、接口层、缓存代理层与数据层,其中,缓存代理层为该应用的主体,缓存代理采用存储技术、碎片技术、限速技术、视频拖动技术与数据加密验证安全技术,实现存储最优路径选择、快速索引建立、及时数据更新、最佳数据淘汰、安全数据存储、播放极速响应等,做到了数据防拷贝、防篡改与防盗链功能,具体有益效果如下:

(1)在移动终端上,流媒体回看时,播放流畅无卡顿,大大提升用户终极体验;

(2)移动流媒体边下载边播的过程中,根据视频比特率大小确定下载速度,既保证了流畅播放,又节省了服务器带宽;

(3)移动流媒体预缓存完成后,无死角,随时随地均可观看,极大地拓展了移动流媒体的应用;

(4)移动流媒体访问采用中心统一验证方式,且移动端本地数据信息与数据块采用可逆HASH加密方法,确保了数据的安全性。

附图说明

图1为一种基于HTTP代理的移动流媒体离线缓存系统结构图;

图2为一种基于HTTP代理的移动流媒体离线缓存方法流程图;

图3为一种数据文件结构图;

图4为一种Metadata信息存储结构图;

图5为一种数据存储原理图;

图6为一种数据块结构图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

如图1所示为一种基于HTTP代理的移动流媒体离线缓存系统,包括移动端应用层,接口层,缓存代理层,数据层,其中:

所述移动端应用层,采用代码兼容技术使移动流媒体缓存的各个功能模块代码都能在Android、iOS、WindowsCE平台上运行;

所述接口层包含API接口与WebServices接口;所述API接口实现移动平台应用的兼容调用,完成代理启动、停止、设置路径的功能;所述WebServices接口采用HTTP调用方式实现下载任务启动、停止、信息读取、缓存清理的功能;

所述缓存代理层包含HTTP代理、会话调度引擎、存储管理与数据安全管理;所述HTTP代理采用HTTP标准协议,实现HTTP服务端与HTTP客户端功能;所述会话调度引擎实现会话管理功能,并完成流媒体视频请求与相应调度工作;所述存储管理实现数据索引、存储、淘汰与删除功能;所述数据安全管理用于实现数据索引单向加密,数据信息可逆加解密,数据分片HASH加解密的功能;

在数据索引中,所述数据索引存储于相应的数据文件中,包含文件索引与文件块索引,其中,所述文件索引采用红黑平衡树算法建立缓存文件索引,时间复杂度为O(logn);所述文件块索引采用对象数组存储,时间复杂度为O(1);

在数据存储中,如图3、图4所示,同一个文件的数据块存储在同一个数据文件里,数据文件由文件Metadata信息与文件数据组成,所述文件Metadata信息包含校验值、版本、缓存方式、视频类型、原文件大小、原文件修改时间属性、原文件最后访问时间与原文件最后未访问周期;其中,数据块采用固定大小存储,存储顺序采用HASH方式,如图5所示,假设视频文件大小为Fsize,数据块大小为Ksize,数据块序号为Knum,HASH函数基数为Nbase,数据块数量Dnum=Fsize/Ksize+(Fsize%Ksize?1:0),则数据块分组数量Nnum=Dnum/Nbase+(Dnum%Nbase?1:0),数据块所在组编号为Narray=Knum%Dnum,相同组内的数据块按顺序存储,数据分组之间也按顺序存储;根据数据存储原理可知,设定了数据块大小与HASH函数基数,并取得了视频文件大小后,数据块之间的存储顺序与相对位置就可以确定;

数据更新时,根据文件修改时间属性更新文件,视频文件第一次取得时,在数据文件的Metadata中存储源文件修改时间属性,当该文件再次被访问时,先与源视频服务器对应文件对比修改时间属性,如果不相同,则更新本地对应存储数据;

在存储淘汰时,所述数据淘汰包含时效与LRU两种策略,这两种策略结合使用,当数据存储超过最后未访问时限时,数据被自动清除;如果数据访问未到达最后未访问时限,但是存储空间已不足,则使用LRU算法淘汰最久且最少访问的缓存文件;

所述数据碎片技术将数据拆分成固定大小的数据块进行存储,为了降低磁盘读写对缓存代理产生的影响,这个数据块的大小不宜过大,也不宜过小,经过反复测试,结果为数据块的大小在256KB~2MB之间最合适;

传统文件下载如果分块下载则是以块为单位进行请求的,据统计,流媒体应用响应速度在2秒以内为最佳,大于2秒且小于10秒勉强接受,大于10秒会被放弃,所以,流媒体的请求必须以数据块的任意位置开始请求,且在数据块里也可以存储,参照上面的情况,数据块的存储格式如图6所示,所述数据块由块头与块体组成,块头包含块数据的单向加密校验值、块数据的长度与块数据的有效偏移量,其中,元数据和块头均采用DES3可逆加密算法进行加密存储;

所述数据层包含流媒体视频格式解析与数据存储,用于实现流媒体视频格式解析,以及根据视频拖动请求进行视频流重组的功能,其支持视频HTTP方式的拖动请求,视频拖动是一个基本技术要求,对移动流媒体点播也同样如此,移动流媒体缓存包含视频格式的解析功能,能够重组视频格式文件与数据流,支持视频HTTP方式的拖动请求,例如FLASH播放器以HTTP流方式播放MP4、FLV等;

在上述技术方案中,Metadata信息数据采用DES3可逆加密算法进行加密存储,保证了数据的安全性,其中,Metadata本身的校验值字段,用于验证Metadata信息数据的正确性,防止数据被修改;数据块头信息也采用DES3可逆加密算法进行加密存储,保证了数据的安全性,其中,数据块块头本身的校验值字段,也用于验证数据块信息数据的正确性,防止数据被修改;视频访问时,URL中都会带一个验证Token,移动流媒体缓存代理取得Token后,将提交给Token认证中心,验证不通过,则禁止访问,验证通过,则继续提供流媒体数据流服务,结合上面的3个安全技术手段,做到了数据防拷贝、防篡改与防盗链功能;

本移动流媒体缓存代理适用于Android、iOS、WindowsCE等移动平台,开发系统涉及Windows、Linux、MacOSX等,开发主要涉及的编程语言包含C++、Java、ObjectiveC++等,主要涉及的开发工具包含MicrosoftVisualStudio2010、gcc/g++、Xcode6.3.2与clang/clang++。

本发明还提供利用上述基于HTTP代理的移动流媒体离线缓存系统进行离线缓存的方法,其特殊之处在于,包括以下步骤:

1)缓存模块调用步骤:移动APP调用缓存代理提供的API接口初始化、启动与停止,所述Android采用JNI实现,所述iOS采用ObjectiveC++实现;

2)WebServices调用步骤:具体为:

移动APP调用缓存代理提供的WebServices接口连接HTTPServer;

所述HTTPServer向会话调度引擎发送HTTPSession创建请求,会话调度引擎建立HTTPSession;

所述HTTPSession执行下载启动、停止、信息读取与清除缓存指令,其中,所述HTTPSession执行下载启动指令时,先由会话调度引擎建立DownloadSession,然后由DownloadSession使用HTTPClient与流媒体视频服务器建立连接,并取得数据,然后交由存储管理完成数据存储;

3)流媒体服务提供步骤:具体为:

利用HTML5VideoPlayer根据流媒体视频URL与HTTPServer建立连接,其中所述URL带token参数,用于验证访问有效性;

所述HTTPServer向会话调度引擎发送HTTPSession创建请求,会话调度引擎建立HTTPSession;

所述HTTPSession进行三步操作:第一步,访问合法性验证,即将token交由HTTPClient向Token认证中心进行验证,验证不通过,则响应错误结果,验证通过,则继续下一步服务;第二步,流媒体数据获取,首先交由存储管理检查数据是否存在,如果存在,则直接进行下一步,如果不存在,则让HTTPClient按块向流媒体视频服务器获取数据,并交由存储管理进行数据存储;第三步,流媒体数据响应,从存储管理中取得流媒体数据,组成数据流,响应给HTML5VideoPlayer。

在上述步骤中,缓存位置的选择方法是使用存储空间最大的SD卡作为缓存卡,具体为:从系统读取SD卡列表与相应信息,对比并找到存储空间最大的SD卡路径,然后创建数据存储目录;

数据缓存分为预先存储与边播边存储两种,在网络环境较好的情况下可预先下载并存储,在网络不稳定或无网的环境下观看;在网络环境好的情况下边播边存储;

数据下载限速主要针对边播边存储的方式,因为在这种方式下,只要保证视频播放流畅即可,根据流媒体视频播放的特点,视频的平均比特率就代表了视频正常播放时每秒所需要数据的最小流量,因此,在取得流媒体视频文件头数据后,先解析出视频文件的平均比特率,然后做适量的增量调整以确定一个合理的限速值,根据这个值就可以进行数据请求限速,这种限速方式,既可以保证视频流畅播放,又可以节约服务器带宽成本。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号