一种流媒体文件分片下载方法、装置及终端与流程

文档序号:13763976阅读:210来源:国知局
一种流媒体文件分片下载方法、装置及终端与流程

本发明涉及流媒体技术领域,尤其涉及一种流媒体文件分片下载方法、装置及终端。



背景技术:

流媒体文件是利用流媒体传输技术实现传输的文件形式,传统的流媒体文件由多个分片组成。与常见的下载播放不同的是,流媒体文件播放是以分片为单位,即下载完一个分片就可以实现播放,不需要等待将所有分片全部下载完。从而实现边播放已经下载好的分片,边下载其他需要播放的分片。

终端下载流媒体文件时,会根据需要下载的流媒体文件生成一个流媒体文件分片列表,流媒体文件分片列表中包含分片地址和分片地址顺序。首先根据分片地址顺序确定待下载分片的地址,确定了待下载分片的地址后,通过该地址链接到指示的服务器。因为地址信息中会包含需要下载的分片的信息,因此可以根据分片的信息准确找到需要下载的分片,然后进行下载。当一个分片下载完成后,终端对该分片进行解码,并播放,同时下一个分片开始进入下载。

由于流媒体的播放是以分片为单位,因此只有分片被完整下载后,终端才能对该分片进行解码播放。但是在实际的分片下载过程中,终端与服务器之间的网络会随着传输的时间呈现不同的网络质量。当根据流媒体文件分片列表中指示的分片地址下载分片时,如果分片较大而服务器与终端之间的网络环境此时较差,那么较大的分片就需要较长的下载时间,易造成已下载的分片已经被解码播放完毕,而待播放的分片尚未下载完毕,从而导致播放卡顿等问题。



技术实现要素:

本发明实施例提供了流媒体文件分片下载方法、装置及终端,当流媒体文件分片较大且网络环境较差时,可以提高流媒体文件分片的下载效率。

第一方面,本发明实施例提供了流媒体文件分片下载方法,包括:确定待下载的流媒体文件分片的长度;当所述待下载的流媒体文件分片长度大于预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片,其中,每一个子分片的长度都不大于所述预设长度;分别下载每一个所述子分片。由于拆分后的子分片长度较短,下载完一个子分片所需的时间也更少,而且可以分别下载每一个子分片,因此相对拆分前的流媒体文件分片可以更快的完成下载。

结合第一方面的实现方式,在第一方面第一种可能的实现方式中,所述确定待下载的流媒体文件分片的长度包括:向服务器发出分片下载请求;接收服务器发回的反馈信息,所述反馈信息包含待下载的流媒体文件分片的长度。通过发出分片下载请求,获得服务器反馈回来的分片长度信息,通过与预设长度比较后,确定是否需要进行拆分,实现分片的快速下载。

结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述预设长度与终端与服务器之间的传输带宽相匹配,根据终端与服务器之间的传输带宽设置预设长度,保证流畅下载流媒文件子分片。

结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述将待下载的流媒体文件分片拆分为至少两个子分片包括:确定子分片的最大长度;确定所述待下载流媒体文件分片的字段范围;将所述字段范围划分为至少两个子范围,其中,每一个子范围的长度都不大于所述最大长度。所述预设长度是根据当前终端与服务器的传输带宽设定的,因此设置子分片长度不大于预设长度,可以保证在当前传输带宽下可以实现分片的流畅下载。

结合第一方面第三种可能的实现方式,在第一方面第四种可能的实现方式中,所述将字段范围划分为至少两个子范围,包括:将所述字段范围进行划分,至少包括第一子范围和第二子范围,其中所述第一子范围对应所述待下载流媒体文件分片最先播放的字段范围;所述第一子范围的字段长度小于所述第二子范围的字段长度。这样可以保证在不同线程同时下载时,待下载流媒体文件分片需要最先下载的字段范围可以尽可能的优先下载完毕。

结合第一方面第三种可能的实现方式,在第一方面第五种可能的实现方式中,所述分别下载每一个子分片包括:生成子分片的下载请求,每一个下载请求与一个子范围相对应,包含待下载流媒体文件分片下载地址和下载请求对应的子范围;发送所述子分片的下载请求;接收服务器根据所述子分片的下载请求发回的子分片。每个下载请求对应一个子范围,不同的下载请求就完成了待下载分片的下载请求,且不同范围是分别进行下载的,保证了待下载流媒体文件分片的下载效率。

结合第一方面第五种可能的实现方式,在第一方面第六种可能的实现方式中,所述发送子分片的下载请求包括:并行发送所述下载请求。并行发出下载请求,同时请求下载多个子分片,可以更快的完成待下载流媒体文件分片。

结合第一方面的实现方式,在第一方面第七种可能的实现方式中,还包括:获取第二流媒体文件分片的地址,所述第二流媒体文件分片为所述待下载的流媒体文件分片的下一个流媒体文件分片;根据所述第二流媒体文件分片的地址确定所述第二流媒体文件分片所处的服务器;如果所述第二流媒体文件分片与所述待下载的流媒体文件分片所处服务器不相同,请求下载所述第二流媒体文件分片。如果终端的可以继续请求下载,完成对待下载流媒体文件分片的下载请求后,继续对不同服务器的第二流媒体文件分片发出下载请求,这样实现了多流媒体文件分片的并行下载,使得终端后续播放流媒体文件分片时减少卡顿的几率。

结合第一方面或第一方面第一至七种可能的实现方式其中任意一种,还包括:所述待下载流媒体文件分片下载完成后,统计下载所述待下载流媒体文件分片的终端与服务器之间的传输带宽;根据所述传输带宽确定第二预设长度。完成待下载流媒体文件分片的下载后,统计终端与服务器之间的传输带宽,确定下载下一个流媒体文件分片的拆分预设长度,尽可能保证下一个流媒体文件分片快速下载,实现终端的流畅播放。

第二方面,本发明实施例提供了流媒体文件分片下载装置,包括:确定单元,用于确定待下载的流媒体文件分片的长度。处理单元,用于当所述待下载的流媒体文件分片长度大于终端与服务器之间的传输带宽相匹配的预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片,其中,每一个子分片的长度都不大于所述预设长度。下载单元,用于分别下载每一个所述子分片。所述处理单元拆分后的子分片长度较短,下载完一个子分片所需的时间也更少,而且所述下载单元分别下载每一个子分片,因此相对拆分前的流媒体文件分片可以更快的完成下载。

结合第二方面的实现方式,在第二方面第一种可能的实现方式中,所述确定单元包括:发送子单元,用于向服务器发出分片下载请求。接收子单元,用于接收服务器发回的反馈信息,所述反馈信息包含待下载的流媒体文件分片的长度。所述发送子单元发出分片下载请求,所述接收子单元接收服务器反馈回来的分片长度信息,快速获得所述带下载流媒体文件分片的长度。

结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述处理单元包括:第一确定子单元,用于确定子分片的最大长度。第二确定子单元,确定所述待下载流媒体文件分片的字段范围。划分子单元,用于将所述字段范围划分为至少两个子范围,其中,每一个子范围的长度都不大于所述最大长度。

结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述下载包括:请求生成子单元,用于生成子分片的下载请求,每一个下载请求与一个子范围相对应,包含待下载流媒体文件分片下载地址和下载请求对应的子范围。请求发送子单元,用于发送所述子分片的下载请求。分片接收子单元,用于接收服务器根据所述子分片的下载请求发回的子分片。所述请求生成子单元生成的每个下载请求对应一个子范围,所述请求发送子单元发出不同的下载请求就完成了待下载分片的下载请求,且不同范围是分别进行下载的,保证了待下载流媒体文件分片的下载效率。

结合第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,所述请求发送子单元,用于并行发送所述下载请求。并行发出下载请求,同时请求下载多个子分片,可以更快的完成待下载流媒体文件分片。

结合第二方面的实现方式,在第二方面第五种可能的实现方式中,所述装置还包括:获取单元和第二确定单元。

所述获取单元,用于获取第二流媒体文件分片的地址,所述第二流媒体文件分片为所述待下载的流媒体文件分片的下一个流媒体文件分片。所述第二确定单元,用于根据所述第二流媒体文件分片的地址确定所述第二流媒体文件分片所处的服务器。所述下载单元,如果所述第二流媒体文件分片与所述待下载的流媒体文件分片所处服务器不相同,请求下载所述第二流媒体文件分片。如果终端的可以继续请求下载,完成对待下载流媒体文件分片的下载请求后,所述获取单元继续对不同服务器的第二流媒体文件分片发出下载请求,这样实现了多流媒体文件分片的并行下载,使得终端后续播放流媒体文件分片时减少卡顿的几率。

结合第二方面或第一方面第一至五种可能的实现方式其中任意一种,所述装置还包括:统计单元和设置单元。所述统计单元,用于所述待下载流媒体文件分片下载完成后,统计下载所述待下载流媒体文件分片的终端与服务器之间的传输带宽。所述设置单元,根据所述传输带宽确定第二预设长度。完成待下载流媒体文件分片的下载后,所述统计单元统计终端与服务器之间的传输带宽,所述设置单元确定下载下一个流媒体文件分片的拆分预设长度,尽可能保证下一个流媒体文件分片快速下载,实现终端的流畅播放。

第三方面,本发明实施例提供了一种终端,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器通过通信总线相连接;所述处理器,用于确定待下载的流媒体文件分片的长度;所述处理器,还用于当所述待下载的流媒体文件分片长度大于终端与服务器之间的传输带宽相匹配的预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片;所述通信接口,用于接收服务器端发回的每一个子分片,通过所述通信总线传输给所述处理器;所述存储器,用于存储通过通信接口接收的每一个子分片。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种流媒体文件分片下载方法的流程示意图;

图2为本发明实施例提供的一种待下载流媒体文件分片字段拆分的示意图;

图3为本发明实施例提供的一种待下载流媒体文件分片字段拆分的示意图;

图4为本发明实施例提供的一种待下载流媒体文件分片字段拆分的示意图;

图5为本发明实施例提供的一种请求下载待下载流媒体文件分片的示意图;

图6为本发明实施例提供的一种请求下载同服务器多个流媒体文件分片的示意图;

图7为本发明实施例提供的一种请求下载不同服务器多个流媒体文件分片的示意图;

图8为本发明实施例提供的一种流媒体文件分片下载装置的示意图;

图9为本发明实施例提供的一种终端的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种流媒体文件分片下载方法的流程示意图,方法包括:

S101,确定待下载的流媒体文件分片的长度。

获取流媒体文件分片列表中的分片地址,按照分地址的顺序依次下载流媒体文件分片。首先确定待下载的流媒体文件分片,假设前一时刻还未对流媒体文件文件分片进行下载,则根据流媒体文件分片列表中的地址顺序,执行下载第一个分片地址对应的流媒体文件分片,则此时第一个分片地址对应的流媒体文件分片为待下载的流媒体文件分片。同理,如果前一时刻已经完成n-1个分片地址对应的流媒体文件分片的下载,则下一时刻需要下载第n个分片地址对应的流媒体文件分片,则第n个分片地址对应的流媒体文件分片为待下载流媒体文件分片。

根据确定出的待下载流媒体文件分片的下载地址链接到对应的服务器,并发出分片下载请求,所述下载请求中包含有需要下载的流媒体文件分片的标识信息。服务器接收到该分片下载请求后,会根据所述下载请求中包含的标识信息,寻找到对应的流媒体文件分片,然后向发送所述下载请求的终端发回一个反馈信息,所述反馈信息中包含第一个分片地址对应的流媒体文件分片的长度。终端接收服务器回的反馈信息后,完成对反馈信息的解析,获得待下载流媒体文件分片的长度。

S102,当所述待下载的流媒体文件分片长度大于预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片。

终端在获得待下载的流媒体文件分片的长度后,将所述待下载的流媒体文件分片的长度与预设长度进行比较。当所述待下载的流媒体文件分片的长度大于所述预设长度时,将所述待下载流媒体文件分片拆分为至少两个子分片。所述预设长度时根据终端与服务器之间的传输带宽设定的,所述预设长度根据传输带宽的不同预设不同的长度。假设某一时刻的传输带宽为Q1,根据Q1预设的长度为L1;下一时刻,传输带宽变为了Q2,且Q2小于Q1,此时需要调整预设长度为L2,其中L2小于L1。也就是说,所述预设长度与传输带宽成正比。

例如:终端与服务器之间的传输带宽为10M,终端与服务器之间4线程同时下载,每个下载线程均能获得1M至2M的下载带宽。假设在1M至2M的下载带宽可以流畅下载512K长度的流媒体文件,所述预设长度可以设置为512K。当终端与服务器之间的传输带宽为4M,仍然维持4线程同时下载,每个下载线程的下载带宽可能会小于1M,如果此时预设长度还设置为512K,则会导致下载堵塞。因此可以将预设长度设置为256K或者更小,以保证多线程下载的流畅性。当然上述给出的不同带宽对应的预设长度数据只是示意性的,实际中预设长度的设置还会参考在实际下载过程中的历史数据,结合当前的网络环境获得最优的预设长度值。

需要指出的,本实施例中将所述待下载流媒体文件分片拆分为至少两个子分片,并不是物理意义上的拆分,而是根据待下载流媒体文件分片的长度和预设长度,将所述待下载流媒体文件分片的字段范围划分为若干个子范围。首先确定子分片的最大长度,最大长度不大于所述预设长度;然后确定所述待下载流媒体文件分片的字段范围,根据确定的最大长度将所述待下载流媒体文件分片的字段范围进行划分。

如图2所示,假设所述待下载的流媒体文件分片的长度为2MB,根据当前时刻终端与服务器之间的传输带宽设置的预设长度为512KB。因此可以将子分片的最大长度设置为512KB,这样就将待下载流媒体文件分片的字段范围拆分为4个子范围,且4个子范围分别为(0KB,512KB]、(512KB,1024KB]、(1024KB,1536KB]、(1536KB,2048KB]。

当然,上述给出的实施例是待下载流媒体文件分片的长度是预设长度的倍数。参见图3,假设所述待下载的流媒体文件分片的长度为1.25MB,所述预设长度依然为上述的512KB,同样可以将子分片的最大长度设置为512KB,将待下载流媒体文件分片的字段范围拆分为了3个子范围,且3个子范围分别为(0KB,512KB]、(512KB,1024KB]、(1024KB,1280KB]。可以看出,上述的3个子范围的字段长度分别为512KB、512KB、256KB。

如果分别请求下载上述3个字段范围的子分片,且每个下载线程下载速度相同时,第三个子分片会优先下载完。但是终端播放流媒体文件分片时,还是按照原来分片的顺序进行播放,为了保证待下载流媒体文件分片的优先播放的字段范围先下载完,因此上述3个子范围可以将第一个设置的较短一些。上述只是考虑到三个线程下载速度相同的情况,实际中下载速度会随着时间出现波动,只要保证每个分片的字段长度不大于所述预设长度即可。

当然,也可以调整子分片的最大长度,设置所述最大长度为430KB,此时如果将待下载流媒体文件分片拆分为3个字段范围,如图4所示,则可以将3个子范围分别划分为(0KB,430KB]、(430KB,860KB]、(860KB,1280KB],此时3个子范围的长度分别为430KB、430KB、420KB。当然上述最大长度的设置只是示例性的,并不限于上述设置长度。

上述对待下载流媒体文件分片的字段范围进行划分之后,对应待下载流媒体文件分片文件头字段范围的子分片中携带有所述待下载流媒体文件分片的的格式、编码方式和流媒体文件分片字段总长度等信息。当该子分片请求下载完成后送入终端的解码器进行解码播放,后续下载的子分片将按照原始字段范围的顺序串行送入终端的解码器直接进行解码,完成所述待下载流媒体文件分片的完整播放。因此无需对分段下载的子分片再进行标识处理,也可以保证每一个子分片都能正常解码播放。

以图2中的待下载流媒体文件分片为例,4个子分片对应的字段范围分别为(0KB,512KB]、(512KB,1024KB]、(1024KB,1536KB]、(1536KB,2048KB]。其中(0KB,512KB]字段范围的子分片为待下载流媒体文件的文件头部分,该子分片携带有所述待下载流媒体文件分片的的格式、编码方式和流媒体文件分片字段总长度等信息。当(0KB,512KB]字段范围的子分片下载完毕后送入终端的解码器解码播放,字段范围为(512KB,1024KB]、(1024KB,1536KB]和(1536KB,2048KB]三个子分片下载完成后会依次串行送入终端的解码器解码播放,上述3个子分片的数据的数据格式、编码方式等信息解码器已经从(0KB,512KB]对应的子分片中获知,因此可以直接进行解码,直到最后一个字段范围的数据解码播放完毕,终端会根据提前获知的流媒体文件分片字段总长度确定该流媒体文件分片播放完毕。

S103,分别下载每一个所述子分片。

根据S102中对所述待下载流媒体文件分片划分的多个子范围生成子分片下载请求,其中每一个子分片下载请求与一个子范围相对应。其中,每一个子分片下载请求包含待下载流媒体文件分片的下载地址和当前下载请求对应的子范围。

根据所述子分片的下载请求中的待下载流媒体文件分片的下载地址链接到对应的服务器,并发送所述子分片的下载请求。服务器接收到子分片下载请求后,根据子分片下载请求的待下载流媒体文件分片的字段范围,发回对应字段范围的子分片,终端对服务器发回的子分片进行接收完成下载。其中,终端向服务器发送子分片下载请求是并行发送的,即同时申请下载多个子分片。

假设终端一次可以同时请求下载4个子分片,以S102中为例,待下载流媒体文件分片长度为2MB,当前时刻终端与服务器之间的传输带宽设置的预设长度为512KB。将子分片的最大长度设置为512KB,这样就将待下载流媒体文件分片的字段范围拆分为4个子范围,4个子范围分别为(0KB,512KB]、(512KB,1024KB]、(1024KB,1536KB]、(1536KB,2048KB]。假设待下载流媒体文件分片的地址为URL1,则终端同时发送的4个子分片下载请求中包含的地址都是一样的,均为URL1。不同的是4个子分片下载请求对应的子分片的字段范围不同,4个子分片下载请求分别请求的待下载流媒体文件分片的不同字段范围字段范围。假设将并行的4个子分片下载请求命名为下载请求1、下载请求2、下载请求3和下载请求4,且4个子分片下载请求是同时的不分先后。如图5所示,如果下载请求1中请求的待下载流媒体文件分片的(0KB,512KB]字段范围,则服务器发回给下载请求1的子分片字段范围即为待下载流媒体文件分片的(0KB,512KB]范围的字段的分片数据。对应的,下载请求2到下载请求4可以依次请求的待下载流媒体文件分片的字段范围中的(512KB,1024KB]、(1024KB,1536KB]和(1536KB,2048KB]部分。当然上述实施例只是示意性的,下载请求1也可以请求上述4个不同子范围中的任一个,在此不再赘述。

同样假设终端一次可以下载4个子分片,如果如S102中另一种情况,待下载的流媒体文件分片的长度为1.25MB,子分片的最大长度设置为512KB,将待下载流媒体文件分片的字段范围拆分为了3个子范围。此时需要将待下载流媒体文件分片下载完成只需要发出3个子分片下载请求即可。但是如果只发出一个子分片下载请求则会造成终端与服务器之间的资源浪费,如图6所示,终端发出3个子分片下载请求的同时,还会发出第二流媒体文件分片的下载请求。

所述第二流媒体文件分片为分片列表中待下载流媒体文件分片地址的下一个分片地址对应的流媒体文件分片。此时会出现两种不同的情况,终端向服务器发出第二流媒体文件分片请求后,如果收到的反馈信息得知第二流媒体文件分片不大于所述预设长度,则可以直接发出第二流媒体文件分片下载请求,对第二流媒体文件分片同所述待下载流媒体文件分片的3个子分片同时进行下载。如果第二流媒体文件分片大于所述预设长度,此时则按照S102中的方法对第二流媒体文件分片进行拆分,请求下载相应的字段范围。具体可参见S102中的描述,在此不再赘述。

由以上技术方案可见,本发明实施例提供的流媒体文件分片下载方法,根据终端与服务器之间的传输带宽确定预设长度,当待下载流媒体文件分片长度大于所述预设长度时,根据预设长度将待下载流媒体文件分片进行拆分,具体的是将待下载流媒体文件分片的字段范围拆分为多个子范围,然后并行请求下载多个子范围。由于每个子范围对应的子分片长度较短,因此相对拆分前的流媒体文件分片可以更快的完成下载。而且对多个子分片分别进行下载,从而提高了整个流媒体文件分片的下载效率。

因为一个流媒体视频文件是由多个流媒体文件分片组成,不同的流媒体文件分片可能所在的服务器是不同的。因此,所述第二流媒体文件分片可能与待下载流媒体文件分片所处的服务器不同,因为预设长度是根据终端与服务器之间的传输带宽进行设置的,所以如果第二流媒体文件分片所述服务器不同时,则终端与第二流媒体文件分片所在的服务器之间的第三预设长度可能与所述预设长度不同。

仍然以S102中为例,根据终端与待下载流媒体文件分片所在的服务器之间的传输带宽设置预设长度为512KB。如果终端与第二流媒体文件分片所在的服务器之间的传输带宽为终端与待下载流媒体文件分片所在的服务器之间的传输带宽的两倍,则第三预设长度可以设置为1MB。

如图7所示,当流媒体文件分片列表中连续n个流媒体文件分片地址均对应不同服务器时,且所述n个流媒体文件分片地址所对应的流媒体文件分片均不大于对应的预设长度,则终端发出下载请求,同时下载所述n个流媒体文件分片。

由以上技术方案可知,当不同流媒体文件分片在不同服务器时,由于终端与不同服务器之间的传输带宽是不一样的,因此终端从不同服务器之间下载流媒体文件分片对应的拆分预设长度也不同。而且当不同服务器中的流媒体文件分片长度均不大于对应的预设长度时,终端可以向多个服务器发出流媒体文件分片下载请求,这样就实现了多个流媒体文件分片的下载,保证了终端解码播放流媒体文件分片时相对传统的方式更加流畅。

当待下载流媒体文件分片下载完成后,进一步的统计下载所述待下载流媒体文件分片的终端与服务器之间的传输带宽,根据所述传输带宽确定第二预设长度。

假设下载所述待下载流媒体文件分片时,根据终端与服务器之间当前的传输带宽,设置预设长度为S102中的512KB,当所述待在流媒体文件分片下载完成后,重新统计终端与服务器之间的传输带宽。如果传输带宽相比下载前带宽变的更大,则可以将第二预设长度设置的更大,具体依据实际的带宽设定。如果传输带宽比下载前还要差,则根据当前的传输带宽减小预设长度值。当然上述实施例仅是举例说明,例如终端可能同时发出多个流媒体文件分片,并不仅限于上述实施例中提到的一次性发出四个下载请求,需要指出的是上述流媒体文件分片下载方法适用于网络自适应流媒体协议(基于分片),如HLS、DASH等,普通的渐进式下载流媒体协议也同样适用,如http协议等,具体不在赘述。

与上述方法实施例相对应,本申请还公开了一种流媒体文件分片下载装置,如图8所示所述装置包括:确定单元201、处理单元202和下载单元203。

所述确定单元201,用于确定待下载的流媒体文件分片的长度。所述确定单元201包括发送子单元2011和接收子单元2012。所述发送子单元2011向服务器发出分片下载请求,服务器接收到下载请求后,向确定单元201发回下载请求对应的反馈信息,所述反馈信息包含待下载的流媒体文件分片的长度。所述接收子单元2012接收服务器发回的反馈信息。

所述处理单元202用于当所述待下载的流媒体文件分片长度大于终端与服务器之间的传输带宽相匹配的预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片,其中,每一个子分片的长度都不大于所述预设长度。所述处理单元202包括第一确定子单元2021、第二确定子单元2022和划分子单元2023。

所述第一确定子单元2021,用于确定子分片的最大长度,其中所述最大长度不大于所述预设长度。第二确定子单元2022,用于确定所述待下载流媒体文件分片的字段范围,所述待下载流媒体文件分片的字段范围的字段尾与字段头只差等于所述待下载流媒体文件分片的长度。所述划分子单元2023,用于将所述字段范围划分为至少两个子范围,其中,每一个子范围的长度都不大于所述最大长度。

下载单元203,用于分别下载每一个所述子分片。所述下载单元203包括:请求生成子单元2031、请求发送子单元2032和分片接收子单元2033.

所述请求生成子单元2031,用于生成子分片的下载请求,每一个下载请求与一个子范围相对应,包含待下载流媒体文件分片下载地址和下载请求对应的子范围;所述请求发送子单元2032,用于发送所述子分片的下载请求。优选地,所述请求发送子单元并行发送所述所述子分片的下载请求。所述分片接收子单元2033,用于接收服务器根据所述子分片的下载请求发回的子分片。

所述的流媒体文件分片下载装置,还包括获取单元204和第二确定单元205。

所述获取单元204,用于获取第二流媒体文件分片的地址,所述第二流媒体文件分片为所述待下载的流媒体文件分片的下一个流媒体文件分片。所述第二确定单元205,用于根据所述第二流媒体文件分片的地址确定所述第二流媒体文件分片所处的服务器。所述下载单元203,用于如果所述第二流媒体文件分片与所述待下载的流媒体文件分片所处服务器不相同,请求下载所述第二流媒体文件分片。

所述流媒体文件分片下载装置,还包括统计单元206和设置单元207。

所述统计单元206,用于所述待下载流媒体文件分片下载完成后,统计下载所述待下载流媒体文件分片的终端与服务器之间的传输带宽;所述设置单元207,用于根据所述传输带宽确定第二预设长度。

本申请还公开了一种终端,如图9所示,所述终端包括处理器301、通信串口302和存储器303,所述处理器301、所述通信接口302和所述存储器303通过通信总线304相连接。

所述处理器301,用于确定待下载的流媒体文件分片的长度,当所述待下载的流媒体文件分片长度大于终端与服务器之间的传输带宽相匹配的预设长度时,将所述待下载的流媒体文件分片拆分为至少两个子分片。具体包括:

所述处理器301向服务器发出分片下载请求,然后接收服务器发回的反馈信息,所述反馈信息包含待下载的流媒体文件分片的长度,从而确定待下载的流媒体文件分片的长度。当所述待下载的流媒体文件分片长度大于终端与服务器之间的传输带宽相匹配的预设长度时,所述处理器301确定子分片的最大长度和所述待下载流媒体文件分片的字段范围。将所述字段范围划分为至少两个子范围,其中,每一个子范围的长度都不大于所述最大长度。

所述处理器301将所述待下载流媒体文件分片的字段范围划分完成后,生成子分片的下载请求,每一个下载请求与一个子范围相对应,包含待下载流媒体文件分片下载地址和下载请求对应的子范围。然后向服务器发送所述子分片的下载请求。

所述所述通信接口302,接收服务器端发回的每一个子分片,通过通信总线304传输给所述处理器;

所述存储器存储器303,用于存储通过通信接口接收的每一个子分片。

对于装置或终端实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1