CN105025351B - 流媒体播放器缓冲的方法及装置 - Google Patents
流媒体播放器缓冲的方法及装置 Download PDFInfo
- Publication number
- CN105025351B CN105025351B CN201410182192.2A CN201410182192A CN105025351B CN 105025351 B CN105025351 B CN 105025351B CN 201410182192 A CN201410182192 A CN 201410182192A CN 105025351 B CN105025351 B CN 105025351B
- Authority
- CN
- China
- Prior art keywords
- download
- code check
- data segment
- medium data
- stream medium
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
Abstract
本发明公开了一种流媒体播放器缓冲的方法,该方法包括步骤:获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;从流媒体服务器下载与确定的码率对应的流媒体数据片段;按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。本发明还公开了一种流媒体播放器缓冲的装置,实现自动选择与当前网络状况对应码率的流媒体数据片段进行下载并缓冲播放,在当前网络状况不佳时,保证流媒体缓冲播放的流畅性。
Description
技术领域
本发明涉及多媒体播放技术领域,尤其涉及流媒体播放器缓冲的方法及装置。
背景技术
随着多媒体技术的不断发展,人们使用电子设备观看流媒体变得越来越普遍。流媒体的播放过程为:流媒体服务器将编码过后的流媒体封装成符合流媒体协议(例如,RTPReal-Time Transport Protocol协议)规范的数据包,并通过网络发送到流媒体播放器,流媒体播放器按照一定的速度从流媒体服务器下载流媒体数据包,并将流媒体数据包解码且按一定的速度显示,以实现用户在流媒体播放器端观看流媒体。
在现实生活中,由于网络状况不稳定,会引起流媒体服务器向流媒体播放器发送的流媒体数据包存在时延抖动,进而造成流媒体播放器的数据不同步。因此为了实现流媒体同步连续播放,开发了缓存技术,即在流媒体播放器中增加缓冲区用于存储流媒体服务器发送的流媒体数据包。
另外针对上述问题业界另外一个解决方向是网络自适应技术,其核心思想是对于同一个流媒体数据包提供多个不同码率的版本,不同的网络环境下载播放不同版本内容而且支持不同码率之间可以实时动态的切换。为了支持网络自适应技术,流媒体数据包往往被人为切割成多个数据片段,该技术一般都要求提供一个描述文件,用来描述不同码率以及各个码率的流媒体数据片段,播放器首先下载该描述文件然后再下载流媒体数据片段。而这种方式下,用户只能根据当前网络状况手动选择不同码率的数据片段进行缓冲播放。
因此,在上述流媒体数据缓存播放的技术下,流媒体播放器端的用户只能根据当前网络状况手动选择不同码率(码率越大,视频清晰度越高、音频音质更佳)的流媒体数据片段的缓冲播放,无法自动选择与当前网络状况对应码率的流媒体数据片段进行下载缓冲播放,在当前网络状况不佳时,会导致流媒体缓冲不及时,而无法连续播放流媒体。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的为提供流媒体播放器缓冲的方法及装置,旨在实现保证流媒体缓冲播放的流畅性。
为实现上述目的,本发明提供流媒体播放器缓冲的方法,该方法包括步骤:
获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
从流媒体服务器下载与确定的码率对应的流媒体数据片段;
按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
优选地,所述从流媒体服务器下载与确定的码率对应的流媒体数据片段的步骤包括:
获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长;
在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段。
优选地,所述获取网络的当前下载速度,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率的步骤包括:
根据所述缓冲时长、所述预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率;
计算出网络的当前下载速度所采用的公式为:
BW=(S/D)*(T1/T2),其中,BW为下载速度,S为已下载流媒体数据片段的大小,D为已下载流媒体数据片段的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长。
优选地,所述获取网络的当前下载速度,根据码率与下载速度的映射关系,确定获取的下载速度对应的码率的步骤包括:
根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
优选地,所述已下载的流媒体数据片段存储在异步队列中,所述按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示的步骤包括:
按照流媒体数据片段的下载顺序,以同步的方式访问所述异步队列;
匀速的分发已下载的流媒体数据片段,并依次将分发的流媒体数据片段解码并显示。
本发明还提出一种流媒体播放器缓冲的装置,该装置包括:
处理模块,用于获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
下载模块,用于从流媒体服务器下载与确定的码率对应的流媒体数据片段;
播放模块,用于按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
优选地,该装置还包括分析模块,
所述分析模块,用于获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长;
下载模块,还用于在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段。
优选地,所述处理模块,还用于根据所述缓冲时长、所述预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
所述分析模块,还用于获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
所述处理模块,还用于在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率;
计算出网络的当前下载速度所采用的公式为:
BW=(S/D)*(T1/T2),其中,BW为下载速度,S为已下载流媒体数据片段的大小,D为已下载流媒体数据包的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长。
优选地,所述处理模块,还用于根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
所述分析模块,还用于获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
所述处理模块,还用于在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
优选地,所述已下载的流媒体数据片段存储在异步队列中,该装置还包括分发模块,
所述分发模块,用于按照流媒体数据片段的下载顺序,以同步的方式访问所述异步队列;
匀速的分发已下载的流媒体数据片段;
所述播放模块,还用于依次将分发的流媒体数据片段解码并显示。
相对现有技术,本发明通过获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;从流媒体服务器下载与确定的码率对应的流媒体数据片段;按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据包解码并显示。自动选择与当前网络状况对应码率的流媒体数据片段进行下载并缓冲播放,在当前网络状况不佳时,保证流媒体缓冲播放的流畅性。
附图说明
图1为本发明流媒体播放器缓冲的方法第一实施例的流程示意图;
图2为图1中步骤S10的一细化流程示意图;
图3为图1中步骤S10的另一细化流程示意图;
图4为图1中步骤S10的又一细化流程示意图;
图5为本发明流媒体播放器缓冲的方法第二实施例的流程示意图;
图6为本发明流媒体播放器缓冲的装置较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明流媒体播放器缓冲的方法第一实施例的流程示意图。
需要强调的是:图1所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;从流媒体服务器下载与确定的码率对应的流媒体数据片段;按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
以下是本实施例逐步实现播放流媒体的具体步骤:
步骤S10,获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
用户在观看流媒体时,可以通过流媒体播放器的交互界面输入待观看的流媒体名称,或者输入待观看流媒体的链接地址,找出流媒体服务器提供所述待观看流媒体的相关信息,所述待观看流媒体的相关信息包括但不限于待观看流媒体的质量信息、待观看流媒体的播放信息等。在用户发出观看指令时,流媒体播放器从流媒体服务器下载待观看流媒体的描述文件,该描述文件包括待观看流媒体的码率信息、待观看流媒体的播放时长、待观看流媒体的缓冲时长等。首先根据用户选择的码率从流媒体服务器下载与观看指令对应的流媒体数据片段,将下载的流媒体数据片段解码并显示,以供用户在流媒体播放器端进行观看。所述流媒体播放器可以是网页版流媒体播放器,也可以是流媒体播放器客户端。
在流媒体播放过程中,或在用户开始观看流媒体时,进行流媒体数据缓冲下载时,获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率。码率为体现流媒体质量的一个参数。例如,流媒体为视频时,码率越大视频的清晰度越高,若流媒体为音频,则码率越大音频的音质越高。可以理解的是,根据码率设置多个下载速度区间。在获取到网络的当前下载速度时,先找到所述当前下载速度所在的下载速度区间,并根据下载速度区间找到对应的码率。
进一步地,为了避免网络下载速度不稳定,带来频繁切换下载流媒体数据包码率的问题,降低系统消耗,提高系统性能,参考图2,所述步骤S10包括:
步骤S101,预设第二时间;
步骤S102,在第二预设时间到达时,获取网络的当前下载速度,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率。
流媒体播放器预设第二时间,所述第二预设时间可以是10s、20s等。可以是在流媒体播放器开始缓冲播放流媒体时开始计时,或者上一次获取网络的当前下载速度开始计时,在第二预设时间到达时,获取网络的当前下载速度,根据码率与下载速度的映射关系,确定获取的下载速度对应的码率。防止在网络不稳定时,每一时刻的下载速度均不同,而导致频繁切换下载流媒体数据包的码率。有效降低了系统的消耗,进而提高了系统性能。
进一步地,为了能更加准确的计算出网络的当前下载速度,参考图3,所述步骤S10还可以包括:
步骤S103,根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
预设第一时间,所述第一预设时间可以是10s、15s等。流媒体播放器获取第一预设时间内已下载流媒体数据片段的大小及下载时间,根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度。例如,第一预设时间内已下载流媒体数据片段的大小为200KB,所需下载时间为5s,计算出网络的当前下载速度为200KB/5s=40KB/s。
步骤S104,获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
流媒体播放器获取当前正在下载流媒体数据片段的码率,码率为单位时间内传送的数据位数,例如,可以是25KB/s、100KB/s。并分析当前下载速度值是否大于获取的码率值,若否,则执行步骤S105,若是,则执行步骤S106。
步骤S105,在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
若所述当前下载速度值为50KB/s,获取的码率值为60KB/s,则确定所述当前下载速度值小于获取的码率值,即判定当前下载环境较差,需要降低下载流媒体的清晰度、音质,降低下载流媒体数据包的码率。根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率,或者先确定所述当前下载速度的下载速度区间,再根据下载速度区间确定对应的码率,将所述当前下载速度对应的码率作为确定的码率。
步骤S106,在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
若所述当前下载速度值为80KB/s,获取的码率值为60KB/s,则确定所述当前下载速度值大于获取的码率值,即判定当前网络的下载环境较好,可以从流媒体服务器下载清晰度更高的视频流媒体或者音质更佳的音频流媒体。为了避免网络不稳定带来的频繁更换下载流媒体数据片段的码率,在判定当前网络的下载环境较好时,根据预设码率等级,将获取的码率上一级码率作为确定的码率。例如,码率的等级为A>B>C>D,若当前下载流媒体数据片段的码率为C,则在所述当前下载速度值大于获取的码率值时,将B作为确定的码率,以供后续从流媒体服务器下载码率为B的流媒体数据片段。
进一步地,为了能更好的保证流媒体播放的流畅性,参考图4,所述步骤S10还可以包括:
步骤S107,根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
步骤S108,获取当前下载流媒体数据包的码率,并分析当前下载速度值是否大于获取的码率值;
步骤S109,在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
步骤S110,在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
流媒体播放器获取已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度。例如,已下载流媒体数据包的缓冲时长为S,D为已下载流媒体数据片段的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长,所述当前下载速度为:BW=(S/D)*(T1/T2)。如何确定下载速度对应的码率的过程与图2中的确定过程一致,在此不再赘述。
在按照上述获得网络的当前下载速度的方式,通过加入T1与T2的系数,在已下载流媒体数据片段的播放时长T1小于或者等于预设缓冲时长T2时,判定会出现流媒体播放缓冲不及时导致流媒体播放卡停的情况,可以降低下载流媒体数据片段的码率,以加快流媒体数据片段的缓冲速度,使得流媒体播放更加流畅。
步骤S20,从流媒体服务器下载与确定的码率对应的流媒体数据片段;
步骤S30,按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
流媒体播放器将确定的码率发送至流媒体服务器,流媒体服务器接收所述确定的码率,并从当前播放流媒体数据片段未播放部分中,找出与确定的码率对应的流媒体片段,并将找出的流媒体片段封装成符合实时传输协议的流媒体数据片段。将找出的流媒体数据片段发送至流媒体播放器。流媒体播放器接收流媒体服务器发送来的实时流媒体数据片段,以完成从流媒体服务器下载与确定的码率对应的流媒体数据片段。流媒体播放器按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。所述已下载的流媒体数据片段存储在异步队列中,所述按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示的过程为:按照流媒体数据包的下载顺序,以同步的方式访问所述异步队列;匀速的分发已下载的流媒体数据片段,依次将分发的流媒体数据片段解码并显示。在本实施例中,流媒体数据片段的下载和分发通过异步队列进行通信,下载和分发以同步方式访问所述异步队列。在匀速将已下载的流媒体数据片段进行分发时,每分发一个流媒体数据片段给播放器处理时,记下这个分发的流媒体数据片段的缓冲时长,分发下一个流媒体数据片段前等待一定时长,等待的一定时长为分发的流媒体数据片段的缓冲时长。即在分发的流媒体数据片段缓冲播放完毕时,正好分发下一个流媒体数据片段。例如,刚取完流媒体数据片段n,该片段的时长是t,那么取第(n+1)流媒体数据片段需要在等待t。
本发明实施例通过获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;从流媒体服务器下载与确定的码率对应的流媒体数据片段;按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。自动选择与当前网络状况对应码率的流媒体进行下载并缓冲播放,在当前网络状况不佳时,保证流媒体播放的流畅性。
如图5所示,为本发明流媒体播放器缓冲的方法第二实施例的流程示意图。基于上述第一实施例,所述步骤S20包括:
步骤S201,获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长;
若是,则执行步骤S203,若否,则执行步骤S202。
步骤S202,在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段;
步骤S203,在所述缓冲时长大于预设缓冲时长时,停止从流媒体服务器下载与确定的码率对应的流媒体数据片段。
流媒体播放器获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长。所述预设缓冲时长可以是5s、10s、30s等。例如,若获取的缓冲时长为20s,预设缓冲时长为10s,则确定所述缓冲时长大于预设缓冲时长,目前下载的流媒体数据片段足够进行流媒体播放,停止从流媒体服务器下载与确定的码率对应的流媒体数据片段,以节约系统的资源利用,提高系统性能;若获取的缓冲时长为5s,预设缓冲时长为10s,则确定所述缓冲时长小于预设缓冲时长,目前下载的流媒体数据片段不足以流畅完成流媒体缓冲播放,可能会导致流媒体缓冲播放卡停的状况。继续从流媒体服务器下载与确定的码率对应的流媒体数据片段,更优的可以降低下载码率,加快流媒体数据片段下载,以保证流媒体缓冲播放的流畅性。
如图6所示,为本发明流媒体播放器缓冲的装置较佳实施例的功能模块示意图。该装置包括处理模块10、分析模块20、下载模块30、播放模块40及分发模块50。
所述处理模块10,用于获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
用户在观看流媒体时,可以通过流媒体播放器的交互界面输入待观看的流媒体名称,或者输入待观看流媒体的链接地址,找出流媒体服务器提供所述待观看流媒体的相关信息,所述待观看流媒体的相关信息包括但不限于待观看流媒体的质量信息、待观看流媒体的播放信息等。在用户发出观看指令时,流媒体播放器从流媒体服务器下载待观看流媒体的描述文件,该描述文件包括待观看流媒体的码率信息、待观看流媒体的播放时长、待观看流媒体的缓冲时长等。首先根据用户选择的码率从流媒体服务器下载与观看指令对应的流媒体数据片段,将下载的流媒体数据片段解码并显示,以供用户在流媒体播放器端进行观看。所述流媒体播放器可以是网页版流媒体播放器,也可以是流媒体播放器客户端。
在流媒体播放过程中,或在用户开始观看流媒体时,进行流媒体数据缓冲下载时,获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率。码率为体现流媒体质量的一个参数。例如,流媒体为视频时,码率越大视频的清晰度越高,若流媒体为音频,则码率越大音频的音质越高。可以理解的是,根据码率设置多个下载速度区间。在获取到网络的当前下载速度时,先找到所述当前下载速度所在的下载速度区间,并根据下载速度区间找到对应的码率。
为了避免网络下载速度不稳定,带来频繁切换下载流媒体数据包码率的问题,降低系统消耗,提高系统性能,所述处理模块10,还用于预设第二时间;
在第二预设时间到达时,获取网络的当前下载速度,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率。
流媒体播放器预设第二时间,所述第二预设时间可以是10s、20s等。可以是在流媒体播放器开始缓冲播放流媒体时开始计时,或者上一次获取网络的当前下载速度开始计时,在第二预设时间到达时,获取网络的当前下载速度,根据码率与下载速度的映射关系,确定获取的下载速度对应的码率。防止在网络不稳定时,每一时刻的下载速度均不同,而导致频繁切换下载流媒体数据包的码率。有效降低了系统的消耗,进而提高了系统性能。
进一步地,为了能更加准确的计算出网络的当前下载速度,所述处理模块10,还用于根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
预设第一时间,所述第一预设时间可以是10s、15s等。流媒体播放器获取第一预设时间内已下载流媒体数据片段的大小及下载时间,根据第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度。例如,第一预设时间内已下载流媒体数据片段的大小为200KB,所需下载时间为5s,计算出网络的当前下载速度为200KB/5s=40KB/s。
所述处理模块10,还用于获取当前下载流媒体数据片段的码率;
所述分析模块20,用于分析当前下载速度值是否大于获取的码率值;
流媒体播放器获取当前正在下载流媒体数据片段的码率,码率为单位时间内传送的数据位数,例如,可以是25KB/s、100KB/s。并分析当前下载速度值是否大于获取的码率值。
所述处理模块10,还用于在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
若所述当前下载速度值为50KB/s,获取的码率值为60KB/s,则确定所述当前下载速度值小于获取的码率值,即判定当前下载环境较差,需要降低下载流媒体的清晰度、音质,降低下载流媒体数据包的码率。根据码率与下载速度的映射关系,确定获取的下载速度对应的码率,或者先确定下载速度的下载速度区间,再根据下载速度区间获取到对应的码率,将所述当前下载速度对应的码率作为确定的码率。
所述处理模块10,还用于在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
若所述当前下载速度值为80KB/s,获取的码率值为60KB/s,则确定所述当前下载速度值大于获取的码率值,即判定当前网络的下载环境较好,可以从流媒体服务器下载清晰度更高的视频流媒体或者音质更佳的音频流媒体。为了避免网络不稳定带来的频繁更换下载流媒体数据片段的码率,在判定当前网络的下载环境较好时,根据预设码率等级,将获取的码率上一级码率作为确定的码率。例如,码率的等级为A>B>C>D,若当前下载流媒体数据片段的码率为C,则在所述当前下载速度值大于获取的码率值时,将B作为确定的码率,以供后续从流媒体服务器下载码率为B的流媒体数据片段。
进一步地,为了能更好的保证流媒体播放的流畅性,所述处理模块10,还用于根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
获取当前下载流媒体数据包的码率;
所述分析模块20,还用于分析当前下载速度值是否大于获取的码率值;
所述处理模块10,还用于在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率。
流媒体播放器获取已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度。例如,已下载流媒体数据包的缓冲时长为S,D为已下载流媒体数据片段的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长,所述当前下载速度为:BW=(S/D)*(T1/T2)。如何确定下载速度对应的码率的过程与上述码率的确定过程一致,在此不再赘述。
在按照上述获得网络的当前下载速度的方式,通过加入T1与T2的系数,在已下载流媒体数据片段的播放时长T1小于或者等于预设缓冲时长T2时,判定会出现流媒体播放缓冲不及时导致流媒体播放卡停的情况,可以降低下载流媒体数据片段的码率,以加快流媒体数据片段的缓冲速度,使得流媒体播放更加流畅。
所述下载模块30,用于从流媒体服务器下载与确定的码率对应的流媒体数据片段;
所述播放模块40,用于按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
流媒体播放器将确定的码率发送至流媒体服务器,流媒体服务器接收所述确定的码率,并从当前播放流媒体数据片段未播放部分中,找出与确定的码率对应的流媒体片段,并将找出的流媒体片段封装成符合实时传输协议的流媒体数据片段。将找出的流媒体数据片段发送至流媒体播放器。流媒体播放器接收流媒体服务器发送来的实时流媒体数据片段,以完成从流媒体服务器下载与确定的码率对应的流媒体数据片段。流媒体播放器按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。
所述已下载的流媒体数据片段存储在异步队列中,所述分发模块50,用于按照流媒体数据包的下载顺序,以同步的方式访问所述异步队列;匀速的分发已下载的流媒体数据片段,播放模块40依次将分发模块50分发的流媒体数据片段解码并显示。在本实施例中,流媒体数据片段的下载和分发通过异步队列进行通信,下载和分发以同步方式访问所述异步队列。在匀速将已下载的流媒体数据片段进行分发时,每分发一个流媒体数据片段给播放器处理时,记下这个分发的流媒体数据片段的缓冲时长,分发下一个流媒体数据片段前等待一定时长,等待的一定时长为分发的流媒体数据片段的缓冲时长。即在分发的流媒体数据片段缓冲播放完毕时,正好分发下一个流媒体数据片段。例如,刚取完流媒体数据片段n,该片段的时长是t,那么取第(n+1)流媒体数据片段需要在等待t。
本发明实施例通过获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;从流媒体服务器下载与确定的码率对应的流媒体数据片段;按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示。自动选择与当前网络状况对应码率的流媒体进行下载并缓冲播放,在当前网络状况不佳时,保证流媒体播放的流畅性。
进一步地,所述处理模块10,还用于获取已下载流媒体数据片段的缓冲时长;
所述分析模块20,还用于分析所述缓冲时长是否大于预设缓冲时长;
所述下载模块30,还用于在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段;
在所述缓冲时长大于预设缓冲时长时,停止从流媒体服务器下载与确定的码率对应的流媒体数据片段。
流媒体播放器获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长。所述预设缓冲时长可以是5s、10s、30s等。例如,若获取的缓冲时长为20s,预设缓冲时长为10s,则确定所述缓冲时长大于预设缓冲时长,目前下载的流媒体数据片段足够进行流媒体播放,停止从流媒体服务器下载与确定的码率对应的流媒体数据片段,以节约系统的资源利用,提高系统性能;若获取的缓冲时长为5s,预设缓冲时长为10s,则确定所述缓冲时长小于预设缓冲时长,目前下载的流媒体数据片段不足以流畅完成流媒体缓冲播放,可能会导致流媒体缓冲播放卡停的状况。继续从流媒体服务器下载与确定的码率对应的流媒体数据片段,更优的可以降低下载码率,加快流媒体数据片段下载,以保证流媒体缓冲播放的流畅性。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种流媒体播放器缓冲的方法,其特征在于,该方法包括步骤:
获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
从流媒体服务器下载与确定的码率对应的流媒体数据片段;
按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示;
所述获取网络的当前下载速度,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率的步骤包括:
根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率,上一级码率的值大于获取的码率的值;
根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间计算出网络的当前下载速度所采用的公式为:
BW=(S/D)*(T1/T2),其中,BW为下载速度,S为已下载流媒体数据片段的大小,D为已下载流媒体数据片段的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长。
2.如权利要求1所述的流媒体播放器缓冲的方法,其特征在于,所述从流媒体服务器下载与确定的码率对应的流媒体数据片段的步骤包括:
获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长;
在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段。
3.如权利要求1或2所述的流媒体播放器缓冲的方法,其特征在于,所述已下载的流媒体数据片段存储在异步队列中,所述按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示的步骤包括:
按照流媒体数据片段的下载顺序,以同步的方式访问所述异步队列;
匀速的分发已下载的流媒体数据片段,并依次将分发的流媒体数据片段解码并显示。
4.一种流媒体播放器缓冲的装置,其特征在于,该装置包括:
处理模块,用于获取网络的当前下载速度,根据预存码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
下载模块,用于从流媒体服务器下载与确定的码率对应的流媒体数据片段;
播放模块,用于按照流媒体数据片段的下载顺序,依次将已下载的流媒体数据片段解码并显示;
所述处理模块,还用于根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间,计算出网络的当前下载速度;
分析模块,用于获取当前下载流媒体数据片段的码率,并分析当前下载速度值是否大于获取的码率值;
所述处理模块,还用于在所述当前下载速度值小于或者等于获取的码率值时,根据码率与下载速度的映射关系,确定所述当前下载速度对应的码率;
在所述当前下载速度值大于获取的码率值时,根据预设的码率等级,将获取的码率上一级码率作为确定的码率,上一级码率的值大于获取的码率的值;
根据已下载流媒体数据片段的缓冲时长、预设缓冲时长、第一预设时间内已下载流媒体数据片段的大小及下载时间计算出网络的当前下载速度所采用的公式为:
BW=(S/D)*(T1/T2),其中,BW为下载速度,S为已下载流媒体数据片段的大小,D为已下载流媒体数据包的下载时间,T1为已下载流媒体数据片段的缓冲时长,T2为预设缓冲时长。
5.如权利要求4所述的流媒体播放器缓冲的装置,其特征在于,所述分析模块,还用于获取已下载流媒体数据片段的缓冲时长,分析所述缓冲时长是否大于预设缓冲时长;
下载模块,还用于在所述缓冲时长小于或等于预设缓冲时长时,从流媒体服务器下载与确定的码率对应的流媒体数据片段。
6.如权利要求4或5所述的流媒体播放器缓冲的装置,其特征在于,所述已下载的流媒体数据片段存储在异步队列中,该装置还包括分发模块,
所述分发模块,用于按照流媒体数据片段的下载顺序,以同步的方式访问所述异步队列;
匀速的分发已下载的流媒体数据片段;
所述播放模块,还用于依次将分发的流媒体数据片段解码并显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410182192.2A CN105025351B (zh) | 2014-04-30 | 2014-04-30 | 流媒体播放器缓冲的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410182192.2A CN105025351B (zh) | 2014-04-30 | 2014-04-30 | 流媒体播放器缓冲的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105025351A CN105025351A (zh) | 2015-11-04 |
CN105025351B true CN105025351B (zh) | 2018-06-29 |
Family
ID=54414997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410182192.2A Active CN105025351B (zh) | 2014-04-30 | 2014-04-30 | 流媒体播放器缓冲的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105025351B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210929B (zh) * | 2016-07-13 | 2019-06-25 | 诚迈科技(南京)股份有限公司 | 基于hls客户端的网络流下载终端及优化方法 |
CN107690093B (zh) * | 2016-08-03 | 2020-01-17 | 杭州海康威视数字技术股份有限公司 | 一种视频播放方法及装置 |
CN106454412B (zh) * | 2016-09-09 | 2019-07-19 | 腾讯科技(北京)有限公司 | 码率的调整方法和装置 |
US10334238B2 (en) * | 2017-01-03 | 2019-06-25 | Black Sails Technology Inc. | Method and system for real-time rendering displaying high resolution virtual reality (VR) video |
CN107454458A (zh) * | 2017-08-30 | 2017-12-08 | 努比亚技术有限公司 | 一种视频数据缓存方法、设备和存储介质 |
CN107493510B (zh) * | 2017-09-19 | 2020-03-17 | 武汉斗鱼网络科技有限公司 | 直播间内直播流播放方法、装置、计算机存储介质及设备 |
CN108200470A (zh) * | 2017-12-20 | 2018-06-22 | 中国联合网络通信集团有限公司 | 一种视频码率调整方法及设备 |
CN109981532A (zh) * | 2017-12-27 | 2019-07-05 | 中移(杭州)信息技术有限公司 | 一种媒体文件的传输方法和服务器 |
CN110011868A (zh) * | 2018-01-05 | 2019-07-12 | 武汉斗鱼网络科技有限公司 | 一种网络可达确定方法、电子设备及可读存储介质 |
CN109040801B (zh) * | 2018-07-19 | 2019-07-09 | 北京达佳互联信息技术有限公司 | 媒体码率自适应方法、装置、计算机设备及存储介质 |
CN110309344B (zh) * | 2019-07-05 | 2021-07-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据资源获取方法及装置 |
CN112217854A (zh) * | 2019-07-12 | 2021-01-12 | 南京机器岛智能科技有限公司 | 一种支持云端快速响应的点读系统 |
CN110971935A (zh) * | 2019-11-27 | 2020-04-07 | 福建天泉教育科技有限公司 | 自适应清晰度的视频播放方法、存储介质 |
CN113141523B (zh) | 2020-01-17 | 2022-07-22 | 北京达佳互联信息技术有限公司 | 资源传输方法、装置、终端及存储介质 |
CN113709585B (zh) * | 2021-08-25 | 2023-09-19 | 三星电子(中国)研发中心 | 流媒体播放方法和装置 |
CN114785772A (zh) * | 2022-04-27 | 2022-07-22 | 广州宸祺出行科技有限公司 | 一种基于下载速率下载相应码率网约车音频的方法及装置 |
CN115396731A (zh) * | 2022-08-10 | 2022-11-25 | 北京势也网络技术有限公司 | 全景视频的播放方法、装置、电子设备及可读存储介质 |
CN117440209B (zh) * | 2023-12-15 | 2024-03-01 | 牡丹江师范学院 | 一种基于演唱场景的实现方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499918A (zh) * | 2009-02-10 | 2009-08-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种自适应流媒体播放方法、装置、系统及移动终端 |
CN102957672A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 自适应播放flv媒体流的方法、客户端和系统 |
CN103248962A (zh) * | 2013-04-23 | 2013-08-14 | 华为技术有限公司 | 获取流媒体数据的方法、设备及系统 |
CN103458272A (zh) * | 2012-05-30 | 2013-12-18 | 中国电信股份有限公司 | 确定视频流推送码率的方法、装置与服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044851A1 (en) * | 2000-04-28 | 2001-11-22 | Rothman Peter Lorin | System and method for reducing the resources required to deliver streaming media |
-
2014
- 2014-04-30 CN CN201410182192.2A patent/CN105025351B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499918A (zh) * | 2009-02-10 | 2009-08-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种自适应流媒体播放方法、装置、系统及移动终端 |
CN102957672A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 自适应播放flv媒体流的方法、客户端和系统 |
CN103458272A (zh) * | 2012-05-30 | 2013-12-18 | 中国电信股份有限公司 | 确定视频流推送码率的方法、装置与服务器 |
CN103248962A (zh) * | 2013-04-23 | 2013-08-14 | 华为技术有限公司 | 获取流媒体数据的方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105025351A (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105025351B (zh) | 流媒体播放器缓冲的方法及装置 | |
CN108391179B (zh) | 直播数据处理方法、装置、服务器、终端及存储介质 | |
US9167007B2 (en) | Stream complexity mapping | |
CN102948126B (zh) | 生成和处理流媒体体验质量度量的方法和装置 | |
CN103248962B (zh) | 获取流媒体数据的方法、设备及系统 | |
US7945573B1 (en) | Dynamic transcoding to stitch streaming digital content | |
CN108124202B (zh) | 一种使流媒体服务器支持hls协议的方法 | |
CN109565620A (zh) | 低延迟http实时流传输 | |
EP2830322A1 (en) | Method, terminal and server for implementing trickplay | |
CN104219286B (zh) | 流媒体处理方法、装置、客户端、cdn节点服务器及终端 | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
JP6314252B2 (ja) | ネットワークビデオ再生方法及び装置 | |
CN106658226B (zh) | 一种播放方法及装置 | |
CN105430425A (zh) | 单分片视频播放加速方法及装置 | |
CN110121100A (zh) | 媒体文件的下载方法、装置、终端和计算机可读存储介质 | |
CN107911709A (zh) | 直播界面显示方法、装置及终端 | |
US20120221681A1 (en) | Method, apparatus and system for hierarchically requesting contents in a http streaming system | |
CN102364905B (zh) | 数据再现方法、装置及移动终端 | |
CN107333163A (zh) | 一种视频处理方法及装置、一种终端及存储介质 | |
CN107147921A (zh) | 基于切片与智能cdn调度的视频播放加速方法和设备 | |
CN108933764A (zh) | 一种实现快速起播的方法和装置 | |
CN102280132A (zh) | 基于http协议的在线流式音频播放方法 | |
CN104464743B (zh) | 一种在语音聊天室中播放背景音乐的方法及移动终端 | |
US20090172752A1 (en) | Streaming multiple videos in a playlist | |
WO2020155961A1 (zh) | 视频请求方法、系统、计算机设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |