一种视频文件发送方法及装置的制造方法

文档序号:10555953阅读:180来源:国知局
一种视频文件发送方法及装置的制造方法
【专利摘要】本发明实施例公开了一种视频文件发送方法,所述方法包括:获取一段第一源服务器发送给第一客户端的源服务器视频流;根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;根据所述视频,获取发送给所述第一客户端的目的视频;将所述目的视频发送给所述第一客户端。所述方法能够更加精确的识别缓存服务器的缓存视频库中的视频,同时,还可以节省缓存服务器的空间。进一步的,本发明实施例还公开了一种视频文件发送装置。
【专利说明】
一种视频文件发送方法及装置
技术领域
[0001]本发明涉及数据传输领域的缓存识别技术,尤其涉及一种视频文件发送方法及装置。
【背景技术】
[0002]缓存服务器是一种连接源服务器与客户端的中继服务器,可以存储源服务器发送给客户端的视频于缓存视频库中,当下一次客户端再次请求源服务器发送该视频时,缓存服务器会首先识别出缓存视频库中的该视频,然后直接将缓存视频库中的该视频发送给客户端,从而可以缓解源服务器的压力,节省网络带宽,提高在线视频的流畅度。
[0003]目前的缓存服务器通常选取URL(UniformResource Locator,统一资源定位符)作为视频标识,对缓存视频库中的视频进行识别,所述URL由视频在源服务器中的存储路径决定。实际应用中,在缓存服务器第一次获取源服务器发送给客户端的视频时,可以同时获取与视频相对应的URL,并将此URL作为视频的索引同视频一起存储于缓存视频库中。
[0004]但是,由于源服务器具有负载均衡机制,相同的视频可以来自不同的源服务器,也可以来自同一个源服务器的不同路径下。例如,视频C可以来自源服务器H,也可以来自源服务器I,其中,视频C在源服务器H的存储路径为URLl,在源服务器I的存储路径为URL2。当缓存视频库已经存储有来自源服务器H标识为URLl的视频C时,如果客户端请求源服务器I发送视频C,即客户端请求来自URL2的视频C,此时缓存服务器无法识别出已存储的标识为URLl对应的视频C与客户端请求的来自URL2的视频C相同,因此仍然需要从源服务器I发送视频C给客户端。此时缓存服务器只是对视频G进行了转发,而没有发挥缓解源服务器I的压力的作用。另外,缓存服务器还会以URL2为标识重新存储视频G,即同时存储了两个相对应的视频F和G,造成了缓存服务器空间的浪费。

【发明内容】

[0005]为解决上述技术问题,本发明实施例期望提供一种视频文件发送方法及装置,能够更加精确的识别缓存服务器的缓存视频库中的视频,同时,还可以节省缓存服务器的空间。
[0006]本发明的技术方案是这样实现的:
[0007]本发明实施例一方面提供了一种视频文件发送方法,包括:
[0008]获取一段第一源服务器发送给第一客户端的源服务器视频流;
[0009]根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;
[0010]根据所述视频,获取发送给所述第一客户端的目的视频;
[0011 ]将所述目的视频发送给所述第一客户端。
[0012]可选的,在所述获取一段第一源服务器发送给第一客户端的源服务器视频流之前,所述方法还包括:
[0013]获取第二源服务器发送给第二客户端的视频;
[0014]根据所述视频的内容,获取所述视频的至少一个索引;
[0015]按照所述至少一个索引存储所述视频。
[0016]可选的,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数;
[0017]所述根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频包括:
[0018]根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;
[0019]确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频;
[0020]当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0021 ]可选的,所述在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频包括:
[0022]根据所述源服务器视频流第i+ Ι关键帧的内容,获取所述源服务器视频流的第二特征值;
[0023]确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频;
[0024]当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0025]可选的,所述根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频包括:
[0026]获取所述源服务器视频流预设范围的内容;
[0027]根据所述预设范围的内容,计算所述源服务器视频流的特征值;
[0028]确定所述缓存视频库中是否存在索引与所述特征值相同的视频;
[0029]当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。
[0030]可选的,所述根据所述视频,获取发送给所述第一客户端的目的视频包括:
[0031 ]根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。
[0032]本发明实施例另一方面提供了一种视频文件发送装置,包括:
[0033]第一获取单元,用于获取一段第一源服务器发送给第一客户端的源服务器视频流;
[0034]第二获取单元,用于根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;
[0035]第三获取单元,用于根据所述视频,获取发送给所述第一客户端的目的视频;
[0036]发送单元,用于将所述目的视频发送给所述第一客户端。
[0037]可选的,所述装置还包括:
[0038]第四获取单元,用于获取第二源服务器发送给第二客户端的视频;
[0039]第五获取单元,用于根据所述视频的内容,获取所述视频的至少一个索引;
[0040]存储单元,用于按照所述至少一个索引存储所述视频。
[0041 ]可选的,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数;
[0042]第二获取单元,具体用于:
[0043]根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;
[0044]确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频;
[0045]当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0046]可选的,第二获取单元,具体用于:
[0047]根据所述源服务器视频流第i+ Ι关键帧的内容,获取所述源服务器视频流的第二特征值;
[0048]确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频;
[0049]当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0050]可选的,第二获取单元,具体用于:
[0051 ]获取所述源服务器视频流预设范围的内容;
[0052]根据所述预设范围的内容,计算所述源服务器视频流的特征值;
[0053]确定所述缓存视频库中是否存在索引与所述特征值相同的视频;
[0054]当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。
[0055]可选的,第三获取单元,具体用于:
[0056]根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。
[0057]本发明实施例提供了一种视频文件发送方法及装置,包括:获取一段第一源服务器发送给第一客户端的源服务器视频流;根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;根据所述视频,获取发送给所述第一客户端的目的视频;将所述目的视频发送给所述第一客户端。相较于现有技术,缓存服务器通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
【附图说明】
[0058]图1为本发明实施例提供的一种视频文件发送方法的流程示意图1;
[0059]图2为本发明实施例提供的一种视频文件发送方法的流程示意图2;
[0060]图3为本发明实施例提供的一种视频文件发送装置的结构示意图1;
[0061]图4为本发明实施例提供的一种视频文件发送装置的结构示意图2。
【具体实施方式】
[0062]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0063]实施例一
[0064]本发明实施例提供了一种视频文件发送方法,应用于缓存服务器,所述缓存服务器与至少一个源服务器连接,同时与至少一个客户端连接,可以接收任意一个源服务器发送给任意一个客户端的视频流。所述缓存服务器的缓存视频库包括关键帧缓存视频库以及无关键帧缓存视频库。如图1所示,所述视频文件发送方法包括:
[0065]步骤101、获取一段第一源服务器发送给第一客户端的源服务器视频流。
[0066]示例的,当发送一部电影视频或一集电视连续剧视频时,由于所述视频通常较大而不利于在网络中完整传输,因此会将所述视频分成若干段较短的视频流传输。在实际应用中,当第一客户端需要播放某电影视频时,会首先向第一源服务器发送请求;然后,第一源服务器会根据请求,将该电影视频中的一段源服务器视频流发送给缓存服务器;接下来,再由缓存服务器根据该源服务器视频流生成目的视频,并发送给第一客户端。因此,缓存服务器需要首先获取一段第一源服务器发送给第一客户端的源服务器视频流。所述一段源服务器视频流可以是完整视频中P个字节的视频,也可以是完整视频中Q秒时长的视频,其中P为大于或者等于O的整数,Q为大于O的实数。
[0067]步骤102、根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频。
[0068]具体的,源服务器视频流包括信令信息和视频数据;其中信令信息是用于控制传输的信息,这些信息通常并不是用户直接需要的信息;而视频数据包括视频信息、音频信息、文本信息等,是用户直接需要的信息,因此视频数据即为源服务器视频流的内容。
[0069]由于缓存服务器在存储视频时,会首先根据视频的内容计算特征值,然后将此特征值作为视频的索引,存储该视频。因此,在获取缓存视频库中与所述源服务器视频流对应的视频时,可以首先根据源服务器视频流的内容计算特征值,当缓存视频库中存在与该特征值相同的索引时,该索引所对应的视频即为与源服务器视频流对应的视频。
[0070]步骤103、根据所述视频,获取发送给所述第一客户端的目的视频。
[0071 ]具体的,如果源服务器视频流不包括关键帧,那么,第一客户端请求的视频为完整视频,而存储于缓存视频库中的视频也为完整的视频,因此,缓存视频库中与源服务器视频流对应的视频即为目的视频。
[0072]如果源服务器视频流包括关键帧,那么,在实际应用中,第一客户端请求的视频还可能为不完整视频,例如,当第一客户端播放一部影片时,可以根据用户指示,直接从影片的中间某个时刻开始播放,此时,第一客户端请求的视频为从该时刻以后的视频,因此,缓存服务器需要截取缓存视频库中与源服务器视频流对应的视频中从该时刻以后的视频作为目的视频。
[0073]步骤104、将所述目的视频发送给所述第一客户端。
[0074]示例的,可以将目的视频分成若干段较短的视频流逐段发送给第一客户端。
[0075]这样一来,缓存服务器通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
[0076]可选的,在所述获取一段第一源服务器发送给第一客户端的源服务器视频流之前,所述方法还可以首先获取第二源服务器发送给第二客户端的视频;然后,根据所述视频的内容,获取所述视频的至少一个索引;继而,按照所述至少一个索引存储所述视频。
[0077]示例的,第二源服务器发送给第二客户端的视频可以为包括关键帧的视频,也可以为不包括关键帧的视频。当缓存视频库中不存在该第二源服务器发送给第二客户端的视频时,如果该视频为包括关键帧的视频,可以按照该视频的索引将该视频存储于关键帧视频库中;如果该视频为不包括关键帧的视频,可以按照该视频的索引将该视频存储于无关键帧视频库中。
[0078]当存储包括关键帧的视频时,可以首先获取视频的所有关键帧,其中视频的关键帧可以为一个也可以为多个。当关键帧为一个时,可以根据哈希算法,将该关键帧的内容转化为特征值,并将该特征值作为视频的索引,此时,视频的索引为一个。当关键帧为多个时,可以根据哈希算法,分别将每一个关键帧的内容转化为相应的特征值,并将获得的所有与关键帧相应的特征值作为视频的索引,此时,视频的索引为多个。当存储不包括关键帧的视频时,可以将视频预设范围的内容转化为特征值作为视频的索引,此时,视频的索引为一个,例如,可以选取视频的前W个字节的内容计算该视频的特征值,也可以选取视频前H秒的内容计算该视频的特征值,本发明实施例对此不做限定,其中W为大于或者等于O的整数,H为大于O的实数。
[0079]较佳的,上述哈希算法可以为MD5(Message Digest Algorithm MD5,消息摘要算法第五版)算法。MD5为计算机安全领域广泛使用的一种散列函数,可以将视频数据运算为一个固定长度的数值。通常情况下,由视频数据A转化的MD5值与非视频数据A转化的MD5值是不同的,因此MD5值具有唯一标识视频数据A的作用。
[0080]可选的,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数。在根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频时,可以首先根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;然后,确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频;当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。可选的,在第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频时,可以首先根据所述源服务器视频流第i+Ι关键帧的内容,获取所述源服务器视频流的第二特征值;然后,确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频;当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0081]示例的,当源服务器视频流包括N个关键帧时,可以首先获取第i关键帧的内容。然后根据哈希算法,计算第i关键帧的内容的特征值作为源服务器视频流的第一特征值。继而,判断缓存视频库中是否存在索引与第一特征值相同的视频;当索引与第一特征值相同的视频为一个时,该视频即为与源服务器视频流对应的视频;当索引与第一特征值相同的视频为多个时,将此多个索引与第一特征值相同的视频组成第一视频组。接下来,获取源服务器视频流第i + 1关键帧的内容。然后根据哈希算法,计算第i+1关键帧的内容的特征值作为源服务器视频流的第二特征值。继而,判断第一视频组中是否存在索引与第二特征值相同的视频;当索引与第二特征值相同的视频为一个时,该视频即为与源服务器视频流对应的视频;当索引与第二特征值相同的视频为多个时,将此多个索引与第二特征值相同的视频组成第三视频组。第三视频组的处理方式与第二视频组的处理方式类似,此处不再赘述,直到可以唯一确定与源服务器视频流对应的视频为止。
[0082]例如,当一部电视连续剧中的人物在第23集视频中回忆在第3集视频中出现的内容时,第23集视频和第3集视频就会包括同一段视频,如果该段视频中恰巧包括第i关键帧,那么,第i关键帧的特征值就会同时作为第23集视频与第3集视频的索引,因此,当使用第i关键帧的特征值作为源服务器视频流的第一特征值时,就会确定出索引与第一特征值相同的两个视频,即第23集视频与第3集视频,并且无法确定两个视频中的哪一个视频为与源服务器视频流对应的视频。因此,需要根据源服务器视频流的下一个关键帧的内容,获取第二特征值,如果第一视频组中只有第23集视频存在与第二特征值相同的索引,就可以确定第23集视频为与源服务器视频流对应的视频。
[0083]较佳的,第i关键帧可以为第I关键帧。
[0084]可选的,在根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频时,可以首先获取所述源服务器视频流预设范围的内容;然后,根据所述预设范围的内容,计算所述源服务器视频流的特征值;继而,确定所述缓存视频库中是否存在索引与所述特征值相同的视频;当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。
[0085]本发明实施例以预设范围为视频或视频流的前10240字节为例进行说明。在实际应用中,预设范围可以根据具体情况进行设置,本发明实施例对此不做限定。
[0086]当源服务器视频流为不包括关键帧的视频流时,可以首先获取源服务器视频流的前10240字节。然后,将该前10240字节的内容转化为特征值。继而,判断无关键帧视频库中是否存在索引与该特征值相同的视频,当存在该视频时,该视频即为与所述源服务器视频流对应的视频。
[0087]值得说明的是,无关键帧视频库中的视频的索引也是该视频的前10240字节的特征值,且无关键帧视频库中的视频的索引是唯一的,因此,当无关键帧视频库中存在索引与源服务器视频流的特征值相同的视频时,索引与源服务器视频流的特征值相同的视频通常是唯一的,因此,该视频即为与所述源服务器视频流对应的视频。
[0088]可选的,在根据所述视频,获取发送给所述第一客户端的目的视频时,可以根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。
[0089]示例的,当源服务器视频流为包括关键帧的视频流时,信令信息通常会包括关键帧标号,关键帧标号记录了用户所需要的目的视频中所包括的所有关键帧的标号,其中每一个标号记录了该关键帧在完整视频的所有帧中的顺序,因此,根据关键帧标号,可以确定用户所需要的目的视频中的起始关键帧标号和终止关键帧标号,从而获取该目的视频。例如,关键帧标号分别为3398、3491、201028、241480,说明用户所需目的视频的第I关键帧为完整视频中的第3398帧,第2关键帧为完整视频中的第3491帧,第3关键帧为完整视频中的第201028帧,第4关键帧为完整视频中的第241480帧,从而可以确定目的视频的起始帧为完整视频中的第3398帧,目的视频的终止帧为完整视频中的第241480帧,继而可以确定目的视频为完整视频中从第3398帧至第241480帧之间的视频。然后,获取缓存视频库中与源服务器视频流对应的视频中从第3398帧至第241480帧之间的视频,即为目的视频。
[0090]本发明实施例提供了一种视频文件发送方法,包括:获取一段第一源服务器发送给第一客户端的源服务器视频流;根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;根据所述视频,获取发送给所述第一客户端的目的视频;将所述目的视频发送给所述第一客户端。相较于现有技术,缓存服务器通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
[0091]实施例二
[0092]本发明实施例提供了一种视频文件发送方法,如图2所示,应用于缓存服务器,所述缓存服务器与至少一个源服务器连接,同时与至少一个客户端连接,可以接收任意一个源服务器发送给任意一个客户端的视频流,所述缓存服务器的缓存视频库包括关键帧缓存视频库以及无关键帧缓存视频库。本实施例以视频文件是FLV格式为例进行说明,所述视频文件发送方法包括:
[0093]步骤201、获取第二源服务器发送给第二客户端的视频,执行步骤202。
[0094]具体的,存储于缓存视频库中的视频需要为完整的视频,例如,一部完整的电影视频,或一集完整的电视剧视频。由于传输过程中,完整的视频会分成若干段较短的视频流。因此,当缓存视频库中不存在第二源服务器发送给第二客户端的某个视频时,在该视频的传输过程中缓存服务器可以获取属于该视频的所有视频流;然后组成第二源服务器发送给第二客户端的完整视频。
[0095]步骤202、根据视频的内容,获取视频的至少一个索引,执行步骤203。
[0096]优选的,当视频包括关键帧时,可以计算该视频关键帧的MD5值,并将该MD5值作为视频的索引,因为视频包括至少一个关键帧,所以可以获取视频的至少一个索引;当视频不包括关键帧时,可以获取该视频预设范围的内容计算MD5值,并将该MD5值作为视频的索引,此时可以获取视频的唯一索引。
[0097]步骤203、按照至少一个索引存储视频,执行步骤204。
[0098]示例的,当视频包括关键帧时,将视频按照至少一个索引存储于关键帧视频库中;当视频不包括关键帧时,将视频按照唯一索引存储于无关键帧视频库中。
[0099]步骤204、获取一段第一源服务器发送给第一客户端的源服务器视频流,执行步骤205。
[0100]步骤205、解析源服务器视频流头部,得到信令信息,执行步骤206。
[0101]示例的,FLV格式的源服务器视频流的信令信息存储于头部,信令信息包括关键帧标识,用于标识源服务器视频流是否为包括关键帧的视频流。当源服务器视频流为包括关键帧的视频流时,信令信息还包括用户所需目的视频的所有关键帧标号,其中第一个关键帧标号为目的视频的起始帧标号,最后一个关键帧标号为目的视频的终止帧标号。值得说明的是,由于用户所需的目的视频通常较长,需要分段进行发送,此时该段源服务器视频流的信令信息中虽然包括目的视频的所有关键帧标号,但是该段源服务器视频流的内容可能仅包括目的视频的少数几个关键帧。
[0102]步骤206、判断信令信息中的关键帧标识是否有效;当信令信息中的关键帧标识有效时,执行步骤207 ;当信令信息中的关键帧标识无效时,执行步骤215。
[0103]具体的,由于包括关键帧的视频与不包括关键帧的视频的确定方法不同,因此,需要首先判断源服务器视频流是否为包括关键帧的视频流。当信令信息中的关键帧标识有效时,说明源服务器视频流为包括关键帧的视频流,需要在关键帧缓存视频库中,按照包括关键帧的视频的确定方法,确定与源服务器视频流对应的视频;当信令信息中的关键帧标识无效时,说明源服务器视频流为不包括关键帧的视频流,需要在无关键帧缓存视频库中,按照不包括关键帧的视频的确定方法,确定与源服务器视频流对应的视频。假设关键帧标识为ture时,表示关键帧标识有效;关键帧标识为fal se时,表示关键帧标识无效,则可以通过判断信令信息中的关键帧标识是否为ture来确定关键帧标识是否有效。
[0104]步骤207、根据信令信息中的关键帧标号,获取源服务器视频流的第i关键帧,执行步骤208。
[0105]示例的,可以在源服务器视频流的内容中,获取与信令信息的第i个关键帧标号所对应的帧,作为源服务器视频流的第i关键帧。例如,在源服务器视频流的内容中获取与信令信息的第I个关键帧标号所对应的帧,作为源服务器视频流的第I关键帧。具体的,假设信令信息中的关键帧标号为120、271、362、583、1264、1755、2686,可以首先获取信令信息中的第I个关键帧标号120,然后在源服务器视频流的内容中获取标号为120的帧,该帧即为源服务器视频流中第I关键帧。
[0106]步骤208、计算第i关键帧的内容的MD5值,并将此MD5值作为第一MD5值,执行步骤209。
[0107]示例的,可以根据MD5算法,计算第i关键帧的内容的MD5值。
[0108]步骤209、判断关键帧缓存视频库中是否存在索引与第一MD5值相同的视频;当存在所述视频时,执行步骤210;当不存在所述视频时,执行步骤219。
[0109]步骤210、判断所述视频是否为多个;当所述视频为多个时,执行步骤211;当所述视频为一个时,执行步骤212。
[0110]步骤211、将i+Ι的值赋予i,执行步骤207。
[0111]通过将i+Ι的值赋予i的方式,获取下一个关键帧。
[0112]示例的,若关键帧缓存视频库中存在多个索引与第I关键帧的第一MD5值相同的视频,可以将所述多个视频组成第一视频组,然后获取第2关键帧,并计算第2关键帧的第一MD5值,然后根据所述第2关键帧的第一 MD5值从第一视频组中获取与源服务器视频流对应的视频。若第一视频组中存在多个与第2关键帧的第一 MD5值相同的视频,可以将所述多个视频组成第二视频组,并继续获取第3关键帧,计算第3关键帧的第一 MD5值,然后根据第3关键帧的第一 MD5值从第二视频组中获取与源服务器视频流对应的视频。依次类推,可以唯一确定出与源服务器视频流对应的视频。
[0113]步骤212、获取与源服务器视频流对应的视频,执行步骤213。
[0114]步骤213、根据关键帧标号,确定目的视频的起始帧和终止帧,执行步骤214。
[0115]示例的,可以根据信令信息的第一个关键帧标号,确定目的视频的起始帧;根据信令信息的最后一个关键帧标号,确定目的视频的终止帧。
[0116]步骤214、根据与源服务器视频流对应的视频以及目的视频的起始帧和终止帧,生成目的视频,执行步骤218。
[0117]步骤215、计算源服务器视频流预设范围的内容的MD5值,并将此MD5值作为第二MD5值,执行步骤216。
[0118]示例的,可以根据MD5算法,计算源服务器视频流预设范围的内容的MD5值。
[0119]步骤216、判断无关键帧缓存视频库中是否存在索引与第二MD5值相同的视频;当存在索引与第二MD5值相同的视频时,执行步骤217;当不存在索引与第二MD5值相同的视频时,执行步骤219。
[0120]示例的,当无关键帧缓存视频库中存在索引与第二MD5值相同的视频时,所述视频只可能为一个,因此,该视频即为与源服务器视频流对应的视频。
[0121]步骤217、将与源服务器视频流对应的视频作为目的视频,执行步骤218。
[0122]示例的,当源服务器视频流不包括关键帧时,目的视频为完整视频,因此,可以直接将与源服务器视频流对应的视频作为目的视频。
[0123]步骤218、将目的视频发送给第一客户端,本流程结束。
[0124]示例的,可以将目的视频分成若干段较短的视频流逐段发送给第一客户端。
[0125]步骤219、将源服务器视频流发送给第一客户端,并存储源服务器视频流,本流程结束。
[0126]需要说明的是,本发明实施例提供的一种视频文件发送方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
[0127]本发明实施例提供了一种视频文件发送方法,相较于现有技术,所述方法通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
[0128]实施例三
[0129]本发明实施例提供了一种视频文件发送装置30,如图3所示,所述装置30包括:
[0130]第一获取单元301,用于获取一段第一源服务器发送给第一客户端的源服务器视频流;
[0131 ]第二获取单元302,用于根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;
[0132]第三获取单元303,用于根据所述视频,获取发送给所述第一客户端的目的视频;
[0133]发送单元304,用于将所述目的视频发送给所述第一客户端。
[0134]这样一来,缓存服务器通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
[0135]可选的,如图4所示,所述装置30还包括:第四获取单元305,用于获取第二源服务器发送给第二客户端的视频;第五获取单元306,用于根据所述视频的内容,获取所述视频的至少一个索引;存储单元307,用于按照所述至少一个索引存储所述视频。
[0136]可选的,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数;第二获取单元302,具体用于:根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频;当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0137]可选的,第二获取单元302,具体用于:根据所述源服务器视频流第i+Ι关键帧的内容,获取所述源服务器视频流的第二特征值;确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频;当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。
[0138]可选的,第二获取单元302,具体用于:获取所述源服务器视频流预设范围的内容;根据所述预设范围的内容,计算所述源服务器视频流的特征值;确定所述缓存视频库中是否存在索引与所述特征值相同的视频;当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。
[0139]可选的,第三获取单元303,具体用于:根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。
[0140]需要说明的是,第一,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0141]第二,在实际应用中,所述第一获取单元301、第二获取单元302、第三获取单元303、第四获取单元305、第五获取单元306、存储单元307均可由位于装置30中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable GateArray,FPGA)等实现。发送单元304可由位于装置30中的天线以及天线的驱动电路实现。
[0142]本发明实施例提供了一种视频文件发送装置,包括:第一获取单元,用于获取一段第一源服务器发送给第一客户端的源服务器视频流;第二获取单元,用于根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频;第三获取单元,用于根据所述视频,获取发送给所述第一客户端的目的视频;发送单元,用于将所述目的视频发送给所述第一客户端。相较于现有技术,所示装置通过提取源服务器视频流的内容作为视频标识,能够更加精确地识别出与源服务器视频流相对应的缓存视频库中的视频,从而缓解了源服务器的压力,提高了在线视频的流畅度;同时,避免了仅根据存储路径区分视频时出现的重复存储视频,节省了缓存服务器的空间。
[0143]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0144]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0145]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0146]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0147]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【主权项】
1.一种视频文件发送方法,其特征在于,所述方法包括: 获取一段第一源服务器发送给第一客户端的源服务器视频流; 根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频; 根据所述视频,获取发送给所述第一客户端的目的视频; 将所述目的视频发送给所述第一客户端。2.根据权利要求1所述的方法,其特征在于,在所述获取一段第一源服务器发送给第一客户端的源服务器视频流之前,所述方法还包括: 获取第二源服务器发送给第二客户端的视频; 根据所述视频的内容,获取所述视频的至少一个索引; 按照所述至少一个索引存储所述视频。3.根据权利要求1或2所述的方法,其特征在于,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数; 所述根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频包括: 根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频; 当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。4.根据权利要求3所述的方法,其特征在于,所述在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频包括: 根据所述源服务器视频流第i + Ι关键帧的内容,获取所述源服务器视频流的第二特征值; 确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频; 当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。5.根据权利要求1或2所述的方法,其特征在于,所述根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频包括: 获取所述源服务器视频流预设范围的内容; 根据所述预设范围的内容,计算所述源服务器视频流的特征值; 确定所述缓存视频库中是否存在索引与所述特征值相同的视频; 当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。6.根据权利要求1-4任意一项权利要求所述的方法,其特征在于,所述根据所述视频,获取发送给所述第一客户端的目的视频包括: 根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。7.一种视频文件发送装置,其特征在于,所述装置包括: 第一获取单元,用于获取一段第一源服务器发送给第一客户端的源服务器视频流;第二获取单元,用于根据所述源服务器视频流的内容,获取缓存视频库中与所述源服务器视频流对应的视频; 第三获取单元,用于根据所述视频,获取发送给所述第一客户端的目的视频; 发送单元,用于将所述目的视频发送给所述第一客户端。8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 第四获取单元,用于获取第二源服务器发送给第二客户端的视频; 第五获取单元,用于根据所述视频的内容,获取所述视频的至少一个索引; 存储单元,用于按照所述至少一个索引存储所述视频。9.根据权利要求7或8所述的装置,其特征在于,所述源服务器视频流包括N个关键帧,所述N为大于或等于I的整数; 第二获取单元,具体用于: 根据所述源服务器视频流第i关键帧的内容,计算所述源服务器视频流的第一特征值;确定所述缓存视频库中是否存在索引与所述第一特征值相同的第一视频组,所述第一视频组中包括至少一个视频; 当所述缓存视频库中存在索引与所述第一特征值相同的第一视频组时,在所述第一视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。10.根据权利要求9所述的装置,其特征在于,第二获取单元,具体用于: 根据所述源服务器视频流第i + 1关键帧的内容,获取所述源服务器视频流的第二特征值; 确定所述第一视频组包括的至少一个视频中是否存在索引与所述第二特征值相同的第二视频组,所述第二视频组中包括至少一个视频; 当所述缓存视频库中存在索引与所述第二特征值相同的第二视频组时,在所述第二视频组包括的至少一个视频中获取与所述源服务器视频流对应的视频。11.根据权利要求7或8所述的装置,其特征在于,第二获取单元,具体用于: 获取所述源服务器视频流预设范围的内容; 根据所述预设范围的内容,计算所述源服务器视频流的特征值; 确定所述缓存视频库中是否存在索引与所述特征值相同的视频; 当所述缓存视频库中存在索引与所述特征值相同的视频时,将所述索引与所述特征值相同的视频作为与所述源服务器视频流对应的视频。12.根据权利要求7-10任意一项权利要求所述的装置,其特征在于,第三获取单元,具体用于: 根据所述视频和所述源服务器视频流,确定所述目的视频的起始帧和终止帧。
【文档编号】H04N21/239GK105915930SQ201610237884
【公开日】2016年8月31日
【申请日】2016年4月15日
【发明人】苏超
【申请人】北京网康科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1