当前位置:文档之家› 视频缓存的实现方法

视频缓存的实现方法

对于许多出口带宽不足的集团宽带用户(如小区宽带运营商、学校、网吧、酒店等),会被推荐使用一种视频缓存网络缓存加速的产品,特别是用户通过网络看流媒体视频较多用户,更需要这个视频缓存产品,那这样视频缓存产品究竟能起什么作用呢?
1.网络缓存的作用
网络缓存加速产品是一种基于“以存储空间换带宽,重复流量再利用”原理而开发产品,缓存系统能够将网络中的热点资源下载并存储在本地,实现热点资源本地化读取。

我们看一个网络在网络缓存系统部署前后效果来理解网络缓存系统的作用:
从图示可知,网络缓存系统有2大作用:
第一:能对网络中大文件如视频,音乐,下载等文件实现本地化读取,实现重复流量本地化再复用,减少外网带宽占用。

第二:因缓存数据是本地化读取,一般情况下比从外网读取快,从而实现上网加速,消除网络高峰期的卡顿的现象,提升用户体验。

2.网络缓存的工作原理
目前,市面上有代理缓存和重定向缓存2种产品,这2种缓存产品工作原理是不同的。

(1)代理缓存
代理缓存简单说通过DNS代理方式,对支持缓存网站进行强制代理,缓存有数据,直接命中发送给客户端,缓存没有数据,代理请求数据,数据先返回缓存服务器,再由缓存服务器发给客户端。

这是一种正向代理模式,从它的工作原理可知,由于是强制代理,缓存命中率较高,支持缓存内容也较多,如图片、视频、音频、下载文件等,但对网络原来干扰也较大,而且如果缓存系统一旦出现问题,会影响客户端正常上网,一般不建议网络规模较大或多ISP上网线路客户采用这种方式。

(2)重定向缓存
重定向缓存是利用缓存服务器再采集到用户上网请求后,发送302重定向包给客户端,欺骗
客户端向缓存服务器发起请求,然后有缓存服务器发送数据给客户端,如果缓存服务器中没有所需数据,客户端是正常上网,但服务器会记录链接,在网络非繁忙时段主动下载资源到缓存服务器,以便用户下次请求。

由于缓存服务器在发送302重定向包时不能阻止用户请求达到源服务器(WEB服务器),如果WEB服务器的回应包快于302包到达客户端,那么重定向便无法完成,客户端便按正常机制上网,命中不成功,这样便带来2个结果:
一是重定向缓存的命中效率比代理缓存低,而且需要客户端发起二次请求,所以不适合那些小文件缓存(如网页图片),只适合一些大的文件如视频文件、音频文件、下载文件等。

这是重定向缓存劣势所在。

二是重定向缓存对原有网络基本无干扰,即使缓存服务器不工作,也不会影响客户端上网,所以适合一些网络规模较大用户,这就是重定向缓存的优势所在。

3.流媒体缓存的优化
视频网站上的流媒体文件缓存比一般的下载文件缓存要面临更多的问题,主要问题是:
第一:缓存时需要计算流媒体数据帧偏移信息
与大文件的分片缓存不同的是流媒体文件有具体的格式,因此流媒体的分片缓存技术就显得更加复杂,其复杂度和难度主要在于从源站获取一个片段后,需要重新计算视频文件帧偏移信息,并按照分片大小进行数据对齐。

视频缓存工作流程如下
(1)用户请求帧的偏移量映射到缓存系统中该文件的帧;
(2)在缓存系统中没有该流媒体文件存在,缓存系统将回源站取回该流媒体的文件头信息,即数据帧信息表(存放数据帧偏移量);如果该流媒体文件存在则进入下一步;
(3)在缓存系统的该流媒体文件头(数据帧信息表)中检查请求帧是否已经存在缓存中,如果存在,则直接读取;如果不存在则回源去取请求帧内容;
(4)计算取回的帧在该流媒体文件中的偏移量,存入缓存系统中该流媒体文件偏移量相应位置;
(5)根据用户请求帧,重新构建流媒体文件头信息,形成流媒体片段;
(6)返回该流媒体片段请求帧给用户。

第二:流媒体防盗链保护造成需要过滤
有些网站会做一些防盗链策略,禁止代理服务器访问,一旦缓存监测到回源有保护,则发送跳转指令让用户直接回源请求,让缓存过滤掉这些视频源,避免了因为源站防盗链策略而导致用户无法获取内容的情况发生。

总之,视频缓存比一般大数据缓存困难要大,效果也差些,对视频缓存效果基本上体现了一个缓存产品水平高低了。

相关主题