视频文件的播放方法和装置与流程

文档序号:12628565阅读:291来源:国知局
视频文件的播放方法和装置与流程

本发明涉及视频播放领域,具体而言,涉及一种视频文件的播放方法和装置。



背景技术:

Flash Player(一种播放器)目前广泛应用于网页端的视频播放,它短小精悍,能够在各种浏览器、操作系统和移动设备上使用,功能强大,兼容性高。超过13亿台的连接因特网的桌面计算机和移动设备上都安装了Adobe Flash Player(一款多媒体程序播放器)。

现有基于Flash技术实现的网页播放器对视频文件或数据流按照逐帧播放的方式处理,该处理方式应用在直播业务场景下,会带来以下问题:

在直播观看过程中,网络发生拥塞,会导致播放器端无法获取最新的直播数据流,那么播放器缓冲(buffer)播放完毕后,直播发生卡顿;后续网络状况恢复后,播放器从卡顿点继续播放,卡顿时间将持续累加至直播时延中,造成直播时延的持续增加。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种视频文件的播放方法和装置,以至少解决由于网络拥塞和卡顿导致的延时累积的技术问题。

根据本发明实施例的一个方面,提供了一种视频文件的播放方法,包括:在视频播放器播放视频文件的过程中,扫描所述视频播放器的当前缓冲值;判断所述当前缓冲值是否大于预先设定的缓冲阈值;若判断出所述当前缓冲值大于所述缓冲阈值,则获取跳转时长,其中,所述跳转时长根据所述当前缓冲值和第一播放缓冲值得到;从卡顿时刻跳转所述跳转时长来继续播放所述视频文件,其中,所述卡顿时刻为播放完所述视频播放器的缓冲区中数据的时刻。

进一步地,所述获取跳转时长包括:获取预先设置的所述第一播放缓冲值,其中,所述第一播放缓冲值可随当前网络状态的改变而改变;将所述当前缓冲值和所述第一播放缓冲值的差值作为所述跳转时长。

进一步地,在所述视频播放器播放视频文件的过程中,扫描所述视频播放器的当前缓冲值包括:定期扫描所述视频播放器的当前缓冲值、周期递增扫描所述视频播放器的当前缓冲值或者自适应周期扫描所述视频播放器的当前缓冲值。

进一步地,所述自适应周期扫描所述视频播放器的当前缓冲值包括:检测多次按照预设周期扫描所述视频播放器的当前缓冲值的结果,得到多个扫描结果;检测所述多个扫描结果是否稳定在一定范围内;若检测出所述多个扫描结果稳定在一定范围内,则增大所述预设周期;若检测出所述多个扫描结果在所述一定范围外波动,则减小所述预设周期。

进一步地,所述从卡顿时刻跳转所述跳转时长来继续播放所述视频文件包括:从所述卡顿时刻开始丢弃所述跳转时长所对应的视频文件来继续播放所述视频文件;或者从所述卡顿时刻开始加速播放所述跳转时长所对应的视频文件。

进一步地,在所述视频播放器播放视频文件之前,所述方法还包括:接收所述视频文件;检测接收到的视频文件的长度是否满足预先设置的第二播放缓冲值;若检测出接收到的所述视频文件的长度满足所述第二播放缓冲值,则开始播放所述视频文件;若检测出接收到的所述视频文件的长度不满足所述第二播放缓冲值,则继续接收所述视频文件直到接收到的所述视频文件的长度满足所述第二播放缓冲值。

根据本发明实施例的另一方面,还提供了一种视频文件的播放装置,包括:扫描单元,用于在视频播放器播放视频文件的过程中,扫描所述视频播放器的当前缓冲值;判断单元,用于判断所述当前缓冲值是否大于预先设定的缓冲阈值;获取单元,用于在判断出所述当前缓冲值大于所述缓冲阈值时,获取跳转时长,其中,所述跳转时长根据所述当前缓冲值和第一播放缓冲值得到;第一播放单元,用于从卡顿时刻跳转所述跳转时长来继续播放所述视频文件,其中,所述卡顿时刻为播放完所述视频播放器的缓冲区中数据的时刻。

进一步地,所述获取单元包括:获取模块,用于获取预先设置的所述第一播放缓冲值,其中,所述第一播放缓冲值可随当前网络状态的改变而改变;计算模块,用于将所述当前缓冲值和所述第一播放缓冲值的差值作为所述跳转时长。

进一步地,所述扫描单元包括:第一扫描模块,用于定期扫描所述视频播放器的当前缓冲值、第二扫描模块,用于周期递增扫描所述视频播放器的当前缓冲值或者第三扫描模块,用于自适应周期扫描所述视频播放器的当前缓冲值。

进一步地,所述第三扫描模块包括:第一检测子模块,用于检测多次按照预设周期扫描所述视频播放器的当前缓冲值的结果,得到多个扫描结果;第二检测子模块,检测所述多个扫描结果是否稳定在一定范围内;增加子模块,用于在检测出所述多个扫描结果稳定在一定范围内时,增大所述预设周期;减小子模块,用于在检测出所述多个扫描结果在所述一定范围外波动是,减小所述预设周期。

进一步地,所述第一播放单元包括:第一播放模块,用于从所述卡顿时刻开始丢弃所述跳转时长所对应的视频文件来继续播放所述视频文件;或者第二播放模块,用于从所述卡顿时刻开始加速播放所述跳转时长所对应的视频文件。

进一步地,所述装置还包括:第一接收单元,用于在所述视频播放器播放视频文件之前,接收所述视频文件;第三检测单元,用于检测接收到的视频文件的长度是否满足预先设置的第二播放缓冲值;第二播放单元,用于在检测出接收到的所述视频文件的长度满足所述第二播放缓冲值时,则开始播放所述视频文件;第二接收单元,用于在检测出接收到的所述视频文件的长度不满足所述第二播放缓冲值时,继续接收所述视频文件直到接收到的所述视频文件的长度满足所述第二播放缓冲值。

在本发明实施例中,采用在视频播放器播放视频文件的过程中,扫描所述视频播放器的当前缓冲值的方式,通过判断所述当前缓冲值是否大于预先设定的缓冲阈值,若判断出所述当前缓冲值大于所述缓冲阈值,则获取跳转时长,达到了从卡顿时刻跳转所述跳转时长来继续播放所述视频文件的目的,从而实现了降低直播延时的技术效果,进而解决了由于网络拥塞和卡顿导致的延时累积的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的视频文件的播放方法的流程图;

图2是根据本发明实施例的一种可选的视频文件的播放装置的示意图;

图3是根据本发明实施例的一种可选的视频文件的播放装置运行流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种可选的视频文件的播放的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的视频文件的播放方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,在视频播放器播放视频文件的过程中,扫描视频播放器的当前缓冲值;

步骤S104,判断当前缓冲值是否大于预先设定的缓冲阈值;

步骤S106,若判断出当前缓冲值大于缓冲阈值,则获取跳转时长,其中,跳转时长根据当前缓冲值和第一播放缓冲值得到;

步骤S108,从卡顿时刻跳转跳转时长来继续播放视频文件,其中,卡顿时刻为播放完视频播放器的缓冲区中数据的时刻。

在本发明实施例中,采用在视频播放器播放视频文件的过程中,扫描视频播放器的当前缓冲值的方式,通过判断当前缓冲值是否大于预先设定的缓冲阈值,若判断出当前缓冲值大于缓冲阈值,则获取跳转时长,达到了从卡顿时刻跳转跳转时长来继续播放视频文件的目的,从而实现了降低直播延时的技术效果,进而解决了由于网络拥塞和卡顿导致的延时累积的技术问题。

可选地,获取跳转时长包括:获取预先设置的第一播放缓冲值,其中,第一播放缓冲值可随当前网络状态的改变而改变;将当前缓冲值和第一播放缓冲值的差值作为跳转时长。

在播放器进行网络直播的过程中,播放器会根据当前网络的状态,动态的设置一个播放器的播放缓冲值,使播放器有一个适当的缓存,来保证网络直播的流畅,同时尽量减小播放器的延时,如:在网络状态较好时,播放器的播放缓冲值较小;在网络状态不好时,播放器的播放缓冲值较大。在播放器需要进行跳转播放时,通过播放器当前缓冲值减去播放器的播放缓冲来计算得出播放器的跳转时长,即播放器跳转之后的缓冲值等于播放器的播放缓冲,网络直播可以正常进行。

可选地,在视频播放器播放视频文件的过程中,扫描视频播放器的当前缓冲值包括:定期扫描视频播放器的当前缓冲值、周期递增扫描视频播放器的当前缓冲值或者自适应周期扫描视频播放器的当前缓冲值。

对播放器当前缓冲值的扫描可以采用多种方式,常用的有三种:定期扫描,即预设一个扫描周期,每隔一个周期,对播放器的缓冲值进行一次扫描;周期递增扫描,即预设一个初始扫描周期,并设置扫描周期按照某种规则递增,每个一个扫描周期,对播放器的缓冲值进行一次扫描;自适应周期扫描,即扫描周期自适应变化,每隔一个周期,对播放器的缓冲值进行一次扫描。

可选地,自适应周期扫描视频播放器的当前缓冲值包括:检测多次按照预设周期扫描视频播放器的当前缓冲值的结果,得到多个扫描结果;检测多个扫描结果是否稳定在一定范围内;若检测出多个扫描结果稳定在一定范围内,则增大预设周期;若检测出多个扫描结果在一定范围外波动,则减小预设周期。

自适应周期扫描是按照预设的周期对播放器的当前缓冲值进行多次扫描之后,根据多次扫描得到的缓冲值的变化情况,对扫描周期进行调整,如:多次扫描结果稳定在一定范围内,变化不大,则增大扫描周期;多次扫描结果在一定范围外波动,变化较大,则减小扫描周期。

可选地,从卡顿时刻跳转跳转时长来继续播放视频文件包括:从卡顿时刻开始丢弃跳转时长所对应的视频文件来继续播放视频文件;或者从卡顿时刻开始加速播放跳转时长所对应的视频文件。

当网络恢复,播放器要进行跳转播放,来减小播放延时的时候,可以采用两种不同方式:方式一,根据播放器根据上述的跳转时长,从卡顿的时刻开始,丢弃掉与跳转时长相应的视频文件,然后继续播放,此时播放器的延时即为播放器的播放延时;方式二,播放器加快播放速度,根据当前缓冲的大小,可以设置播放速度为正常速度的2倍、4倍、8倍和16倍等,等到播放器的当前缓冲值与播放器的播放缓冲值相等时,播放器恢复正常的播放速度。

可选地,在视频播放器播放视频文件之前,方法还包括:接收视频文件;检测接收到的视频文件的长度是否满足预先设置的第二播放缓冲值;若检测出接收到的视频文件的长度满足第二播放缓冲值,则开始播放视频文件;若检测出接收到的视频文件的长度不满足第二播放缓冲值,则继续接收视频文件直到接收到的视频文件的长度满足第二播放缓冲值。

网络直播的是否流畅是根本上是由网络状态决定的,而为了让网络直播能够流畅进行,可以在播放器预设一个播放缓冲,在开始进行网络直播的时候,播放器先接收视频文件,暂不播放,并实时检测接收到的视频文件是否满足预设的播放器播放缓冲值,当检测到接收到的视频文件长度大于播放器的播放缓冲值时,开始进行网络直播;接收到的视频文件长度小于播放器的播放缓冲值,则继续接受视频文件,采用这样的方式虽然使网络直播具有一定的延时,但可以在低延时的情况下,保证网络直播的流程度。

图2是根据本发明实施例的一种可选的视频文件的播放装置的示意图,如图2所示,该装置包括:

扫描单元10,用于在视频播放器播放视频文件的过程中,扫描视频播放器的当前缓冲值;

判断单元20,用于判断当前缓冲值是否大于预先设定的缓冲阈值;

获取单元30,用于在判断出当前缓冲值大于缓冲阈值时,获取跳转时长,其中,跳转时长根据当前缓冲值和第一播放缓冲值得到

第一播放单元40,用于从卡顿时刻跳转跳转时长来继续播放视频文件,其中,卡顿时刻为播放完视频播放器的缓冲区中数据的时刻。

在本发明实施例中,采用在视频播放器播放视频文件的过程中,扫描视频播放器的当前缓冲值的方式,通过判断当前缓冲值是否大于预先设定的缓冲阈值,若判断出当前缓冲值大于缓冲阈值,则获取跳转时长,达到了从卡顿时刻跳转跳转时长来继续播放视频文件的目的,从而实现了降低直播延时的技术效果,进而解决了由于网络拥塞和卡顿导致的延时累积的技术问题。

可选地,获取单元包括:获取模块,用于获取预先设置的第一播放缓冲值,其中,第一播放缓冲值可随当前网络状态的改变而改变;计算模块,用于将当前缓冲值和第一播放缓冲值的差值作为跳转时长。

在播放器进行网络直播的过程中,播放器会根据当前网络的状态,动态的设置一个播放器的播放缓冲值,使播放器有一个适当的缓存,来保证网络直播的流畅,同时尽量减小播放器的延时,如:在网络状态较好时,播放器的播放缓冲值较小;在网络状态不好时,播放器的播放缓冲值较大。在播放器需要进行跳转播放时,通过播放器当前缓冲值减去播放器的播放缓冲来计算得出播放器的跳转时长,即播放器跳转之后的缓冲值等于播放器的播放缓冲,网络直播可以正常进行。

可选地,扫描单元包括:第一扫描模块,用于定期扫描视频播放器的当前缓冲值、第二扫描模块,用于周期递增扫描视频播放器的当前缓冲值或者第三扫描模块,用于自适应周期扫描视频播放器的当前缓冲值。

对播放器当前缓冲值的扫描可以采用多种方式,常用的有三种:定期扫描,即预设一个扫描周期,每隔一个周期,对播放器的缓冲值进行一次扫描;周期递增扫描,即预设一个初始扫描周期,并设置扫描周期按照某种规则递增,每个一个扫描周期,对播放器的缓冲值进行一次扫描;自适应周期扫描,即扫描周期自适应变化,每隔一个周期,对播放器的缓冲值进行一次扫描。

可选地,第三扫描模块包括:第一检测子模块,用于检测多次按照预设周期扫描视频播放器的当前缓冲值的结果,得到多个扫描结果;第二检测子模块,检测多个扫描结果是否稳定在一定范围内;增加子模块,用于在检测出多个扫描结果稳定在一定范围内时,增大预设周期;减小子模块,用于在检测出多个扫描结果在一定范围外波动是,减小预设周期。

自适应周期扫描是按照预设的周期对播放器的当前缓冲值进行多次扫描之后,根据多次扫描得到的缓冲值的变化情况,对扫描周期进行调整,如:多次扫描结果稳定在一定范围内,变化不大,则增大扫描周期;多次扫描结果在一定范围外波动,变化较大,则减小扫描周期。

可选地,第一播放单元包括:第一播放模块,用于从卡顿时刻开始丢弃跳转时长所对应的视频文件来继续播放视频文件;或者第二播放模块,用于从卡顿时刻开始加速播放跳转时长所对应的视频文件。

当网络恢复,播放器要进行跳转播放,来减小播放延时的时候,可以采用两种不同方式:方式一,根据播放器根据上述的跳转时长,从卡顿的时刻开始,丢弃掉与跳转时长相应的视频文件,然后继续播放,此时播放器的延时即为播放器的播放延时;方式二,播放器加快播放速度,根据当前缓冲的大小,可以设置播放速度为正常速度的2倍、4倍、8倍和16倍等,等到播放器的当前缓冲值与播放器的播放缓冲值相等时,播放器恢复正常的播放速度。

可选地,装置还包括:第一接收单元,用于在视频播放器播放视频文件之前,接收视频文件;第三检测单元,用于检测接收到的视频文件的长度是否满足预先设置的第二播放缓冲值;第二播放单元,用于在检测出接收到的视频文件的长度满足第二播放缓冲值时,则开始播放视频文件;第二接收单元,用于在检测出接收到的视频文件的长度不满足第二播放缓冲值时,继续接收视频文件直到接收到的视频文件的长度满足第二播放缓冲值。

网络直播的是否流畅是根本上是由网络状态决定的,而为了让网络直播能够流畅进行,可以在播放器预设一个播放缓冲,播放器在开始进行网络直播的时候,播放器先接收视频屏文件作为缓冲,而暂不播放,同时并实时检测接收到的视频文件是否满足预设的播放器播放缓冲值,当检测到接收到的视频文件长度大于播放器的播放缓冲值时,开始进行网络直播;接收到的视频文件长度小于播放器的播放缓冲值,则继续接受视频屏文件,采用这样的方式虽然使网络直播具有一定的延时,但可以在低延时的情况下,保证网络直播的流程度。

图3是根据本发明实施例的一种可选的视频文件的播放装置运行流程图,如图3所示,下面结合具体的实施例对该视频文件播放装置的工作流程进行详细说明:

1.请求播放。打开播放器,播放器进行网络连接并请求网络直播。

2.参数初始设置。网络连接后,播放器进行参数的初始设置,其中,播放器的播放缓冲长度3秒,播放器缓冲阀值10秒,播放器缓冲探测周期500毫秒。

3.开始接受直播流。10:00:00播放器参数设置完成后,播放器开始接收直播流数据,即开始接受网络直播的视频文件,此时,播放器只接受视频文件,进行缓存暂不播放。

4.是否填满播放器播放缓冲值。在播放器接收视频文件的过程中,播放器对当前视频文件的缓冲值是否大于播放器播放缓冲值进行判断。

5.开始播放。如果当前视频文件的缓冲值大于播放器播放缓冲值,则播放器开始播放,否则继续接收视频文件,直至视频文件的缓冲值是否大于播放器播放缓冲值,播放器开始播放。

6.探测当前缓冲值。在播放过程中,播放器按照播放器缓冲探测周期定时探测播放器当前缓冲值。

7.当前缓冲是否大于缓冲阈值。播放器探测到当前缓冲值后,判断播放器当前缓冲值是否大于播放器缓冲阈值,如播放器当前缓冲值小于播放器缓冲阈值,则继续按照探测周期进行探测;如播放器当前缓冲值是否大于播放器缓冲阈值,则播放器进行跳转。

8.执行职能跳转策略。在10:01:00时,网络状态变差,出现卡顿,此时播放器播放缓冲文件,缓冲文件播放完毕,直播出现卡顿,10:02:00时,网络状态变好,播放器瞬间接收到网络卡顿过程中的视频文件,即10:01:00至10:02:00之间的视频文件,该视频文件长度为1分钟,大于播放器初始设置的播放器缓冲阀值10秒,此时,播放器判断出当前缓冲值大于播放器缓冲阈值,播放器执行跳转;由于之前网络状态变差,播放器的播放缓冲长度由3秒变为5秒,因此,跳转值为当前缓冲值减去播放器的播放缓冲,即1分钟减去5秒,跳转值为55秒,播放器跳转55秒,从10:01:55开始播放。

9.从跳转处向前寻找关键帧播放。至此,播放器通过跳转,将原本产生的1分钟的延时,缩短为5秒。在后续的网络直播过程中,播放器继续周期性探测当前播放器缓冲,若满足跳转条件,则执行跳转策略,直至直播结束或关闭播放器。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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