一种调整流媒体码率的方法及设备与流程

文档序号:15685192发布日期:2018-10-16 20:59阅读:222来源:国知局
本申请涉及直播视频处理
技术领域
,尤其涉及一种调整流媒体码率的方法及设备。
背景技术
:在互联网和多媒体技术应用中,用户可以通过智能电视、手机等视频播放终端设备从互联网上在线获取视频,由于从互联网上获取的视频是通过公网进行数据传输,当网络抖动、网络时延波动比较大等现象导致网络传输速率抖动时,终端设备就需要不间断的缓冲视频,这样便导致视频画面不断卡顿。目前主要采用自适应流媒体传输技术,在自适应传输系统中,服务器将同一份视频编成不同的码率,且将视频切成多个分片。在视频流的传输过程中可根据网络带宽、缓存大小等因素,动态调整资源比特率来为终端设备提供与当前网络状态适应的视频流传输速率,使得在网络环境较差时也能达到的最佳播放体验。终端设备可向服务器请求不同码率的分片,例如终端设备在根据当前网络带宽的码率和本地缓存计算出平滑码率后,向服务器请求下载接近平滑码率的分片,从而实现动态码率切换。但终端设备计算的平滑码率值和实际下载的播放分片的实际码率误差很大,导致客户端的播放缓存发生欠载,出现播放卡顿,影响用户体验。由于目前主流的片源编码器采用vbr模式进行媒体编码,即片源的媒体码率不固定,而在服务器下发的片源码率描述文件中的媒体码率是分片的平均码率。客户端会将计算出的平滑码率与分片的平均码率进行比较,若平滑码率大于平均码率,客户端就会进行码率的上切(是指调高码率),以从服务器获取更高码率的分片。但是,若原来的分片的实际码率远高于平均码率,客户端再进行上切,这样就会出现客户端的缓存数据耗尽后,分片还未下载完成的情况,最终导致播放卡顿,当卡顿后,可能又会触发客户端进行码率下切,如此,下切之后上切,上切完因为卡顿又下切,可以将该种现象称之为乒乓效应。技术实现要素:本申请提供了一种调整流媒体码率的方法及设备,能够解决现有技术中采用自适应流媒体传输技术进行直播视频时的乒乓效应的问题。本申请第一方面提供一种调整流媒体码率的方法,该方法包括:终端设备在计算出平滑码率后向服务器发送资源请求,所述资源请求主要包括平滑码率和所述终端设备缓存区的缓存时长,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,该平滑码率能够适应当前带宽,是当前终端设备播放视频片源的最佳理想码率,终端设备使用该平滑码率播放视频,则不会出现卡顿现象。服务器在接收终端设备的资源请求后,可在数据库中找到所述终端设备当前待播放的视频片源,然后从所述终端设备当前待播放的视频片源中确定目标分片,再将所述目标分片发送至所述终端设备。其中,所述目标分片的码率小于所述平滑码率,所述目标分片的预测下载时长小于所述缓存时长。现有机制中,客户端只能将平滑码率与分片的平均码率进行比较,最终导致码率切换的乒乓效应。与现有机制相比,本申请中则是服务器在接收终端设备发送的包括平滑码率和缓存时长的资源请求后,从视频片源中确定目标分片,然后所述服务器将该目标分片发送给所述终端设备。可见,由于服务器发送给终端设备的目标分片的码率小于所述平滑码率,并且该目标分片的预测下载时长小于所述缓存时长,所以最终发送给终端设备的目标分片是满足当前流畅播放的条件的,能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。在一些可能的设计中,所述服务器从所述终端设备当前待播放的视频片源中确定目标分片,将所述目标分片发送给所述终端设备的具体过程可以参考如下1-3所描述的操作:1、所述服务器从码率集合中选择候选码率,所述码率集合是指分片信息集合中低于所述平滑码率的码率的集合,所述分片信息集合包括至少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率。可选的,所述码率集合可由所述资源请求携带的指示信息指示,或者所述码率集合可由所述服务器根据所述平滑码率从所述分片信息集合选择的码率的集合。下面分别进行说明:(a)、码率集合由终端设备提供终端设备在发送资源请求之前,可从服务器获取上述分片信息集合,然后终端设备计算出平滑码率,再将平滑码率与分片信息集合中的各码率进行比较,最终可以确定出低于所述平滑码率的码率的码率集合,最后将指示所述码率集合的信息或者所述码率集合携带在资源请求中。可见,由终端设备为服务器提供上述码率集合,能够减少服务器侧在确定目标分片时,只需要遍历码率集合中的码率即可。当然,若由服务器来确定上述码率集合,那么,(a)种方式中,由终端设备直接提供的话,就不需要由服务器去从分片信息集合中比较一遍了。由此可见,采用本方案,可有效减少服务器的运算量,进而提高运算效率,最终使得服务器能够快速的定位到目标分片。(b)、码率集合由服务器提供若上述码率集合由服务器确定,那么,服务器只需要从终端设备处获取的平滑码率就可以确定出上述码率集合,且服务器确定码率集合的方式与终端设备相同,此处不作赘述。服务器在确定码率集合后,就可以通过遍历码率集合来确定目标分片了,通过缩小码率的搜索范围,这样在确定目标分片时,就不需要将平滑码率分别与分片信息集合中的每个码率都遍历一遍,只需要遍历码率集合中的码率即可。由此可见,采用本方案,可有效减少服务器的运算量,进而提高运算效率,最终使得服务器能够快速的定位到目标分片。2、所述服务器从码率集合中选择候选码率后,可根据平均速率和所述候选码率对应的目标分片的分片大小得到所述候选分片的预测下载时长,所述平均速率为所述终端设备当前下载分片的平均速率。可选的,所述平均速率可在所述资源请求携带,或者由所述服务器统计得到。3、在得到所述候选分片的预测下载时长后,所述服务器判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述预测下载时长大于所述缓存时长,则服务器从所述码率集合中选择码率低于所述候选分片的码率作为所述候选码率,并且重复前面所述的“计算候选分片的预测下载时长和判断候选分片的预测下载时长是否大于所述缓存时长”的操作,直至找到预测下载时长小于缓存时长的候选分片。相应的,若所述候选分片的预测下载时长小于所述缓存时长,则所述服务器将所述候选分片作为所述目标分片发送至所述终端设备。在一些可能的设计中,在同时有很多终端设备向服务器请求视频片源资源时,为减少服务器侧的判断时长,若所述候选分片的预测下载时长大于所述缓存时长,服务器可直接从所述终端设备当前待播放的视频片源中选择至少一个与所述候选分片属于相同视频片源且码率低于所述候选分片的分片。然后,所述服务器将请求响应发送至所述终端设备,其中,所述请求响应携带与所述候选分片属于相同视频片源且码率低于所述候选分片的分片的下载地址,以供终端设备直接下载。可选的,请求响应中可以携带与所述候选分片所属视频片源中码率最低的分片的下载地址,这样可以保证终端设备侧可以流畅的播放该分片。通过这种处理机制,可进一步优化服务器侧对多个终端设备的响应,这样可以提高服务器的处理效率,同时也减少终端设备侧的等待时长。在一些可能的设计中,所述资源请求还包括用于指示所述服务器是否切换到码率自适应模式的字段,一种实施方式中,该字段可以为动态请求(dynamic-request)。如果dynamic-request指示的值为1时,则表示当前采用码率自适应模式,那么服务器就需要进行动态码率切换,可通过资源请求的前两个扩展头域识别出当前与终端设备的下载速率最匹配的分片,并将该分片返回给终端设备。如果dynamic-request指示的值为0时,则表示当前未采用码率自适应模式(例如用户在终端设备的客户端上手动关闭了码率自适应的功能),那么服务器在收到该资源请求后,就不需要进行动态码率切换。在一些可能的设计中,考虑到终端设备发出资源请求至服务器计算候选分片的预测下载时长期间,终端设备的缓存区的缓存会存在一些消耗,所以,为提高服务器侧确定目标分片的准确度,还需要考虑该期间终端设备缓存区的缓存消耗量。由此,终端设备可在所述资源请求携带指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送所述资源请求到所述服务器接收到所述资源请求期间,所述终端设备缓存区的缓存消耗的估计值。该估计值可以是经验值,也可是终端设备根据当前的播放速率动态计算出,具体本申请不作限定,这样服务器在比较预测下载时长与缓存时长时,减去该缓存偏移量即可。本申请第二方面提供一种调整流媒体码率的方法,所述方法包括:终端设备获取当前的平滑码率和分片信息集合,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,所述分片信息集合包括少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;所述终端设备从所述分片信息集合中确定目标码率,将资源请求发送至所述服务器,所述目标码率小于所述平滑码率,所述目标码率对应的目标分片的预测下载时长小于所述终端设备缓存区当前的缓存时长,所述资源请求用于请求下载所述目标码率对应的目标分片。现有机制中,客户端只能将平滑码率与分片的平均码率进行比较,最终导致码率切换的乒乓效应。与现有机制相比,本申请所提供的方案中,终端设备获取平滑码率和分片信息集合后,可从分片信息集合中选择小于所述平滑码率的目标码率,当确定选中的目标码率对应的目标分片的预测下载时长小于当前的缓存时长时,就表示该目标码率适应当前的带宽,所以终端设备可以将该目标码率携带在资源请求中发送给服务器,最终得到合适的目标分片。可见终端设备通过将目标分片的预测下载时长与缓存时长进行比较,能够准确的判断自身计算出的目标码率所对应的目标分片是否满足当前流畅播放的条件,以便服务器能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。在一些可能的设计中,在所述终端设备获取当前的平滑码率和分片信息集合之后,所述终端设备从所述分片信息集合中确定目标码率之前,所述终端设备还可从所述分片信息集合中确定低于所述平滑码率的码率集合,在确定码率集合后,终端设备就可以确定目标分片了,通过缩小码率的搜索范围,这样在确定目标分片时,就不需要将平滑码率分别与分片信息集合中的每个码率都遍历一遍,只需要遍历码率集合中的码率即可。由此可见,采用本方案,可有效减少运算量,也能提高运算效率。在一些可能的设计中,所述终端设备从所述分片信息集合中确定目标码率,将资源请求发送至所述服务器,可包括:所述终端设备从所述码率集合中选择候选码率,然后根据所述候选码率对应的候选分片的分片大小和所述平均速率得到所述候选分片的预测下载时长。在得到所述候选分片的预测下载时长后,所述终端设备判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述候选分片的预测下载时长大于所述缓存时长,则从所述分片集合中选择低于所述候选分片的码率作为所述候选码率,重复执行上述“计算候选分片的预测下载时长和判断候选分片的预测下载时长是否大于所述缓存时长”的操作,直至找到预测下载时长小于缓存时长的候选分片对应的目标码率。若所述候选分片的预测下载时长小于所述缓存时长,则将所述候选码率作为所述目标码率,将所述资源请求发送至所述服务器,所述资源请求用于请求下载所述目标码率对应的所述目标分片。在一些可能的设计中,除了终端设备自行确定目标分片,还可以由服务器来确定,那么,终端设备就需要为服务器提供与确定目标分片相关的参数。具体来说,所述终端设备在从分片信息集合中选择小于所述平滑码率的码率之后,可向所述服务器发送另一资源请求,所述另一资源请求可包括所述平滑码率和所述终端设备缓存区的缓存时长。之后,所述服务器在接收到上述另一资源请求后,从分片信息集合中选择小于所述平滑码率的码率,当确定选中的码率对应的分片的预测下载时长小于所述终端设备缓存区当前的缓存时长时,所述服务器将预测下载时长小于所述缓存时长的分片发送给所述终端设备。对服务器来说,如何根据终端设备发送的另一资源请求来确定目标分片的具体操作可参考上述第一方面所述的技术方案,此处不作赘述。需要说明的是,对于是否由终端设备来确定目标分片,还是由服务器来确定目标分片,可以优先由终端设备来确定目标分片,这样可以有效的降低服务器的运算负荷,也能提高确定与实际下载速率匹配的目标分片的准确率。终端设备可以主动执行确定目标码率的操作;也可以是在用户关闭了码率动态切换的功能时,为服务器提供运算的参数,最终由服务器来确定目标分片;还可以是,不考虑用户是否关闭码率动态切换的功能,终端设备都可主动为服务器提供运算的参数,最终由服务器来确定目标分片;当然也可以是在终端设备无法正确的确定目标码率时,向服务器发出上述另一资源请求。可选的,为了减少服务器的运算,终端设备还可在所述另一资源请求携带用于指示所述分片信息集合中低于所述平滑码率的码率集合的信息,使得服务器可以小范围的去确定候选码率、减少判断候选分片的预测下载时长是否小于缓存时长的次数等操作,最终使得服务器能够快速的定位到目标分片。可选的,所述另一资源请求还包括所述终端设备当前下载分片的平均速率,所述平均速率用于所述服务器计算分片的预测下载时长。可选的,考虑到终端设备发出上述另一资源请求至服务器计算候选分片的预测下载时长期间,终端设备的缓存区的缓存会存在一些消耗,所以,为提高服务器侧确定目标分片的准确度,还需要考虑该期间终端设备缓存区的缓存消耗量。由此,终端设备可在上述另一资源请求携带指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送上述另一资源请求到所述服务器接收到所述另一资源请求期间,所述终端设备缓存区的缓存消耗的估计值。该估计值可以是经验值,也可是终端设备根据当前的播放速率动态计算出,具体本申请不作限定,这样服务器在比较预测下载时长与缓存时长时,减去该缓存偏移量即可。本申请第三方面提供一种服务器,具有实现对应于上述第一方面提供的调整流媒体码率的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。一种可能的设计中,所述服务器可包括:收发模块,用于接收终端设备的资源请求,所述资源请求包括平滑码率和所述终端设备缓存区的缓存时长,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率;处理模块,用于从所述终端设备当前待播放的视频片源中确定目标分片,通过所述收发模块将所述目标分片发送至所述终端设备,所述目标分片的码率小于所述平滑码率,所述目标分片的预测下载时长小于所述缓存时长。可选的,所述处理模块具体用于:从码率集合中选择候选码率,所述码率集合是指分片信息集合中低于所述平滑码率的码率的集合,所述分片信息集合包括至少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;根据平均速率和所述候选码率对应的目标分片的分片大小得到所述候选分片的预测下载时长,所述平均速率为所述终端设备当前下载分片的平均速率;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述预测下载时长大于所述缓存时长,则从所述码率集合中选择码率低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则通过所述收发模块将所述候选分片作为所述目标分片发送至所述终端设备。可选的,所述码率集合由所述资源请求携带的指示信息指示,或者所述码率集合由所述服务器根据所述平滑码率从所述分片信息集合选择的码率的集合。可选的,所述平均速率在所述资源请求携带,或者由所述服务器统计得到。可选的,所述处理模块还用于:若所述候选分片的预测下载时长大于所述缓存时长,则通过所述收发模块将请求响应发送至所述终端设备,所述请求响应携带与所述候选分片属于相同视频片源且码率低于所述候选分片的分片的下载地址。可选的,所述资源请求还包括用于指示所述服务器是否切换到码率自适应模式的字段,和/或,所述资源请求还包括指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送所述资源请求到所述服务器接收到所述资源请求期间,所述终端设备缓存区的缓存消耗的估计值。另一种可能的设计中,所述服务器包括:至少一个处理器、存储器和收发器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:通过所述收发器接收终端设备的资源请求,所述资源请求包括平滑码率和所述终端设备缓存区的缓存时长,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率;从所述终端设备当前待播放的视频片源中确定目标分片,通过所述收发器将所述目标分片发送至所述终端设备,所述目标分片的码率小于所述平滑码率,所述目标分片的预测下载时长小于所述缓存时长。可选的,所述处理器具体用于:从码率集合中选择候选码率,所述码率集合是指分片信息集合中低于所述平滑码率的码率的集合,所述分片信息集合包括至少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;根据平均速率和所述候选码率对应的目标分片的分片大小得到所述候选分片的预测下载时长,所述平均速率为所述终端设备当前下载分片的平均速率;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述预测下载时长大于所述缓存时长,则从所述码率集合中选择码率低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则通过所述收发器将所述候选分片作为所述目标分片发送至所述终端设备。可选的,所述码率集合由所述资源请求携带的指示信息指示,或者所述码率集合由所述服务器根据所述平滑码率从所述分片信息集合选择的码率的集合。可选的,所述平均速率在所述资源请求携带,或者由所述服务器统计得到。可选的,所述处理器还用于:若所述候选分片的预测下载时长大于所述缓存时长,则通过所述收发器将请求响应发送至所述终端设备,所述请求响应携带与所述候选分片属于相同视频片源且码率低于所述候选分片的分片的下载地址。可选的,所述资源请求还包括用于指示所述服务器是否切换到码率自适应模式的字段,和/或,所述资源请求还包括指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送所述资源请求到所述服务器接收到所述资源请求期间,所述终端设备缓存区的缓存消耗的估计值。本申请第四方面提供一种终端设备,具有实现对应于上述第二方面提供的调整流媒体码率的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。一种可能的设计中,所述终端设备可包括:收发模块,用于获取当前的平滑码率和分片信息集合,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,所述分片信息集合包括少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;处理模块,用于从所述收发模块获取的所述分片信息集合中确定目标码率,通过所述收发模块将资源请求发送至所述服务器,所述目标码率小于所述平滑码率,所述目标码率对应的目标分片的预测下载时长小于所述终端设备缓存区当前的缓存时长,所述资源请求用于请求下载所述目标码率对应的目标分片。可选的,所述处理模块在所述收发模块获取当前的平滑码率和分片信息集合之后,在从所述分片信息集合中确定目标码率之前,还用于:从所述分片信息集合中确定低于所述平滑码率的码率集合。可选的,所述处理模块具体用于:从所述码率集合中选择候选码率;根据所述候选码率对应的候选分片的分片大小和所述平均速率得到所述候选分片的预测下载时长;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述候选分片的预测下载时长大于所述缓存时长,则从所述分片集合中选择低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则将所述候选码率作为所述目标码率,通过所述收发模块将所述资源请求发送至所述服务器,所述资源请求用于请求下载所述目标码率对应的所述目标分片。另一种可能的设计中,所述终端设备包括:至少一个处理器、存储器和收发器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:通过所述收发器获取当前的平滑码率和分片信息集合,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,所述分片信息集合包括少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;从通过所述收发器获取的所述分片信息集合中确定目标码率,通过所述收发器将资源请求发送至所述服务器,所述目标码率小于所述平滑码率,所述目标码率对应的目标分片的预测下载时长小于所述终端设备缓存区当前的缓存时长,所述资源请求用于请求下载所述目标码率对应的目标分片。可选的,所述处理器在所述收发器获取当前的平滑码率和分片信息集合之后,在从所述分片信息集合中确定目标码率之前,还用于:从所述分片信息集合中确定低于所述平滑码率的码率集合。可选的,所述处理处理器具体用于:从所述码率集合中选择候选码率;根据所述候选码率对应的候选分片的分片大小和所述平均速率得到所述候选分片的预测下载时长;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述候选分片的预测下载时长大于所述缓存时长,则从所述分片集合中选择低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则将所述候选码率作为所述目标码率,通过所述收发器将所述资源请求发送至所述服务器,所述资源请求用于请求下载所述目标码率对应的所述目标分片。本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。相较于现有技术,本申请提供的方案中,服务器在接收终端设备发送的包括平滑码率和缓存时长的资源请求后,从视频片源中确定目标分片,然后所述服务器将该目标分片发送给所述终端设备。可见,由于服务器发送给终端设备的目标分片的码率小于所述平滑码率,并且该目标分片的预测下载时长小于所述缓存时长,所以最终发送给终端设备的目标分片是满足当前流畅播放的条件的,能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。附图说明图1为本发明实施例中的一种网络拓扑结构示意图;图2为本发明实施例中的调整流媒体码率的一种流程示意图;图3为本发明实施例中的调整流媒体码率的另一种流程示意图;图4为本发明实施例中的调整流媒体码率的另一种流程示意图;图5为本发明实施例中的调整流媒体码率的另一种流程示意图;图6为本发明实施例中的调整流媒体码率的装置的一种结构示意图;图7为本发明实施例中的执行调整流媒体码率的装置的实体装置的一种结构示意图。具体实施方式本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。本申请供了一种调整流媒体码率的方法及设备,可用于直播
技术领域
。以下进行详细说明。图1为流媒体传输的一种网络拓扑图,服务器端存储各种视频片源,每种视频片源包括多个不同码率的分片,服务器可用于创建客户端、配置客户端的各种信息以及处理终端设备上针对客户端的各种请求,此外,还可用于保存使用客户端的用户的操作数据。终端设备上安装了交客户端,可响应于用户针对客户端的各种操作指令,能够与服务器进行交互。本申请中,终端设备可向服务器发送资源请求以请求不同码率的分片,然后在终端设备上安装的客户端上播放。其中,需要特别说明的是,本申请涉及的服务器可以为代理服务器,网页服务器等。本申请涉及的终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(英文全称:radioaccessnetwork,英文简称:ran)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(英文全称:personalcommunicationservice,英文简称:pcs)电话、无绳电话、会话发起协议(sip)话机、无线本地环路(wirelesslocalloop,英文简称:wll)站、个人数字助理(英文全称:personaldigitalassistant,英文简称:pda)等设备。无线终端也可以称为系统、订户单元(subscriberunit)、订户站(subscriberstation),移动站(mobilestation)、移动台(mobile)、远程站(remotestation)、接入点(accesspoint)、远程终端(remoteterminal)、接入终端(accessterminal)、用户终端(userterminal)、终端设备、用户代理(useragent)、用户设备(userdevice)、或用户装备(userequipment)。由于采用自适应流媒体传输技术进行直播视频时,客户端所选择的要切换的码率的准确度不高,会产生码率切换的乒乓效应。为解决上述技术问题,本申请主要提供以下技术方案:方案一:由服务器根据终端设备提供的平滑码率和缓存区的缓存时长,以及终端设备当前下载分片的平均速率,来预测选择的待下载分片的码率是否会在消耗完缓存区中缓存之前完成下载。方案二:由终端设备计算出平滑码率和平均速率后,自行预测选择的待下载分片的码率是否会在消耗完缓存区中缓存之前完成下载。通过上述方案一和方案二,均可解决进行直播视频时的乒乓效应的问题,提高动态切换码率的准确性和终端设备播放分片的连续性和稳定性,方案一和方案二也可交替进行,具体本申请不作限定。可以理解的是,本申请中的服务器和终端设备可称为用于调整流媒体码率的装置,该装置可以是设置在装置端,在有些场景下,也可以设置在终端设备中作为具备调整流媒体码率功能的客户端,本申请的下述实施例主要是以该装置设置于服务器端和终端设备端分别作为服务端为例,若该装置为设置于终端设备中的客户端,那么,在调整流媒体码率时,调整流媒体码率的操作均可由该客户端完成,具体该装置设置于哪些类型的设备,本申请不作限定。参照图2,以下从服务器确定目标分片的角度,对本申请提供的调整流媒体码率的方法进行举例说明,本方法实施例主要包括:201、终端设备计算出平滑码率和当前终端设备缓存区的缓存时长。所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,该平滑码率能够适应当前带宽,是当前终端设备播放视频片源的最佳理想码率,终端设备使用该平滑码率播放视频,则不会出现卡顿现象。所述缓存时长则是指当前终端设备缓存区中的剩余的数据缓存容量,也可以称为数据时长,可播放的时长或者数据缓存量。需要说明的是,本申请中的资源请求可采用超文本传输协议(英文全称:hypertexttransferprotocol,英文简称:http)作为请求下载分片的协议,终端设备可向服务器发送httpget请求,在该httpget请求中可携带两个扩展头字段:avg-download-rate(表示当前终端设备下载分片的平均速率),以及buffer-length(表示当前终端设备缓存区的缓存时长)。本申请中终端设备的缓存区中的缓存数据是指客户端当前播放的视频片源的视频数据。202、终端设备向服务器发送资源请求。所述资源请求主要包括平滑码率和所述终端设备缓存区的缓存时长。203、服务器接收终端设备的资源请求,在数据库中找到所述终端设备当前待播放的视频片源。204、服务器从所述终端设备当前待播放的视频片源中确定目标分片,再将所述目标分片发送至所述终端设备。其中,所述目标分片的码率小于所述平滑码率,所述目标分片的预测下载时长小于所述缓存时长。205、终端设备接收服务器发送的目标分片。现有机制中,客户端只能将平滑码率与分片的平均码率进行比较,最终导致码率切换的乒乓效应。与现有机制相比,本申请中则是服务器在接收终端设备发送的包括平滑码率和缓存时长的资源请求后,从视频片源中确定目标分片,然后所述服务器将该目标分片发送给所述终端设备。可见,由于服务器发送给终端设备的目标分片的码率小于所述平滑码率,并且该目标分片的预测下载时长小于所述缓存时长,所以最终发送给终端设备的目标分片是满足当前流畅播放的条件的,能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。可选的,在一些发明实施例中,考虑到服务器的运算复杂度和运算负荷,在确定目标分片之前,所述服务器还可获取码率集合以提高运算效率。一些实施方式中,所述码率集合可由所述资源请求携带的指示信息指示,或者所述码率集合可由所述服务器根据所述平滑码率从所述分片信息集合选择的码率的集合。下面分别进行说明:(a)、码率集合由终端设备提供终端设备在发送资源请求之前,可从服务器获取上述分片信息集合,然后终端设备计算出平滑码率,再将平滑码率与分片信息集合中的各码率进行比较,最终可以确定出低于所述平滑码率的码率的码率集合,最后将指示所述码率集合的信息或者所述码率集合携带在资源请求中。可见,由终端设备为服务器提供上述码率集合,能够减少服务器侧在确定目标分片时,只需要遍历码率集合中的码率即可。当然,若由服务器来确定上述码率集合,那么,(a)种方式中,由终端设备直接提供的话,就不需要由服务器去从分片信息集合中比较一遍了。由此可见,采用本方案,可有效减少服务器的运算量,进而提高运算效率,最终使得服务器能够快速的定位到目标分片。(b)、码率集合由服务器提供若上述码率集合由服务器确定,那么,服务器只需要从终端设备处获取的平滑码率就可以确定出上述码率集合,且服务器确定码率集合的方式与终端设备相同,此处不作赘述。服务器在确定码率集合后,就可以通过遍历码率集合来确定目标分片了,通过缩小码率的搜索范围,这样在确定目标分片时,就不需要将平滑码率分别与分片信息集合中的每个码率都遍历一遍,只需要遍历码率集合中的码率即可。由此可见,采用本方案,可有效减少服务器的运算量,进而提高运算效率,最终使得服务器能够快速的定位到目标分片。在获取上述码率集合后,服务器可开始执行确定目标分片的操作,上述步骤204中,所述服务器从所述终端设备当前待播放的视频片源中确定目标分片,将所述目标分片发送给所述终端设备的具体过程可以参考如下1-3所描述的操作。1、服务器可从码率集合中选择候选码率,所述码率集合是指分片信息集合中低于所述平滑码率的码率的集合,所述分片信息集合包括至少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率。2、所述服务器从码率集合中选择候选码率后,可根据平均速率和所述候选码率对应的目标分片的分片大小得到所述候选分片的预测下载时长,所述平均速率为所述终端设备当前下载分片的平均速率。可选的,所述平均速率可在所述资源请求携带,或者由所述服务器统计得到。3、在得到所述候选分片的预测下载时长后,所述服务器判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述预测下载时长大于所述缓存时长,则服务器从所述码率集合中选择码率低于所述候选分片的码率作为所述候选码率,并且重复前面所述的“选择候选码率,计算候选分片的预测下载时长和判断候选分片的预测下载时长是否大于所述缓存时长”的操作,直至找到预测下载时长小于缓存时长的候选分片。相应的,若所述候选分片的预测下载时长小于所述缓存时长,则所述服务器将所述候选分片作为所述目标分片发送至所述终端设备。由此可见,本申请中则是服务器在接收终端设备发送的包括平滑码率和缓存时长的资源请求后,可从码率集合中选择小于所述平滑码率的候选码率,当确定选中的候选码率对应的候选分片的预测下载时长小于所述终端设备缓存区当前的缓存时长时,服务器将该候选分片作为目标分片发送给所述终端设备。可见服务器通过将候选分片的预测下载时长与缓存时长进行比较,能够准确的判断终端设备所请求切换的分片是否满足当前流畅播放的条件,能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。可选的,在一些发明实施例中,在同时有很多终端设备向服务器请求视频片源资源时,为减少服务器侧的判断时长,若所述候选分片的预测下载时长大于所述缓存时长,服务器可直接从所述终端设备当前待播放的视频片源中选择至少一个与所述候选分片属于相同视频片源且码率低于所述候选分片的分片。然后,所述服务器将请求响应发送至所述终端设备,其中,所述请求响应携带与所述候选分片属于相同视频片源且码率低于所述候选分片的分片的下载地址,以供终端设备直接下载。可选的,请求响应中可以携带与所述候选分片所属视频片源中码率最低的分片的下载地址,这样可以保证终端设备侧可以流畅的播放该分片。通过这种处理机制,可进一步优化服务器侧对多个终端设备的响应,这样可以提高服务器的处理效率,同时也减少终端设备侧的等待时长。可选的,在一些发明实施例中,所述资源请求还包括用于指示所述服务器是否切换到码率自适应模式的字段,一种实施方式中,该字段可以为动态请求(dynamic-request)。如果dynamic-request指示的值为1时,则表示当前采用码率自适应模式,那么服务器就需要进行动态码率切换,可通过资源请求的前两个扩展头域识别出当前与终端设备的下载速率最匹配的分片,并将该分片返回给终端设备。如果dynamic-request指示的值为0时,则表示当前未采用码率自适应模式(例如用户在终端设备的客户端上手动关闭了码率自适应的功能),那么服务器在收到该资源请求后,就不需要进行动态码率切换。可选的,在一些发明实施例中,考虑到终端设备发出资源请求至服务器计算候选分片的预测下载时长期间,终端设备的缓存区的缓存会存在一些消耗,所以,为提高服务器侧确定目标分片的准确度,还需要考虑该期间终端设备缓存区的缓存消耗量。由此,终端设备可在所述资源请求携带指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送所述资源请求到所述服务器接收到所述资源请求期间,所述终端设备缓存区的缓存消耗的估计值。该估计值可以是经验值,也可是终端设备根据当前的播放速率动态计算出,具体本申请不作限定,这样服务器在比较预测下载时长与缓存时长时,减去该缓存偏移量即可。为便于理解,本申请的图3还提供一种详细的流程图,具体如下操作:在终端设备侧,终端设备从服务器下载视频片源对应的分片信息集合,然后计算下一个待播放分片的码率,在向服务器发送下载该分片的资源请求,在该资源请求中携带计算出的下一个待播放分片的码率,还可携带用于指示是否切换动态自适应模式的头域字段dynamic-switch,该dynamic-switch的值可以为1或0。在服务器侧,服务器接受到终端设备发送的资源请求后,根据资源请求为dynamic-switch判断是否需要进行分片切换。当dynamic-switch的值为1,则进入是否需要进行分片切换计算的操作,若是,那么服务器计算出需要返回给终端设备的分片,计算出需要的分片后,将该分片发给终端设备,使得终端设备将收到的分片放入播放缓存区,以等待播放。若不需要进行分片切换计算的操作,那么服务器可直接根据资源请求来从数据库读取对应的分片内容,然后将该分片发给终端设备,使得终端设备将收到的分片放入播放缓存区,以等待播放。当dynamic-switch的值为0,则忽略该资源请求。参照图4,以下从终端设备确定目标分片的角度,对本申请提供的调整流媒体码率的方法进行举例说明,终端设备上安装了客户端,该客户端可用于播放下载的视频,本方法实施例主要包括:401、终端设备获取当前的平滑码率和当前待播放的视频片源对应的分片信息集合。其中,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率。该平滑码率可依赖于当前网络带宽的码率以及终端设备缓存区的充盈状态等参数来计算,也可以在现有机制中计算的基础之上加入其他新的参数,具体本申请不作限定。所述分片信息集合包括少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率。该分片信息集合可从服务器处获取,也可以通过其他途径获取,例如,邮件、短信或者网络数据库等,具体的获取途径本申请不作限定。该分片信息集合可称为媒体描述文件、片源码率列表等等,如果视频片源的分片基于http的动态自适应流(英文全称:dynamicadaptivestreamingoverhttp,英文简称:dash)传输,那么下载的分片信息集合为媒体展示描述(英文全称:mediapresentationdescription,英文简称:mpd)文件,终端设备获取mpd文件后,可通过解析mpd文件可以获取视频的相关信息,然后使用http请求即可按片获取相应的分片;如果视频片源的分片基于超文本传输协议直播流(英文全称:httplivestreaming,英文简称:hls)传输,那么下载的分片信息集合为m3u8文件。例如某个流媒体可支持2种码率的视频,每种码率的视频包含3个分片,分那么上述分片信息集合中所包括的各种码率的分片的分片信息可以通过一张表来呈现,如下表1所示:码率分片大小码率1(2mbps)分片1(30000byte)分片2(25000byte)分片3(32000byte)码率2(4mbps)分片1(50000byte)分片2(60000byte)分片3(55000byte)表1402、终端设备从所述分片信息集合中确定目标码率。其中,所述目标码率小于所述平滑码率,所述目标码率对应的目标分片的预测下载时长小于所述终端设备缓存区当前的缓存时长。403、终端设备将资源请求发送至所述服务器。所述资源请求用于请求下载所述目标码率对应的目标分片,该资源请求中可指示目标码率。404、服务器将目标分片下发给终端设备。405、终端设备接收服务器发送的目标分片。现有机制中,客户端只能将平滑码率与分片的平均码率进行比较,最终导致码率切换的乒乓效应。与现有机制相比,本申请所提供的方案中,一方面,终端设备获取平滑码率和分片信息集合后,可从分片信息集合中选择小于所述平滑码率的目标码率,当确定选中的目标码率对应的目标分片的预测下载时长小于当前的缓存时长时,就表示该目标码率适应当前的带宽,所以终端设备可以将该目标码率携带在资源请求中发送给服务器,最终得到合适的目标分片。可见终端设备通过将目标分片的预测下载时长与缓存时长进行比较,能够准确的判断自身计算出的目标码率所对应的目标分片是否满足当前流畅播放的条件,以便服务器能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题,最大限度利用网络带宽资源。另一方面,考虑到网络带宽波动,本地的缓存时长的消耗等因素都会影响到当前的平滑码率,有可能出现即使将计算出的平滑码率发送给服务器,而服务器确定目标分片需要消耗运算时长,在服务器运算过程中,可能当前提供给服务器的平滑码率可能已经不适应当前终端设备侧的网络带宽了,这样服务器根据平滑码率和缓存时长所确定出的目标码率可能不准确,尤其在网络带宽减小的情况下,服务器所计算出的目标码率实质上是高于此时终端设备侧新计算出的平滑码率的。这样服务器最终确定的目标分片可能不准确,会导致终端设备侧出现播放卡顿现象。而本申请中,由终端设备去确定目标分片,由于平滑码率是由终端设备自行动态计算的,那么,终端设备所计算出的平滑码率是能够代表当前网络带宽适应终端设备播放的真实平滑码率的。所以,由终端设备实施上述方案,可以有效的排除传送到服务器的期间可能出现的网络波动现象所带来的不准确问题。可选的,在一些发明实施例中,在所述终端设备获取当前的平滑码率和分片信息集合之后,所述终端设备从所述分片信息集合中确定目标码率之前,所述终端设备还可从所述分片信息集合中确定低于所述平滑码率的码率集合,在确定码率集合后,终端设备就可以确定目标分片了,通过缩小码率的搜索范围,这样在确定目标分片时,就不需要将平滑码率分别与分片信息集合中的每个码率都遍历一遍,只需要遍历码率集合中的码率即可。由此可见,采用本方案,可有效减少运算量,也能提高运算效率。在获取码率集合后,所述终端设备从所述分片信息集合中确定目标码率,将资源请求发送至所述服务器,可包括:所述终端设备从所述码率集合中选择候选码率,然后根据所述候选码率对应的候选分片的分片大小和所述平均速率得到所述候选分片的预测下载时长。在得到所述候选分片的预测下载时长后,所述终端设备判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述候选分片的预测下载时长大于所述缓存时长,则从所述分片集合中选择低于所述候选分片的码率作为所述候选码率,重复执行上述“计算候选分片的预测下载时长和判断候选分片的预测下载时长是否大于所述缓存时长”的操作,直至找到预测下载时长小于缓存时长的候选分片对应的目标码率。若所述候选分片的预测下载时长小于所述缓存时长,则将所述候选码率作为所述目标码率,将所述资源请求发送至所述服务器,所述资源请求用于请求下载所述目标码率对应的所述目标分片。举例来说,终端设备当前缓存区的缓存时长为q,计算出的平滑码率为3兆比特每秒(英文全称:millionbitspersecond,英文简称:mbps),终端设备当前下载分片的平均速率为p字节/秒,视频片源支持的码率分别为1mbps,2mbps,4mbps。那么该视频片源中满足终端设备流畅播放的码率有1mbps,2mbps,其中最接近平滑码率的码率是2mbps,那么可选择2mbps作为目标码率。然后,终端设备根据分片信息集合查询到2mbps对应的分片大小为x,那么终端设备计算的分片1的预测下载时长为t,t=x/p。如果t≤q,即表示终端设备下载该分片的过程中,其缓存区的缓存不会被耗尽,那么终端设备可下载该分片。如果t≥q,即表示终端设备下载该分片的过程中,其缓存区的缓存会被耗尽,那么终端设备不下载该分片,再重新回到选择候选码率,以及判断t是否小于q的操作,后面每次选择的码率都要低于上一次所选择的候选码率,直至找到满足t≤q的分片。为便于理解,本申请的图5还提供一种详细的流程图,具体如下操作:在终端设备侧,终端设备从服务器下载视频片源对应的分片信息集合,计算平滑码率,然后从分片信息集合中选择一个最接近平滑码率的码率作为候选码率(也就是计算下一个待播放分片的码率)。然后,终端设备根据候选码率从分片信息集合中找到要下载的分片的大小x,再根据平均速率p和分片的大小x计算出该分片的预测下载时长t,t=x/p。在计算出t后,再将t与终端设备当前的缓存数据量q进行比较,若t≤q,那么,表示当前选择的分片能保证终端设备流畅的播放,所以终端设备可以直接将该分片的码率发送给服务器,以下载该分片,从而保证播放分片的连续性。若t≥q,那么,表示当前选择的分片并不能保证终端设备流畅的播放,所以终端设备需要再从码率列表中选择比之前选择的码率低一级的码率,再重新计算一次预测下载时长,以及判断t与q的大小关系,直到找到t≤q的分片后,再将满足流畅播放的分片的码率发送给服务器,以下载该分片。可选的,在一些发明实施例中,除了终端设备自行确定目标分片,还可以由服务器来确定,那么,终端设备就需要为服务器提供与确定目标分片相关的参数。具体来说,所述终端设备在从分片信息集合中选择小于所述平滑码率的码率之后,可向所述服务器发送另一资源请求,所述另一资源请求可包括所述平滑码率和所述终端设备缓存区的缓存时长。之后,所述服务器在接收到上述另一资源请求后,从分片信息集合中选择小于所述平滑码率的码率,当确定选中的码率对应的分片的预测下载时长小于所述终端设备缓存区当前的缓存时长时,所述服务器将预测下载时长小于所述缓存时长的分片发送给所述终端设备。对服务器来说,如何根据终端设备发送的另一资源请求来确定目标分片的具体操作可参考上述第一方面所述的技术方案,此处不作赘述。需要说明的是,对于是否由终端设备来确定目标分片,还是由服务器来确定目标分片,可以优先由终端设备来确定目标分片,这样可以有效的降低服务器的运算负荷,也能提高确定与实际下载速率匹配的目标分片的准确率。终端设备可以主动执行确定目标码率的操作;也可以是在用户关闭了码率动态切换的功能时,为服务器提供运算的参数,最终由服务器来确定目标分片;还可以是,不考虑用户是否关闭码率动态切换的功能,终端设备都可主动为服务器提供运算的参数,最终由服务器来确定目标分片;当然也可以是在终端设备无法正确的确定目标码率时,向服务器发出上述另一资源请求。可选的,为了减少服务器的运算,终端设备还可在所述另一资源请求携带用于指示所述分片信息集合中低于所述平滑码率的码率集合的信息,使得服务器可以小范围的去确定候选码率、减少判断候选分片的预测下载时长是否小于缓存时长的次数等操作,最终使得服务器能够快速的定位到目标分片。可选的,所述另一资源请求还包括所述终端设备当前下载分片的平均速率,所述平均速率用于所述服务器计算分片的预测下载时长。可选的,考虑到终端设备发出上述另一资源请求至服务器计算候选分片的预测下载时长期间,终端设备的缓存区的缓存会存在一些消耗,所以,为提高服务器侧确定目标分片的准确度,还需要考虑该期间终端设备缓存区的缓存消耗量。由此,终端设备可在上述另一资源请求携带指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送上述另一资源请求到所述服务器接收到所述另一资源请求期间,所述终端设备缓存区的缓存消耗的估计值。该估计值可以是经验值,也可是终端设备根据当前的播放速率动态计算出,具体本申请不作限定,这样服务器在比较预测下载时长与缓存时长时,减去该缓存偏移量即可。上述图2-图5中任意所述的平滑码率、平均速率、缓存时长、预测下载时长和资源请求等特征,以及与这些特征相关的任何描述也同样适用于本申请中的图6所对应的各实施例,后续类似之处不再赘述。以上对本申请中一种调整流媒体码率的方法进行说明,以下对用于调整流媒体码率的装置(包括服务器和终端设备)进行描述,服务器和终端设备均有如图6所示的结构,下面分别进行说明。一、参照图6,所述服务器可包括:收发模块,用于接收终端设备的资源请求,所述资源请求包括平滑码率和所述终端设备缓存区的缓存时长,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率。处理模块,用于从所述终端设备当前待播放的视频片源中确定目标分片,通过所述收发模块将所述目标分片发送至所述终端设备,所述目标分片的码率小于所述平滑码率,所述目标分片的预测下载时长小于所述缓存时长。本发明实施例中,在所述收发模块接收终端设备发送的包括平滑码率和缓存时长的资源请求后,从视频片源中确定目标分片,然后所述处理模块将该目标分片发送给所述终端设备。可见,由于服务器发送给终端设备的目标分片的码率小于所述平滑码率,并且该目标分片的预测下载时长小于所述缓存时长,所以最终发送给终端设备的目标分片是满足当前流畅播放的条件的,能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题。可选的,所述处理模块具体用于:从码率集合中选择候选码率,所述码率集合是指分片信息集合中低于所述平滑码率的码率的集合,所述分片信息集合包括至少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;根据平均速率和所述候选码率对应的目标分片的分片大小得到所述候选分片的预测下载时长,所述平均速率为所述终端设备当前下载分片的平均速率;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述预测下载时长大于所述缓存时长,则从所述码率集合中选择码率低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则通过所述收发模块将所述候选分片作为所述目标分片发送至所述终端设备。可选的,所述码率集合由所述资源请求携带的指示信息指示,或者所述码率集合由所述服务器根据所述平滑码率从所述分片信息集合选择的码率的集合。可选的,所述平均速率在所述资源请求携带,或者由所述服务器统计得到。可选的,所述处理模块还用于:若所述候选分片的预测下载时长大于所述缓存时长,则通过所述收发模块将请求响应发送至所述终端设备,所述请求响应携带与所述候选分片属于相同视频片源且码率低于所述候选分片的分片的下载地址。可选的,所述资源请求还包括用于指示所述服务器是否切换到码率自适应模式的字段,和/或,所述资源请求还包括指示缓存偏移量的字段,所述缓存偏移量是指自所述终端设备发送所述资源请求到所述服务器接收到所述资源请求期间,所述终端设备缓存区的缓存消耗的估计值。二、参照图6,所述终端设备可包括:收发模块,用于获取当前的平滑码率和分片信息集合,所述平滑码率为与所述终端设备当前下载视频片源的下载速率匹配的码率,所述分片信息集合包括少两个分片的分片信息,所述至少两个分片属于当前待播放的相同视频片源,分片信息包括分片大小和分片的码率;处理模块,用于从所述收发模块获取的所述分片信息集合中确定目标码率,通过所述收发模块将资源请求发送至所述服务器,所述目标码率小于所述平滑码率,所述目标码率对应的目标分片的预测下载时长小于所述终端设备缓存区当前的缓存时长,所述资源请求用于请求下载所述目标码率对应的目标分片。本发明实施例中,在通过收发模块获取平滑码率和分片信息集合后,处理模块可从分片信息集合中选择小于所述平滑码率的目标码率,当处理模块确定选中的目标码率对应的目标分片的预测下载时长小于当前的缓存时长时,就表示该目标码率适应当前的带宽,所以,处理模块可通过收发模块将该目标码率携带在资源请求中发送给服务器,最终得到合适的目标分片。可见终端设备通过将目标分片的预测下载时长与缓存时长进行比较,能够准确的判断自身计算出的目标码率所对应的目标分片是否满足当前流畅播放的条件,以便服务器能够实时为终端设备提供与终端设备适应的分片,保证流媒体的播放连续性,也能减少在流媒体播放过程中进行动态码率切换时所引发的播放卡顿的问题。可选的,所述处理模块在所述收发模块获取当前的平滑码率和分片信息集合之后,在从所述分片信息集合中确定目标码率之前,还用于:从所述分片信息集合中确定低于所述平滑码率的码率集合。可选的,所述处理模块具体用于:从所述码率集合中选择候选码率;根据所述候选码率对应的候选分片的分片大小和所述平均速率得到所述候选分片的预测下载时长;判断所述候选分片的预测下载时长是否大于所述缓存时长,若所述候选分片的预测下载时长大于所述缓存时长,则从所述分片集合中选择低于所述候选分片的码率作为所述候选码率;若所述候选分片的预测下载时长小于所述缓存时长,则将所述候选码率作为所述目标码率,通过所述收发模块将所述资源请求发送至所述服务器,所述资源请求用于请求下载所述目标码率对应的所述目标分片。需要说明的是,在本申请图6所对应的各实施例中的收发模块对应的实体设备可以为收发器,处理模块对应的实体设备可以为处理器。图6所示的各装置均可以具有如图7所示的结构,当其中一种装置具有如图7所示的结构时,图7中的处理器和收发器实现前述对应该装置的装置实施例提供的处理模块和收发模块相同或相似的功能,图7中的存储器存储处理器执行上述调整流媒体码率的方法时需要调用的程序代码。其中,处理器可用于执行上述图2对应的实施例中的步骤201-步骤204中所描述的操作,以及执行图3对应的实施例中所描述的操作,还可用于执行图4所对应的实施例中步骤401-步骤404中所描述的操作,以及执行图5对应的实施例中所描述的操作,具体可参考前述图2-图5所示的任意实施例。.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1