一种基于流媒体选择码流分段的方法、播放器和终端的制作方法
【专利摘要】本发明公开了一种基于流媒体选择码流分段的方法,所述方法包括,获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量;根据每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段;如果判断出下载所述初始分段不会导致终端播放异常,则将所述初始分段作为选定的码流分段。根据本发明实施例的一种基于流媒体选择码流分段的方法,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。本发明实施例还公开了一种基于流媒体选择码流分段的播放器和终端。
【专利说明】一种基于流媒体选择码流分段的方法、播放器和终端
【技术领域】
[0001]本发明涉及通信系统中的视频通信技术,特别涉及一种基于流媒体选择码流分段的方法、播放器和终端。
【背景技术】
[0002]流媒体技术是一种在应用层中使用HTTP (Hypertext transfer protocol,超文本传输协议)实现媒体数据传输的技术,该技术能够实现在下载媒体节目的同时还可以观看媒体节目。为了适应终端的多样性以及用户所接入的网络带宽的波动性,在提供媒体内容的服务器上针对同一个媒体内容会同时存储有多个的码流。码流之间的音视频编码参数,码率或者视频的分辨率都是不同的,而且每一个码流都被分割为多个分段,每个分段是可以独立播放的。终端可以根据网络带宽信息请求不同码率的分段,不同码率的分段在终端是可以连续的播放的。
[0003]在现有的技术中,服务器会向终端提供媒体内容的MPD (media presentationdescription,媒体描述文件),在该文件中会描述每个码流的码率,时间等信息,也会描述每个分段的码率,时间,URL (Uniform/Universal Resource Locator,统一资源定位符)等信息;终端在获得MPD后,解析该MPD,获得服务器中对应媒体内容所提供的码流的码率等信息,终端会根据终端的网络带宽情况,请求码率小于当前带宽的的最大码率的媒体节目分段;该方法实现简单,但是该方法在实现时仅仅考虑分段码率不超过带宽的情况,采用该方法既不能充分的利用带宽资源,也不能带给用户良好的视频體。
【发明内容】
[0004]有鉴与此,本发明的实施例提供了一种基于流媒体选择码流分段的方法、播放器和终端,根据本发明实施例的基于流媒体选择码流分段的方法、装置和终端,在充分利用带宽,保证在缓存不下溢的同时,通过向下调整高质量和/或向上调整低质量分段的质量/码率的方式,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0005]本发明第一方面的实施例公开了一种基于流媒体选择码流分段的方法,所述方法包括:获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量;根据每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段;如果判断出下载所述初始分段不会导致终端播放异常,则将所述初始分段作为选定的码流分段。
[0006]根据本发明第一方面实施例的基于流媒体选择码流分段的方法,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0007]在本发明第一方面实施例的一种可能实现的方式中,所述判断出下载所述初始分段不会导致终端播放异常包括:获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值;如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
[0008]结合上述任意之一实施例的本发明第一方面实施例的第二种可能实现的方式中,所述根据每一个分段的所述分段质量和质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段选择初始分段包括:在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分段。
[0009]结合上述任意之一实施例的本发明第一方面实施例的第三种可能实现的方式中,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度;在根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致所述终端的缓存小于预设的缓存阈值之前,所述方法还包括:获得所述终端下载所述流媒体的可用网络带宽;所述根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致所述终端的缓存小于所述预设的缓存阈值包括:根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度;如果所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值。
[0010]结合上述任意之一实施例的本发明第一方面实施例的第四种可能实现的方式中在所述获得终端的缓存参数信息之后,所述方法还包括:如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,在对应所述第一时刻的全部所述分段中顺序选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
[0011]结合上述任意之一实施例的本发明第一方面实施例的第五种可能实现的方式中,所述预设质量阈值的值可以是预先设定的;或所述预设质量阈值的值是根据所述终端已经下载的分段质量加权计算得到的;或所述预设质量阈值的值是根据所述终端已经下载的分段质量和所述第一时刻分段的全部分段的分段质量加权计算得到的。
[0012]本发明第二方面实施例公开了一种基于流媒体选择码流分段的方法,所述方法包括:分别获得对应所述流媒体的第一播放时刻的至少两个码流分段的分段信息和对应第二播放时刻的至少两个码流分段的分段信息,所述第一播放时刻的码流分段的分段信息和第二播放时刻的码流分段的分段信息包括分段质量;在所述对应所述第一播放时刻的码流分段中选择第一码流分段,在对应所述第二播放时刻的码流分段中选择第二码流分段,组成第一码流分段组,其中,所述第一码流分段组是能够在终端中连续播放的码流分段组;在所述第一码流分段组中未选定码流分段的分段中选择分段质量最小的所述码流分段,在所述分段质量最小的码流分段对应的所述第一播放时刻的全部码流分段中按照分段质量从低到高的顺序选择分段质量大于所述分段质量最小的码流分段的第三码流分段,使用所述第三码流分段替换所述分段质量最小的码流分段的方式更新所述第一码流分段组,若所述更新后的所述第一码流分段组是能够在所述终端中连续播放的码流分段组且所述第一播放时刻的全部码流分段中分段质量最大的码流分段不是所述第三码流分段,则重复本步骤直至所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组或所述第三码流分段是所述第一播放时刻的全部码流分段中分段质量最大的码流分段;若所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组,则,在所述更新后的所述第一码流分段组中选择所述不能连续播放时刻之前的分段或所述不能连续播放时刻的分段中分段质量最大的码流分段,如果所述更新后的所述第一码流分段组中分段质量最大的码流分段是所述第三码流分段,则,在所述第三码流分段对应的所述第一播放时刻或所述第二播放时刻的全部码流分段中按照分段质量从高到低的顺序选择分段质量小于所述第三码流分段的码流分段作为所述第一播放时刻或所述第二播放时刻的选定码流分段;重复上述步骤直至找到所述第一播时刻和所述第二播放时刻对应的选定码流分段,根据对应所述第一播放时刻的选定码流分段和对应所述第二播放时刻的选定码流分段得到第二码流分段组。
[0013]根据本发明第二方面实施例的一种基于流媒体选择码流分段的方法,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0014]在本发明第二方面实施例的一种可能实现的方式中,所述分段信息包括分段时间长度、分段码率;在所述分别获得对应所述流媒体的第一播放时刻的至少两个码流分段的分段信息和对应第二播放时刻的至少两个码流分段的分段信息之后,所述方法还包括:获得终端的缓存参数信息,所述终端的缓存参数信息包括缓存中未播放的流媒体的时间长度;获得所述终端下载所述流媒体的可用网络带宽;判断所述第一码流分段组是能够在终端中连续播放的码流分段组包括:根据所述第一码流分段组中所述第一码流分段的分段时间长度和分段码率以及所述可用网络带宽确定所述第一码流分段下载完成的时间长度;根据所述第一码流分段组中所述第二码流分段的分段时间长度和分段码率以及所述可用网络带宽确定所述第二码流分段下载完成的时间长度;如果所述终端缓存中未播放的流媒体的时间长度和所述第一分段的分段时间长度之和不小于所述第一码流分段下载完成的时间长度和所述预设的缓存阈值之和,且所述终端缓存中未播放的流媒体的时间长度、所述第一分段的分段时间长度、所述第二分段的分段时间长度之和不小于所述第一码流分段下载完成的时间长度、所述第二码流分段下载完成的时间长度、所述预设的缓存阈值之和;则所述第一码率分段组是能够在所述终端中连续播放的码流分段组。
[0015]结合上述任意之一实施例的本发明第二方面实施例的第二种可能实现的方式中,在所述若所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组之后,所述方法还包括:如果所述更新后的所述第一码流分段组中所述不能连续播放时刻之前的分段或所述不能连续播放时刻的分段中分段质量最大的码流分段不是所述第三码流分段,则,在对应所述第二播放时刻的全部码流分段中按照分段质量从高到低的方式顺序选择分段质量小于所述更新后的所述第一码流分段组中对应所述第二播放时刻码流分段的第四码流分段,使用所述第四码流分段替换更新后的所述第一码流分段组中对应所述第二播放时刻码流分段的方式更新所述更新后的所述第一码流分段组,若所述更新后的所述第一码流分段组是能够在所述终端中连续播放的码流分段组,则在更新后的所述第一码流分段组中未选定码流分段的分段中选择分段质量最小的码流分段,在所述分段质量最小的码流分段对应的所述第一播放时刻或第二播放时刻的全部码流分段中按照分段质量从高到低的顺序选择分段质量大于所述分段质量最小的码流分段的作为更新后的第三码流分段,根据所述更新后的第三码流分段更新所述第一码流分段组,则重复本步骤直至所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组或所述更新后的第三码流分段是其对应的所述第一播放时刻或所述第二播放时刻的全部码流分段中分段质量最大的码流分段,并重复上述步骤直至所述更新后的第三码流分段是所述更新后的所述第一码流分段组中分段质量最大的码流分段或所述第四码流分段是其对应的所述第一播放时刻或所述第二播放时刻的全部码流分段中分段质量最小的码流分段。
[0016]结合上述任意之一实施例的本发明第二方面实施例的第三种可能实现的方式中,在所述根据对应所述第一播放时刻的选定码流分段和对应所述第二播放时刻的选定码流分段得到第二码流分段组之后,所述方法还包括:根据所述第二码流分段组得到所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量;若所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量大于预设的质量阈值,则在对应的所述第一播放时刻的全部码流分段中顺序选择分段质量小于对应所述第一播放时刻的选定码流分段的分段质量的第五码流分段,将所述第五码流分段作为对应所述第一播放时刻的码流分段更新所述第二码流分段组,重复本步骤直至所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量不大于预设的质量阈值;输出更新后的所述第二码流分段组。
[0017]结合上述任意之一实施例的本发明第二方面实施例的第四种可能实现的方式中所述质量阈值可以是预先设定的;或所述质量阈值是根据所述终端已经下载的分段质量加权计算得到的;或所述质量阈值是根据所述终端已经下载的分段质量和所述第一时刻分段的全部分段的分段质量加权计算得到的。本发明第三方面实施例公开了一种基于流媒体选择码流分段的播放器,其特征在于,所述播放器包括:接收模块,所述接收模块用于获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量;初始分段选择模块,用于根据所述接收模块得到的每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段;分段选定模块,如果判断出下载所述初始分段不会导致终端播放异常,则所述分段选定模块用于将所述初始分段选择模块得到的所述初始分段作为选定的码流分段。
[0018]根据本发明第三方面实施例的基于流媒体选择码流分段的播放器,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0019]在本发明第三方面实施例的一种可能实现的方式中,所述接收模块还用于获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值;如果根据所述接收模块接收的所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
[0020]结合上述任意之一实施例的本发明第三方面实施例的第二种可能实现的方式中,所述初始分段选择模块具体用于:在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分段。
[0021]结合上述任意之一实施例的本发明第三方面实施例的第三种可能实现的方式中,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度;所述接收模块还用于获得所述终端下载所述流媒体的可用网络带宽;所述码流选定模块具体用于根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度;并判断所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则认为下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值,将所述初始分段作为选定的码流分段。
[0022]结合上述任意之一实施例的本发明第三方面实施例的第四种可能实现的方式中,如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,所述码流选定模块还具体用于在对应所述第一时刻的全部所述分段中按照分段质量降序的方式选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
[0023]本发明第四方面的实施例公开了一种基于流媒体选择码流分段的终端,其特征在于,所述终端包括:接收器,处理器;所述接收器用于获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量;所述处理器用于根据所述接收器得到的每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段;如果判断出下载所述初始分段不会导致终端播放异常,则所述处理器还用于将所述初始分段选择模块得到的所述初始分段作为选定的码流分段。
[0024]根据本发明第四方面实施例的基于流媒体选择码流分段的终端,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0025]在本发明第四方面实施例的一种可能实现的方式中,所述接收器还用于获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值;所述处理器还用于如果根据所述接收器接收的所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
[0026]结合上述任意之一实施例的本发明第四方面实施例的第二种可能实现的方式中,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度;所述接收器还用于获得所述终端下载所述流媒体的可用网络带宽;所述处理器还具体用于在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分段;根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度;并判断所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则认为下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值,将所述初始分段作为选定的码流分段。
[0027]结合上述任意之一实施例的本发明第四方面实施例的第三种可能实现的方式中所述处理器还用于如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,所述码流选定模块还具体用于在对应所述第一时刻的全部所述分段中按照分段质量降序的方式选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
【专利附图】
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明第一方面实施例的一种基于流媒体选择码流分段的方法的流程图。
[0030]图2为本发明第一方面实施例的一种基于流媒体选择码流分段的方法的另一种流程图。
[0031]图3为本发明第二方面实施例的一种基于流媒体选择码流分段的方法的流程图。
[0032]图4为本发明第三方面实施例的一种基于流媒体选择码流分段的播放器的结构示意图。
[0033]图5为本发明第四方面实施例的一种基于流媒体选择码流分段的终端的结构示意图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]下面结合图1描述根据本发明实施例的一种基于流媒体选择码流分段的方法,如图1所示,所述方法包括:
[0036]Sll:获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量。
[0037]S12:根据每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段。
[0038]S13:如果判断出下载所述初始分段不会导致终端播放异常,则将所述初始分段作为选定的码流分段。
[0039]根据本发明实施例的基于流媒体选择码流分段的方法,使得最终选择的码流分段在充分利用带宽的同时,分段的质量更加接近,视频播放时视频质量更加平滑。
[0040]下面结合图2描述根据本发明实施例的一种基于流媒体选择码流分段的方法,如图2所示,所述方法包括:
[0041]S21:获取分段信息。
[0042]在本发明的一个实施例中,终端通过解析MPD (media presentationdescription,媒体描述文件)信息的方式,获取节目的码流的分段Fi j的信息,分段时长信息Dij,分段的码率信息Ri j,以及分段的质量信息Qij ;Fij表示码流i的第j个分段,Dij表示分段Fij的播放的时间长度,Rij是分段的码率信息,Qij是分段的质量信息,该信息可以是分段的 PSNR (Peak Signal to Noise Ratio,峰值信噪比)值,SIMM (StructuralSIMilarity,结构相似性),MOS (MeanOpinionScore,平均意见得分)或者其他的主客观质量数据或者质量分级信息。可以理解的是,下文所述的分段质量的大小指的是这些质量数据或质量分级信息表示的分段质量的结果,而不是具体指这些质量数据或质量分级信息的数值大小;i,j是大于O的整数。为了清楚的描述获取到的分段信息,我们在这里给出一组数据,具体如下表所示。表格中码率的单位为(kbps),PSNR的单位为(db),分段时长的单位为(S),其中 i = 1,2,3, j = 1,2,30
[0043]
【权利要求】
1.一种基于流媒体选择码流分段的方法,其特征在于,所述方法包括: 获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量; 根据每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段; 如果判断出下载所述初始分段不会导致终端播放异常,则将所述初始分段作为选定的码流分段。
2.如权利要求1所述的选择码流分段的方法,其特征在于,所述判断出下载所述初始分段不会导致终端播放异常包括: 获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值; 如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
3.如权利要求1或2所述的选择码流分段的方法,其特征在于,所述根据每一个分段的所述分段质量和质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段选择初始分段包括: 在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分 段。
4.如权利要求2或3所述的选择码流分段的方法,其特征在于,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度;在根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致所述终端的缓存小于预设的缓存阈值之前,所述方法还包括: 获得所述终端下载所述流媒体的可用网络带宽; 所述根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致所述终端的缓存小于所述预设的缓存阈值包括: 根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度; 如果所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值。
5.如权利要求2-4任意之一所述的选择码流分段的方法,其特征在于,在所述获得终端的缓存参数信息之后,所述方法还包括: 如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,在对应所述第一时刻的全部所述分段中顺序选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
6.如权利要求1-5任意之一所述的选择码流分段的方法,其特征在于:所述预设质量阈值的值可以是预先设定的;或 所述预设质量阈值的值是根据所述终端已经下载的分段质量加权计算得到的;或所述预设质量阈值的值是根据所述终端已经下载的分段质量和所述第一时刻分段的全部分段的分段质量加权计算得到的。
7.一种基于流媒体选择码流分段的方法,其特征在于,所述方法包括: 分别获得对应所述流媒体的第一播放时刻的至少两个码流分段的分段信息和对应第二播放时刻的至少两个码流分段的分段信息,所述第一播放时刻的码流分段的分段信息和第二播放时刻的码流分段的分段信息包括分段质量; 在所述对应所述第一播放时刻的码流分段中选择第一码流分段,在对应所述第二播放时刻的码流分段中选择第二码流分段,组成第一码流分段组,其中,所述第一码流分段组是能够在终端中连续播放的码流分段组; 在所述第一码流分段组中未选定码流分段的分段中选择分段质量最小的所述码流分段,在所述分段质量最小的码流分段对应的所述第一播放时刻的全部码流分段中按照分段质量从低到高的顺序选择分段质量大于所述分段质量最小的码流分段的第三码流分段,使用所述第三码流分段替换所述分段质量最小的码流分段的方式更新所述第一码流分段组,若所述更新后的所述第一码流分段组是能够在所述终端中连续播放的码流分段组且所述第一播放时刻的全部码流分段中分段质量最大的码流分段不是所述第三码流分段,则重复本步骤直至所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组或所述第三码流分段是所述第一播放时刻的全部码流分段中分段质量最大的码流分段; 若所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组,贝U,在所述更新后的所述第一码流分段组中选择所述不能连续播放时刻之前的分段或所述不能连续播放时刻的分段中质量最大的码流分段,如果所述更新后的所述第一码流分段组中分段质量最大的码流分段是所述第三码流分段,则,在所述第三码流分段对应的所述第一播放时刻或所述第二播放时刻的全部码流分段中按照分段质量从高到低的顺序选择分段质量小于所述第三码流分段的码流分段作为所述第一播放时刻或所述第二播放时刻的选定码流分段;重复上述步骤直至找到所述第一播时刻和所述第二播放时刻对应的选定码流分段,根据对应所述第一播放时刻的选定码流分段和对应所述第二播放时刻的选定码流分段得到第二码流分段组。
8.如权利要求7所述的选择码流分段的方法,其特征在于,所述分段信息包括分段时间长度、分段码率;在所述分别获得对应所述流媒体的第一播放时刻的至少两个码流分段的分段信息和对应第二播放时刻的至少两个码流分段的分段信息之后,所述方法还包括: 获得终端的缓存参数信息,所述终端的缓存参数信息包括缓存中未播放的流媒体的时间长度; 获得所述终端下载所述流媒体的可用网络带宽; 判断所述第一码流分段组是能够在终端中连续播放的码流分段组包括: 根据所述第一码流分段组中所述第一码流分段的分段时间长度和分段码率以及所述可用网络带宽确定所述第一码流分段下载完成的时间长度; 根据所述第一码流分段组中所述第二码流分段的分段时间长度和分段码率以及所述可用网络带宽确定所述第二码流分段下载完成的时间长度; 如果所述终端缓存中未播放的流媒体的时间长度和所述第一分段的分段时间长度之和不小于所述第一码流分段下载完成的时间长度和所述预设的缓存阈值之和,且 所述终端缓存中未播放的流媒体的时间长度、所述第一分段的分段时间长度、所述第二分段的分段时间长度之和不小于所述第一码流分段下载完成的时间长度、所述第二码流分段下载完成的时间长度、所述预设的缓存阈值之和;则所述第一码率分段组是能够在所述终端中连续播放的码流分段组。
9.如权利要求7或8所述的选择码流分段的方法,其特征在于,在所述若所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组之后,所述方法还包括:如果所述更新后的所述第一码流分段组中所述不能连续播放时刻之前的分段或所述不能连续播放时刻的分段的分段质量最大的码流分段不是所述第三码流分段,则,在对应所述第二播放时刻的全部码流分段中按照分段质量从高到低的方式顺序选择分段质量小于所述更新后的所述第一码流分段组中对应所述第二播放时刻码流分段的第四码流分段,使用所述第四码流分段替换更新后的所述第一码流分段组中对应所述第二播放时刻码流分段的方式更新所述更新后的所述第一码流分段组,若所述更新后的所述第一码流分段组是能够在所述终端中连续播放的码流分段组,则在更新后的所述第一码流分段组中未选定码流分段的分段中选择分段质量最小的码流分段,在所述分段质量最小的码流分段对应的所述第一播放时刻或第二播放时刻的全部码流分段中按照分段质量从高到低的顺序选择分段质量大于所述分段质量最小的码流分段的作为更新后的第三码流分段,根据所述更新后的第三码流分段更新所述第一码流分段组,则重复本步骤直至所述更新后的所述第一码流分段组是不能够在所述终端中连续播放的码流分段组或所述更新后的第三码流分段是其对应的所述第一播放时刻或 所述第二播放时刻的全部码流分段中分段质量最大的码流分段,并 重复上述步骤直至所述更新后的第三码流分段是所述更新后的所述第一码流分段组中分段质量最大的码流分段或所述第四码流分段是其对应的所述第一播放时刻或所述第二播放时刻的全部码流分段中分段质量最小的码流分段。
10.如权利要求7-9任意一项所述的选择码流分段的方法,其特征在于,在所述根据对应所述第一播放时刻的选定码流分段和对应所述第二播放时刻的选定码流分段得到第二码流分段组之后,所述方法还包括: 根据所述第二码流分段组得到所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量; 若所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量大于预设的质量阈值,则在对应的所述第一播放时刻的全部码流分段中顺序选择分段质量小于对应所述第一播放时刻的选定码流分段的分段质量的第五码流分段,将所述第五码流分段作为对应所述第一播放时刻的码流分段更新所述第二码流分段组,重复本步骤直至所述第二码流分段组中对应所述第一播放时刻的码流分段的分段质量不大于预设的质量阈值; 输出更新后的所述第二码流分段组。
11.如权利要求10所述的选择码流分段的方法,其特征在于, 所述质量阈值可以是预先设定的;或所述质量阈值是根据所述终端已经下载的分段质量加权计算得到的;或 所述质量阈值是根据所述终端已经下载的分段质量和所述第一时刻分段的全部分段的分段质量加权计算得到的。
12.一种基于流媒体选择码流分段的播放器,其特征在于,所述播放器包括:接收模块,所述接收模块用于获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量; 初始分段选择模块,用于根据所述接收模块得到的每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段; 分段选定模块,如果判断出下载所述初始分段不会导致终端播放异常,则所述分段选定模块用于将所述初始分段选择模块得到的所述初始分段作为选定的码流分段。
13.如权利要求12所述的选择码流分段的播放器,其特征在于,所述接收模块还用于获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值;如果根据所述接收模块接收的所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
14.如权利要求12或13所述的选择码流分段的播放器,其特征在于,所述初始分段选择模块具体用于:在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分段。
15.如权利要求13或14所述的选择码流分段的播放器,其特征在于,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度; 所述接收模块还用于获得所述终端下载所述流媒体的可用网络带宽; 所述码流选定模块具体用于根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度;并判断所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则认为下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值,将所述初始分段作为选定的码流分段。
16.如权利要求13-15任意之一所述的选择码流分段的播放器,其特征在于,如果根据所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,所述码流选定模块还具体用于在对应所述第一时刻的全部所述分段中按照分段质量降序的方式选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
17.一种基于流媒体选择码流分段的终端,其特征在于,所述终端包括: 接收器,处理器; 所述接收器用于获得所述流媒体中对应第一时刻的至少两个分段的每一个分段的分段信息,其中,所述分段信息包括分段质量; 所述处理器用于根据所述接收器得到的每一个分段的所述分段质量和预设质量阈值在对应所述第一时刻的至少两个分段中选择一个初始分段;如果判断出下载所述初始分段不会导致终端播放异常,则所述处理器还用于将所述初始分段选择模块得到的所述初始分段作为选定的码流分段。
18.如权利要求17所述的选择码流分段的终端,其特征在于,所述接收器还用于获得终端的缓存参数信息,所述缓存参数信息包括预设的缓存阈值;所述处理器还用于如果根据所述接收器接收的所述初始分段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段不会导致可用的所述终端的缓存小于所述预设的缓存阈值,则判断出下载所述初始分段不会导致终端播放异常。
19.如权利要求18所述的选择码流分段的终端,其特征在于,所述分段信息还包括分段时间长度、分段码率;所述终端的缓存参数信息还包括缓存中未播放的流媒体的时间长度; 所述接收器还用于获得所述终端下载所述流媒体的可用网络带宽; 所述处理器还具体用于在对应所述第一时刻的全部所述分段中选择分段质量与质量阈值的差值的绝对值最小的所述分段作为初始分段;根据所述初始分段的分段时间长度和分段码率以及所述可用网络带宽确定完成所述初始分段下载的时间长度;并判断所述终端缓存中未播放的流媒体的时间长度和所述初始分段的分段时间长度之和不小于所述初始分段下载完成的时间长度和所述预设的缓存阈值之和,则认为下载所述初始分段不会导致所述可用的终端缓存小于预设的缓存阈值,将所述初始分段作为选定的码流分段。
20.如权利要求18或19所述的选择码流分段的终端,其特征在于,所述处理器还用于如果根据所述初始分 段的分段信息和所述终端的缓存参数信息判断出下载所述初始分段会导致可用的所述终端的缓存小于预设的缓存阈值,则,所述码流选定模块还具体用于在对应所述第一时刻的全部所述分段中按照分段质量降序的方式选择分段质量比所述初始分段的分段质量小的第二分段,将所述第二分段作为更新后的初始分段,重复上述步骤直至判断出下载所述更新后的初始分段不会导致可用的所述终端的缓存小于预设的缓存阈值,将所述更新后的初始分段作为选定的码流分段。
【文档编号】H04N21/647GK103929684SQ201310012242
【公开日】2014年7月16日 申请日期:2013年1月14日 优先权日:2013年1月14日
【发明者】邸佩云, 刘欣, 许阳坡 申请人:华为技术有限公司