著录项信息
专利名称 | 一种网络视频加载的加速方法、设备及系统 |
申请号 | CN201110044261.X | 申请日期 | 2011-02-24 |
法律状态 | 暂无 | 申报国家 | 暂无 |
公开/公告日 | 2011-06-29 | 公开/公告号 | CN102111685A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N21/858 | IPC分类号 | H;0;4;N;2;1;/;8;5;8;;;H;0;4;N;2;1;/;8;4;5查看分类表>
|
申请人 | 深信服网络科技(深圳)有限公司 | 申请人地址 | 广东省深圳市南山区学苑大道1001号南山智园A1栋一层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深信服网络科技(深圳)有限公司,深信服科技股份有限公司 | 当前权利人 | 深信服网络科技(深圳)有限公司,深信服科技股份有限公司 |
发明人 | 陈钊毅;李海柳 |
代理机构 | 深圳市顺天达专利商标代理有限公司 | 代理人 | 易钊 |
摘要
本发明公开了一种网络视频加载的加速方法、设备及系统。所述方法包括:S1、从客户端接收视频请求信息,并将所述视频请求信息发送给视频服务器;S2、从所述视频服务器接收所请求视频的视频数据流;S3、接收到预定大小的视频片段后,根据所述视频片段计算所请求视频的标识码,所述标识码能唯一标识所述视频;S4、根据所述标识码查找已缓存的视频,若找到与所述标识码匹配的视频数据,停止从视频服务器接收视频数据流,并将查找到的视频数据发送给客户端;若没有找到与所述标识码匹配的视频数据,继续从所述视频服务器接收视频数据流,缓存接收的视频数据,并将所述视频数据传送给所述客户端。本发明节省了网络带宽,提高了视频下载速度。
1.一种网络视频加载的加速方法,其特征在于,包括以下步骤:
S1、从客户端接收视频请求信息,并将所述视频请求信息发送给视频服务器;
S2、从所述视频服务器接收所请求视频的视频数据流;
S3、接收到预定大小的视频片段后,根据所述视频片段计算所请求视频的标识码,所述标识码能唯一标识所述视频;
S4、根据所述标识码查找已缓存的视频,若找到与所述标识码匹配的视频数据,停止从视频服务器接收视频数据流,并将查找到的视频数据发送给客户端;若没有找到与所述标识码匹配的视频数据,继续从所述视频服务器接收视频数据流,缓存接收的视频数据,并将所述视频数据传送给所述客户端。
2.根据权利要求1所述的网络视频加载的加速方法,其特征在于,步骤S1中进一步包括:
S11、从客户端接收请求信息;
S12、根据所述请求信息使用的传输协议解析所述请求信息,判断所述请求信息是否为视频请求,若是,执行步骤S13;
S13、将所述请求信息发送给视频服务器。
3.根据权利要求1所述的网络视频加载的加速方法,其特征在于,标识码的计算为:从所述视频片段中取表示视频参数信息的若干个字节和表示视频实际内容的若干个字节作为该视频的标识码,或者根据这些字节计算其MD5值、SHA-1值作为该视频的标识码。
4.根据权利要求1-3中任一项所述的网络视频加载的加速方法,其特征在于,步骤S3中还包括接收所述视频片段后,根据所述视频片段判断所述视频的格式。
5.根据权利要求4所述的网络视频加载的加速方法,其特征在于,步骤S3中计算所请求视频的标识码具体包括:所述视频为FLV格式,从接收的表示参数信息的标签中提取前M个字节,从接收的表示视频数据的标签中提取前N个字节,根据这些字节计算所述标识码。
6.根据权利要求4所述的网络视频加载的加速方法,其特征在于,步骤S3中计算所请求视频的标识码具体包括:所述视频为MP4格式,从接收的表示参数信息的盒子中提取前X个字节,从接收的表示视频数据的标签中提取前Y个字节,根据这些字节计算所述标识码。
7.一种网络视频加载的加速设备,其特征在于,包括:
通信模块,用于与客户端和视频服务器间进行视频请求信息和视频数据的通信;
存储模块,用于缓存视频数据;
标识码计算模块,用于从所述通信模块接收来自视频服务器的视频的片段,根据所述视频片段计算所请求视频的标识码,所述标识码能唯一标识所述视频;
匹配模块,用于根据所述标识码查找所述存储模块中缓存的视频,并用于在找到与所述标识码匹配的视频数据时发送匹配信息给所述通信模块,所述匹配信息用于使所述通信模块停止从视频服务器接收视频数据流并将查找到的视频数据发送给客户端,所述匹配模块还用于在没有找到与所述标识码匹配的视频数据时发送无匹配信息,所述无匹配信息用于使所述通信模块继续从所述视频服务器接收视频数据流、将接收的视频数据缓存到所述存储模块中以及将所述视频数据传送给所述客户端。
8.根据权利要求7所述的网络视频加载的加速设备,其特征在于,还包括请求信息判断模块,用于根据传输协议解析所述通信模块接收的请求信息,并判断所述请求信息是否为视频请求,若是,发送反馈信息给所述通信模块,使所述通信模块将所述请求信息发送给所述视频服务器。
9.根据权利要求7所述的网络视频加载的加速设备,其特征在于,标识码计算模块具体用于从所述视频片段中取表示视频参数信息的若干个字节和表示视频实际内容的若干个字节作为该视频的标识码,或者根据这些字节计算其MD5值、SHA-1值作为该视频的标识码。
10.一种网络视频加载的加速系统,其特征在于,包括客户端、视频服务器以及如权利要求7-9中任一项所述的网络视频加载的加速设备,所述客户端、加速设备和视频服务器依次通信相连。
一种网络视频加载的加速方法、设备及系统\n技术领域\n[0001] 本发明涉及网络视频点播技术,尤其涉及一种网络视频加载的加速方法、设备及系统。\n背景技术\n[0002] 随着互联网技术的发展,人们对网页响应速度的要求越来越高,尤其是进行网络视频点播时,希望视频加载的速度越快越好。现有技术中一般采用Web缓存加速的方法来实现视频加载的加速。Web缓存加速是指在内网完成第一次到某网页的请求之后,将响应的数据缓存到缓存服务器中,当内网其他用户访问相同的外网资源时,直接由缓存服务器发送数据给请求者,因此无需再次从互联网上请求及下载该资源。现有技术中,Web缓存加速一般是通过计算URL(Universal Resource Locator,统一资源定位符,也称为网页地址)的散列值或其他能标示URL数据内容唯一性的值(例如URL的MD5值、URL的SHA-1值、URL字符串本身等)来查找缓存对象的,只要URL的散列值或其他能标示数据内容唯一性的值匹配,就能直接从缓存服务器中加载该视频。\n[0003] 但是,为了加强网络安全,对于web视频应用,一些主流视频网站对视频的URL做了防盗链的处理。防盗链是一种采用服务器端编程,通过URL过滤技术实现的防止盗链的软件。使用防盗链后,访问同一视频的URL是不同的,导致无法通过URL查找到视频缓存对象,无法快速加载网络视频。\n发明内容\n[0004] 本发明要解决的技术问题在于,针对现有技术无法绕过防盗链实现视频加载的加速这一缺陷,提供一种能绕过防盗链实现网络视频加载的加速的方法、设备及系统。\n[0005] 本发明解决其技术问题所采用的技术方案是:\n[0006] 提供一种网络视频加载的加速方法,包括以下步骤:\n[0007] S1、从客户端接收视频请求信息,并将所述视频请求信息发送给视频服务器;\n[0008] S2、从所述视频服务器接收所请求视频的视频数据流;\n[0009] S3、接收到预定大小的视频片段后,根据所述视频片段计算所请求视频的标识码,所述标识码能唯一标识所述视频;\n[0010] S4、根据所述标识码查找已缓存的视频,若找到与所述标识码匹配的视频数据,停止从视频服务器接收视频数据流,并将查找到的视频数据发送给客户端;若没有找到与所述标识码匹配的视频数据,继续从所述视频服务器接收视频数据流,缓存接收的视频数据,并将所述视频数据传送给所述客户端。\n[0011] 本发明一种网络视频加载的加速方法中,步骤S1中进一步包括:\n[0012] S11、从客户端接收请求信息;\n[0013] S12、根据所述请求信息使用的传输协议解析所述请求信息,判断所述请求信息是否为视频请求,若是,执行步骤S13;\n[0014] S13、将所述请求信息发送给视频服务器。\n[0015] 本发明一种网络视频加载的加速方法中,标识码的计算为:从所述视频片段中取表示视频参数信息的若干个字节和表示视频实际内容的若干个字节作为该视频的标识码,或者根据这些字节计算其MD5值、SHA-1值作为该视频的标识码。\n[0016] 本发明一种网络视频加载的加速方法中,步骤S3中还包括接收所述视频片段后,根据所述视频片段判断所述视频的格式。\n[0017] 本发明一种网络视频加载的加速方法中,步骤S3中计算所请求视频的标识码具体包括:所述视频为FLV格式,从接收的表示参数信息的标签中提取前M个字节,从接收的表示视频数据的标签中提取前N个字节,根据这些字节计算所述标识码。\n[0018] 本发明一种网络视频加载的加速方法中,步骤S3中计算所请求视频的标识码具体包括:所述视频为MP4格式,从接收的表示参数信息的盒子中提取前X个字节,从接收的表示视频数据的标签中提取前Y个字节,根据这些字节计算所述标识码。\n[0019] 本发明还提供了一种网络视频加载的加速设备,包括:\n[0020] 通信模块,用于与客户端和视频服务器间进行视频请求信息和视频数据的通信;\n[0021] 存储模块,用于缓存视频数据;\n[0022] 标识码计算模块,用于从所述通信模块接收来自视频服务器的视频的片段,根据所述视频片段计算所请求视频的标识码,所述标识码能唯一标识所述视频;\n[0023] 匹配模块,用于根据所述标识码查找所述存储模块中缓存的视频,并用于在找到与所述标识码匹配的视频数据时发送匹配信息给所述通信模块,所述匹配信息用于使所述通信模块停止从视频服务器接收视频数据流并将查找到的视频数据发送给客户端,所述匹配模块还用于在没有找到与所述标识码匹配的视频数据时发送无匹配信息,所述无匹配信息用于使所述通信模块继续从所述视频服务器接收视频数据流、将接收的视频数据缓存到所述存储模块中以及将所述视频数据传送给所述客户端。\n[0024] 本发明一种网络视频加载的加速设备中,还包括请求信息判断模块,用于根据传输协议解析所述通信模块接收的请求信息,并判断所述请求信息是否为视频请求,若是,发送反馈信息给所述通信模块,使所述通信模块将所述请求信息发送给所述视频服务器。\n[0025] 本发明一种网络视频加载的加速设备中,标识码计算模块具体用于从所述视频片段中取表示视频参数信息的若干个字节和表示视频实际内容的若干个字节作为该视频的标识码,或者根据这些字节计算其MD5值、SHA-1值作为该视频的标识码。\n[0026] 本发明一种网络视频加载的加速设备中,包括客户端、视频服务器以及上述网络视频加载的加速设备,所述客户端、加速设备和视频服务器依次通信相连。\n[0027] 本发明一种网络视频加载的加速方法、设备及系统的有益效果为:通过对视频数据的若干个字节进行相关计算,以计算结果作为标识码来标识该视频,再通过对视频的标识码进行匹配判断,可以查找到已经缓存了的视频,从而绕过视频防盗链,实现视频请求的直接回复,而不用再到视频服务器上获取。本发明节省了网络带宽,提高了视频下载速度。\n附图说明\n[0028] 下面将结合附图及实施例对本发明作进一步说明,附图中:\n[0029] 图1是根据本发明一个实施例的网络视频加载的加速系统的结构示意图;\n[0030] 图2是根据本发明一个实施例的网络视频加载的加速设备的结构示意图;\n[0031] 图3是根据本发明另一个实施例的网络视频加载的加速设备的结构示意图;\n[0032] 图4是根据本发明一个实施例的网络视频加载的加速方法的流程图;\n[0033] 图5是根据本发明另一个实施例的网络视频加载的加速方法的流程图;\n[0034] 图6是根据本发明一个实施例的FLV格式视频的FLV文件头的示意图;\n[0035] 图7是根据本发明一个实施例的MP4格式视频的MP4文件头的示意图;\n[0036] 图8是根据本发明一个实施例的FLV格式视频的标签的示意图。\n具体实施方式\n[0037] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0038] 图1是根据本发明一个实施例的网络视频加载的加速系统的结构示意图。在本实施例中,网络视频加载的加速系统包括客户端100、加速设备200和视频服务器300。客户端100与加速设备200通过有线和/或无线链路通信相连,加速设备200和视频服务器300间通过通信网络(例如,因特网)进行视频的通信。\n[0039] 客户端100可以是具有视频播放功能的各种终端电子设备,例如台式电脑、笔记本、上网本等。用户可以通过客户端100输入各种请求信息,包括视频请求信息,以便加载所请求的视频进行播放。\n[0040] 加速设备200可以是具有缓存功能的集成电路、包含软件代码的硬件和/或装置。\n加速设备200可以集成于客户端100中,也可以置于客户端100外。一个加速设备200可以与一个客户端100相连,也可以与一个内网中的多个客户端100相连。加速设备200将在下文参考图2和3进行详细描述。\n[0041] 视频服务器300可以是存储有大量视频的存储设备,包括优酷网视频服务器、土豆网视频服务器、PPS视频服务器等。视频服务器可以通过各种通信网络与加速设备200相连,例如因特网、局域网、城域网、广域网等,并根据各种通信协议(例如HTTP协议等)与加速设备200进行视频的通信。\n[0042] 在工作过程中,用户通过客户端100输入视频请求,加速设备200从客户端100接收并解析该视频请求,将该视频请求发送给相应的视频服务器300,并从视频视频服务器\n300接收所请求视频的视频数据流,接收到预定大小的视频片段后,根据该视频片段计算能唯一标识该视频片段的所请求视频的标识码,然后根据该标识码查找已缓存的视频,若找到与该标识码匹配的视频数据,则停止从视频服务器300接收视频数据流,并将查找到的视频数据发送给客户端100,若没有找到与该标识码匹配的视频数据,则继续从视频服务器\n300接收视频数据流,缓存接收的视频数据,并将该视频数据传送给客户端100。\n[0043] 虽然图1只示出了一个客户端100、一个加速设备200以及一个视频服务器300依次通信相连的直线拓扑结构,但这仅仅是为了简化说明的目的,而不用于限制本发明。在本发明的实施例中,可以包括各种其它拓扑结构,例如在线、旁路、单臂、WCCP(Web Cache Communication Protocol,网页缓存通信协议)镜像、策略路由分发、负载分发等,一个加速设备可以和一个或多个客户端通过有线和/或无线链路连接,也可以通过通信网络与一个或多个视频服务器连接。一个视频服务器也可以通过通信网络同时与一个或多个加速设备连接。\n[0044] 本发明提供的网络视频加载的加速系统通过使用具有缓存功能并能根据视频内容特征识别视频的加速设备200,能够绕过防盗链在已缓存的视频文件中查找相同的视频文件,并在找到后将缓存的视频数据传送给客户端100,从而实现视频加载的加速。这样不仅能加快客户端加载视频的速度,还能减轻视频服务器的负担,减小带宽使用率。\n[0045] 图2是根据本发明一个实施例的网络视频加载的加速设备200A的结构示意图。在本实施例中,网络视频加载的加速设备200A包括通信模块210、存储模块220、标识码计算模块230和匹配模块240。\n[0046] 通信模块210,用于从客户端100接收视频请求信息并向客户端100发送所请求的视频,还用于向视频服务器300发送接收自客户端100的视频请求信息并从视频服务器\n300接收所请求视频的视频数据流。\n[0047] 存储模块220,用于缓存通过通信模块210从视频服务器300接收的视频数据。这些视频数据根据计算得出的标识码进行标记,以便进行视频匹配。存储模块220可以是例如但不限于硬盘、磁盘、光盘、闪存等存储设备。\n[0048] 标识码计算模块230,用于从通信模块210接收来自视频服务器300的视频的片段,该视频片段的长度可以预先设置,例如2000字节、10000字节等。标识码计算模块230可以根据该视频片段计算所请求视频的标识码,该标识码能唯一标识该视频片段。例如,标识码计算模块230可以从该视频片段中取表示视频参数信息(例如文件大小、播放时间、每个帧的位置等)的若干个字节(例如1000字节)和表示视频实际内容的若干个字节(例如500字节)作为该视频的标识码,也可以根据这些字节计算其MD5值、SHA-1值等能唯一标识该视频片段的值和/或字符串作为该视频的标识码。注意,每次选取表示视频参数信息的若干个字节时起始位置和选取长度必须相同(例如,取该内容的前1000字节),每次选取表示视频实际内容的若干个字节时起始位置和选取长度也必须相同(例如,去该内容的前500字节)。应当理解,上述前1000字节、前500字节仅仅是为了解释说明,而不用于限制本发明,在本发明的实施例中,可以包括任意合适的选取方法,例如从表示视频实际内容的第100个字节开始取1200个字节等。而且本发明并不限于选取表示视频参数信息的数据和表示视频实际内容的数据进行计算,还可以选择其他任意类型的数据和/或其组合进行计算,只要计算结果能唯一标识该视频。\n[0049] 匹配模块240,用于根据标识码计算模块230计算得到的标识码在存储模块220中查找已缓存的视频,并用于在找到与该标识码匹配的视频数据时发送匹配信息给通信模块\n210,该匹配信息可以用于使通信模块210停止从视频服务器接收视频数据流并将查找到的视频数据发送给客户端,匹配模块240还用于在没有找到与该标识码匹配的视频数据时发送无匹配信息给通信模块210,无匹配信息可以用于使通信模块210继续从视频服务器接收视频数据流,并使通信模块将接收的视频数据缓存到存储模块220中以及将该视频数据传送给客户端。\n[0050] 图3是根据本发明另一个实施例的网络视频加载的加速设备200B的结构示意图。\n在本实施例中,网络视频加载的加速设备200B可以包括通信模块210、存储模块220、标识码计算模块230、匹配模块240和请求信息判断模块250。\n[0051] 通信模块210,用于从客户端接100收请求信息并将该请求信息发送给请求信息判断模块250以判断该请求信息是否为视频请求信息。通信模块210还可以从请求信息判断模块250接收反馈信息并将该请求信息发送给视频服务器300。另外,通信模块210还可以从视频服务器300接收所请求视频的视频数据流,并向客户端100发送所请求的视频。\n[0052] 请求信息判断模块250,用于根据请求信息使用的相应通信协议(例如HTTP协议)解析该请求信息,并判断该请求信息是否为视频请求。若是,请求信息判断模块250可以发送反馈信息给通信模块210,通知通信模块210将该请求信息发送给视频服务器300;\n若否,请求信息判断模块250可以发送表示该请求为非视频请求的信息给通信模块210,通知通信模块210将该请求信息返回给客户端100,或不进行任何处理。\n[0053] 存储模块220,用于缓存通过通信模块210从视频服务器300接收的视频数据。这些视频数据根据计算得出的标识码进行标记,以便进行视频匹配。存储模块220可以是例如但不限于硬盘、磁盘、光盘、闪存等存储设备。\n[0054] 标识码计算模块230,用于从通信模块210接收来自视频服务器300的视频的片段,该视频片段的长度可以预先设置,例如2000字节、10000字节等。标识码计算模块230还可以用于根据该视频片段判断该视频的格式。视频的格式可以包括FLV格式、MP4格式、MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流的视频网站的视频都是FLV和MP4这两种格式。图6是根据本发明一个实施例的FLV格式视频的FLV文件头的示意图。图7是根据本发明一个实施例的MP4格式视频的MP4文件头的示意图。从图6和7可以看出,视频的格式一般包含在视频文件头中,例如FLV文件头中包含“FLV”这一字段来表示该文件的格式,MP4文件头中包含“ftypisom”这一字段来表示该文件的格式。标识码计算模块\n230可以根据接收自视频服务器的视频的片段(即其文件头)判断该视频的格式。下面将针对这两种格式的视频文件对标识码计算模块230进行详细描述。\n[0055] 对于FLV格式的视频文件,按照协议标准,由FLV文件头(FLV Header)和若干个标签(tag)组成。标签又可以分成三类:audio、video和script,分别代表音频流、视频流和脚本流。FLV视频数据中的第一个标签(也就是Metadata tag)包含了该视频文件的所有参数信息(如文件大小、播放时间、每个关键帧的时间和偏移量等),对于不同的FLV视频,Metadata tag的内容都不相同。但对于拖动视频的情况,即拖动视频进度条到未缓冲的位置时,服务器响应的视频内容的Metadata tag是一样的。为避免冲突,标识码计算模块\n230可以从Metadata tag中取前若干个字节(以1000字节为例)内容并跳到最近的video tag取前若干个字节内容(以500字节为例,注意,此时取的是视频播放数据)来计算该视频的标识码,以保证计算出来的标识码的唯一性。标识码可以是所选取的这些字节内容本身,也可以是其它能唯一标识该视频片段的值,例如MD5值、SHA-1值等散列值。\n[0056] 对于MP4格式的视频文件,与FLV不同,是把所有数据封装在若干个盒子(box)中,每个视频文件一般由“ftyp”、“moov”、“mdat”这三种类型的盒子组成。在每个盒子的头部指明了该盒子的大小和类型,这样就可以找到每个盒子的位置。在“moov”里面记录了该视频文件的所有参数信息(如文件创建时间、播放时间、每个帧位置等)。“mdat”里则保存的是实际的视频数据。同样,可以取“moov”前若干个字节的内容并跳到“mdat”取前若干个字节的内容来计算该视频的标识码,以保证计算出来的标识码的唯一性。标识码可以是所选取的这些字节内容本身,也可以是其它能唯一标识该视频片段的值,例如MD5值、SHA-1值等散列值。\n[0057] 匹配模块240,用于根据标识码计算模块230计算得到的标识码在存储模块220中查找已缓存的视频,并用于在找到标识码相同的视频数据时发送匹配信息给通信模块210,该匹配信息可以用于使通信模块210停止从视频服务器300接收视频数据流并将查找到的视频数据发送给客户端100,匹配模块240还用于在没有找到相同标识码的视频数据时(即首次访问该视频时)发送无匹配信息给通信模块210,无匹配信息可以用于使通信模块210继续从视频服务器300接收视频数据流,并使通信模块210将接收的视频数据插入到存储模块220中以及将该视频数据传送给客户端100。匹配模块240还可以用于生成缓存视频列表,在缓存视频列表中记载有所有已缓存视频的标识码及该视频在存储模块210中的位置。缓存视频列表中还可以包括已缓存视频的热点信息(即该视频被请求的次数),当存储模块210的存储空间不够时,可以根据热点信息丢弃较冷门的视频,存储热点视频。\n[0058] 在工作过程中,通信模块210从客户端100接收请求信息并将该请求信息发送给请求信息判断模块250。请求信息判断模块250根据请求信息使用的相应通信协议(例如HTTP协议)解析该请求信息,并判断该请求信息是否为视频请求。若是,请求信息判断模块250可以发送反馈信息给通信模块210,通知通信模块210将该请求信息发送给视频服务器300;若否,请求信息判断模块250可以发送表示该请求为非视频请求的信息给通信模块\n210,通知通信模块210将该请求信息返回给客户端100,或不进行任何处理。\n[0059] 通信模块210将视频请求发送给视频服务器300后,可以从视频服务器300接收所请求视频的视频数据流,并将接收的一定长度的视频片段传送给标识码计算模块230。标识码计算模块230可以根据该视频片段判断该视频的格式。视频的格式可以包括FLV格式、MP4格式、MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流的视频网站的视频都是FLV和MP4这两种格式。标识码计算模块230可以根据该视频片段针对不同视频格式进行不同处理,以计算所请求视频的标识码。例如,标识码计算模块230可以从该视频片段中取表示视频参数信息(例如文件大小、播放时间、每个帧的位置等)的若干个字节(例如1000字节)和表示视频实际内容的若干个字节(例如500字节)作为该视频的标识码,也可以根据这些字节计算其MD5值、SHA-1值等能唯一标识该视频片段的值和/或字符串作为该视频的标识码。注意,每次选取表示视频参数信息的若干个字节时起始位置和选取长度必须相同(例如,取该内容的前1000字节),每次选取表示视频实际内容的若干个字节时起始位置和选取长度也必须相同(例如,去该内容的前500字节)。应当理解,上述前1000字节、前500字节仅仅是为了解释说明,而不用于限制本发明,在本发明的实施例中,可以包括任意合适的选取方法,例如从表示视频实际内容的第100个字节开始取1200个字节等。而且本发明并不限于选取表示视频参数信息的数据和表示视频实际内容的数据进行计算,还可以选择其他任意类型的数据和/或其组合进行计算,只要计算结果能唯一标识该视频。\n[0060] 然后,匹配模块240可以根据标识码计算模块230计算得到的标识码在存储模块\n220中查找已缓存的视频。若找到与该标识码匹配的视频数据(即标识码相同),则发送匹配信息给通信模块210,通信模块210接收到匹配信息后,停止从视频服务器300接收视频数据流并将查找到的视频数据发送给客户端100。若没有找到与该标识码匹配的视频数据(即无标识码相同的视频),则发送无匹配信息给通信模块210,通信模块210接收到无匹配信息后,继续从视频服务器300接收视频数据流,将接收的视频数据缓存到存储模块220中,并将该视频数据传送给客户端100。\n[0061] 本发明提供的网络视频加载的加速设备通过根据视频内容特征计算能唯一标识视频文件的标识码,绕过防盗链在已缓存的视频文件中查找相同的视频文件,并在找到后将缓存的视频数据传送给客户端,从而实现视频加载的加速。这样不仅能加快客户端加载视频的速度,还能减轻视频服务器的负担,减小带宽使用率。\n[0062] 图4是根据本发明一个实施例的网络视频加载的加速方法的流程图。在本实施例中,网络视频加载的加速方法开始于步骤S1。在步骤S1中,从客户端接收视频请求信息,并将视频请求信息发送给视频服务器。\n[0063] 在步骤S2中,从视频服务器接收所请求视频的视频数据流。\n[0064] 在步骤S3中,接收到预定大小的视频片段后,根据视频片段计算能唯一标识所请求视频的标识码。例如,从该视频片段中取表示视频参数信息(例如文件大小、播放时间、每个帧的位置等)的若干个字节(例如1000字节)和表示视频实际内容的若干个字节(例如500字节)作为该视频的标识码,也可以根据这些字节计算其MD5值、SHA-1值等能唯一标识该视频片段的值和/或字符串作为该视频的标识码。注意,每次选取表示视频参数信息的若干个字节时起始位置和选取长度必须相同(例如,取该内容的前1000字节),每次选取表示视频实际内容的若干个字节时起始位置和选取长度也必须相同(例如,去该内容的前500字节)。应当理解,上述前1000字节、前500字节仅仅是为了解释说明,而不用于限制本发明,在本发明的实施例中,可以包括任意合适的选取方法,例如从表示视频实际内容的第100个字节开始取1200个字节等。而且本发明并不限于选取表示视频参数信息的数据和表示视频实际内容的数据进行计算,还可以选择其他任意类型的数据和/或其组合进行计算,只要计算结果能唯一标识该视频。\n[0065] 在步骤S4中,根据计算出的标识码查找已缓存的视频。若找到与该标识码匹配的视频数据,则停止从视频服务器接收视频数据流,并将查找到的视频数据发送给客户端。若没有找到与该标识码匹配的视频数据,则继续从视频服务器接收视频数据流,缓存接收的视频数据,并将接收的视频数据传送给客户端。\n[0066] 图5是根据本发明另一个实施例的网络视频加载的加速方法的流程图。在本实施例中,网络视频加载的加速方法开始于步骤501。在步骤501中,接收表示请求信息的URL。\n[0067] 在步骤502中,根据相应传输协议(例如HTTP协议)解析接收的URL,并判断该URL是否为视频请求。以优酷为例,当客户端访问优酷视频时,服务器会将视频请求重定向到一个真实的视频地址,如:\n[0068] http://120.33.32.141/youku/156B6DF58D3377874355436A/03000801004C2B35D\n2E28C00EA0734E32EE79B-9246-2D36-3C89-F751B69ADA4D.f1v由于防盗链的作用,每次访问该视频时URL是变化的,所以无法通过URL来查找已缓存的视频。当根据URL确定该请求信息为视频请求时,继续执行步骤503。\n[0069] 在步骤503中,将视频请求(即该URL)转发给视频服务器。\n[0070] 在步骤504中,从视频服务器接收所请求视频的视频数据流。\n[0071] 在步骤505中,接收一定长度的视频片段后,根据该视频片段判断该视频的格式。\n视频片段的长度可以预先设置,只要该视频片段的内容能够唯一标识该视频文件。视频的格式可以包括FLV格式、MP4格式、MPEG格式、WMV格式、AVI格式、RMVB格式等,目前主流的视频网站的视频都是FLV和MP4这两种格式。如图6和7所示,FLV格式在文件开始有标志“FLV”,而MP4格式则有标志“ftypisom”。可以根据接收自视频服务器的视频的片段(即其文件头)判断该视频的格式。\n[0072] 若该视频为FLV格式,执行步骤506。在步骤506中,取第一个标签(Metadata tag)的前M个字节(例如但不限于前1000个字节),根据标签长度找到video tag的位置,再从video tag中取前N个字节(例如但不限于前500个字节),做内容叠加计算标识码。以保证计算出来的标识码的唯一性。标识码可以是所选取的这些字节内容本身,也可以是其它能唯一标识该视频片段的值,例如MD5值、SHA-1值等散列值。图8是根据本发明一个实施例的FLV格式视频的标签的示意图。如图8所示,高亮字体是第一个标签的头部信息,12表示类型(即script,脚本流,包含该视频的所有参数信息),001681表示该标签的长度,这样就可以根据长度找到下一个标签的位置。\n[0073] 若该视频为MP4格式,执行步骤507。在步骤507中,取“moov”盒子的前X个字节(例如但不限于前1000个字节),根据该盒子头部表示该盒子大小的信息跳到“mdat”盒子,取“mdat”盒子的前Y个字节(例如但不限于前500个字节),做内容叠加计算标识码。\n[0074] 虽然本文只针对FLV和MP4这两种格式的视频进行了详细描述,但这仅仅为了举例说明的目的,而不用于限制本发明。在本发明的实施例中,可以包括各种类型的视频格式,其计算标识码的方法与上述针对FLV和MP4格式的描述相似。\n[0075] 计算得出视频的标识码后,执行步骤508。在步骤508中,可以根据计算得到的标识码查找已缓存的视频,判断是否有与该标识码匹配的(例如相同的)视频。例如,可以生成缓存视频列表,在缓存视频列表中记载有所有已缓存视频的标识码及该视频的存储位置。缓存视频列表中还可以包括已缓存视频的热点信息(即该视频被请求的次数),当加速设备的存储空间不够时,可以根据热点信息丢弃较冷门的视频,存储热点视频。\n[0076] 若找到标识码相同的视频数据,执行步骤509。在步骤509中,加速设备停止从视频服务器接收视频数据流并将查找到的视频数据发送给客户端。\n[0077] 若没有找到相同标识码的视频数据(即首次访问该视频),则执行步骤510。在步骤510中,加速设备继续从视频服务器接收视频数据流,并将接收的视频数据缓存起来,还要将该视频数据传送给客户端。\n[0078] 本发明提供的网络视频加载的加速方法通过采用散列算法或其他类似算法(要保证对数据片段计算出来的值的唯一性,能标识出该数据片段),对视频数据的若干个字节(例如1000字节)进行计算,以计算结果来标识该视频;这样通过对视频的若干字节的相同性判断,查找到已经缓存了的视频,绕过视频防盗链,实现视频请求的直接回复,而不用再到视频服务器上获取了。本发明节省了网络带宽,提高了视频下载速度。\n[0079] 本发明提供的一种网络视频加载的加速方法、设备及系统具有实用性和通用性。\n本发明能够实现在线视频的缓存命中,达到视频加速的效果,节省用户带宽。而且,本发明可以应用于国内视频服务或国外的视频服务中,能解决视频缓存的关键疑难问题——防盗链。本发明实现视频加速是完全透明的,只是让已缓存的视频,在再次访问时能够命中,不修改任何数据,所以,不会伤害任何第三方的利益。\n[0080] 虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
法律信息
- 2020-07-03
专利权的转移
登记生效日: 2020.06.12
专利权人由深信服网络科技(深圳)有限公司变更为深信服科技股份有限公司
地址由518000 广东省深圳市南山区麒麟路1号南山科技创业服务中心418、419变更为518000 广东省深圳市南山区学苑大道1001号南山智园A1栋一层
- 2012-07-25
- 2011-09-21
实质审查的生效
IPC(主分类): H04N 21/858
专利申请号: 201110044261.X
申请日: 2011.02.24
- 2011-06-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-07-07
|
2009-01-07
| | |
2
| |
2010-08-25
|
2009-02-23
| | |
3
| |
2010-10-13
|
2010-06-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |