本发明涉及视频播放传输控制领域,尤其涉及一种视频播放缓冲方法及系统。
背景技术:
视频缓冲应用范围广泛,视频缓冲技术直接与用户体验相关,是一个十分重要的技术主标。目前一般的视频播放缓冲,无法自动适应网速,在网络速度低的情况下进行直播视频会出现画面断断续续的卡顿现象;当网络速度良好时,直播视频的播放出现延迟实时性现象。
技术实现要素:
为了克服现有技术的不足,本发明的目的在于提供一种视频播放缓冲系统及方法,其能自动适应网络网速,减少视频播放卡顿次数以及视频直播延迟时间。
本发明的目的采用以下技术方案实现:
一种视频播放缓冲方法,其特征在于,包括以下步骤:
根据视频缓冲数据量以及预设的播放阈值进行视频播放,并监测网速;
判断网速是否满足预设条件;
若网速满足预设条件,则根据当前网速更新视频缓冲区深度以及播放阈值。
优选的,所述根据视频缓冲数据量以及预设的播放阈值进行视频播放,具体包括:
判断视频缓冲区数据量是否达到播放阀值,若达到播放阈值,则读取视频缓冲区的视频数据进行视频播放。
优选的,所述判断网速是否满足预设条件,包括:
判断视频缓冲时接收视频数据是否出现卡顿或判断视频播放时读取视频数据是否出现卡顿。
优选的,所述若网速满足预设条件,则根据当前网速修改视频缓冲区深度以及播放阈值,具体为:
若视频缓冲时接收视频数据出现卡顿或视频播放时读取视频数据出现卡顿,则根据播放固定长度视频数据的时间Tp、缓冲接收固定长度视频数据的时间Td、上次卡顿的间隔时间T1、最新卡顿的间隔时间T2、初始缓冲深度L1以及初始播放阀值S1,计算出最新缓冲深度L2和最新播放阀值S2,将最新缓冲深度L2和最新播放阀值S2分别替换初始缓冲深度L1以及初始播放阀值S1。
优选的,所述最新缓冲深度L2的计算公式如下:
所述最新播放阀值S2的计算公式如下:
本发明又提供了一种视频播放缓冲系统,包括:
视频播放模块,用于根据视频缓冲数据量以及预设的播放阈值进行视频播放;
监测模块,用于监测网速;
判断模块,用于判断网速是否满足预设条件;
更新模块,用于当网速满足预设条件时,根据当前网速更新视频缓冲区深度以及播放阈值。
优选的,所述视频播放模块具体用于:判断视频缓冲区数据量是否达到播放阀值,若达到播放阈值,则读取视频缓冲区的视频数据进行视频播放;所述判断模块具体用于:判断视频缓冲接收视频数据传输是否出现卡顿或判断视频播放读取视频数据是否出现卡顿。
优选的,所述更新模块具体用于:当网速满足预设条件时,依据播放器模块播放固定长度视频数据的时间Tp、预缓冲模块缓冲接收固定长度视频数据的时间Td、上次卡顿的间隔时间T1、最新卡顿的间隔时间T2进行读取,计算出预缓冲模块最新缓冲深度L2以及播放器最新播放阀值S2;并将最新缓冲深度L2以及最新播放阀值S2分别替换初始缓冲深度值L1和初始播放阀值S1。
优选的,所述最新缓冲深度L2和最新播放阀值S2的计算公式如下:
进一步的,本发明还提供了一种视频播放缓冲系统,其特征在于,包括:
处理器,
以及用于存储处理器可执行指令的存储器;
所述处理器被配置为:
根据视频缓冲数据量以及预设的播放阈值进行视频播放,并监测网速;
判断网速是否满足预设条件;
若网速满足预设条件,则根据当前网速更新视频缓冲区深度以及播放阈值。
相比现有技术,本发明的有益效果在于:通过监测网速,计算出适合当前网速的最新缓冲深度和最新播放阀值,并将预设的初始缓冲深度和初始播放阀值修改成最新缓冲深度和最新播放阀值,使当前视频播放适合当前的网速,达到减少卡顿次数和延时时间。
附图说明
图1为本发明一实施例中的视频播放缓冲方法流程示意图;
图2为本发明一实施例中的视频播放缓冲系统结构示意图。
图3为本发明又一实施例中的视频播放缓冲系统结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
图1为本发明中一实施例提供的一种视频播放缓冲方法流程示意图,参照图1,该方法包括以下步骤:
步骤001、初始设定缓冲深度以及初始播放阀值,并进行视频缓冲。
根据正常网速的大小初始设定缓冲深度和播放阀值,缓冲深度和播放阀值都指存储量,单位为MB,需满足缓冲深度大于播放阀值;这里将初始缓冲深度用L1表示,初始播放阀值表示用S1表示。设定完成后,开始接收网络传输的视频数据并同步进行缓冲存储。
步骤002、视频缓冲深度达到初始播放阀值,播放视频。
当缓冲存储的视频数据量达到初始播放阀值,触发视频播放开启,缓冲的视频数据将被读取播放。
步骤003、对当前网速进行监测。
播放过程中,对当前网速实时监测。具体监测方式为:通过监测网络的视频数据传输缓冲存储是否出现卡顿现象,如出现此状况说明网络网速视频数据传输至缓存速度大于缓存的视频数据被读取播放速度,设定的缓冲深度已缓冲饱满,在视频播放中,会出现实时延迟过长现象;通过监测缓冲存储的视频数据被读取播放是否出现卡顿现象,如出现此状况说明网络网速视频数据传输至缓存速度小于缓存的视频数据被读取播放速度,设定的缓冲深度已无缓冲数据量,在视频播放中,会出现视频播放卡顿现象。
步骤004、如监测结果满足预设条件,计算最新缓冲深度和最新播放阀值。
具体的,预设条件是指网络的视频数据传输缓冲存储出现卡顿现象或缓冲存储的视频数据被读取播放时出现卡顿现象。即当监测出现网络的视频数据传输缓冲存储出现卡顿现象或缓冲存储的视频数据被读取播放时出现卡顿现象,为满足预设条件。当满足预设条件,则读取播放某一段固定长度视频数据的时间Tp、缓冲接收同一固定长度视频数据的时间Td、上次卡顿的间隔时间T1、最新卡顿的间隔时间T2,依据这些读取的值以及初始设定缓冲深度L1以及初始播放阀值S1,计算出最新的缓冲深度L2和最新播放阀值S2。对于L2的计算公式如下:
对于S2,根据先前计算出来的L2值以及L1和S1,计算公式如下:
此公式利用非线性关系实现多因素调节播放阀值S。在原来的阀值基础上进行非线性调整,从而实现快速适应缓冲深度与网速,减少卡顿次数与提高播放实时性。
步骤005、将缓冲深度以及播放阀值更新为最新值。
计算出最新的缓冲深度L2和最新播放阀值S2,将最新的L2替代初始缓冲深度值L1,最新的S2替代初始播放阀值S1。替代后,返回步骤002,开启播放。在播放过程中监测网速,通过计算出适应当前网速的缓冲深度值和播放阀值,并进行更新。当网速较慢时,通过公式计算增大缓冲深度,增大播放阀值,使得缓冲存储更多的数据量进行播放,减少缓冲数据量不及播放读取视频数据量的次数和时间;当网速较快时,通过公式计算增大缓冲深度,减小播放阀值,使得播放读取视频不用等缓冲到一定播放阀值才进行播放,达到减少直播延时时间。
实施例二:
图2为本发明中一实施例提供的一种视频播放缓冲系统结构示意图,参考图2,本发明提供了一种视频播放缓冲系统,包括:
视频播放模块100,用于根据视频缓冲数据量以及预设的播放阈值进行视频播放;
监测模块200,用于监测网速;
判断模块300,用于判断网速是否满足预设条件;
更新模块400,用于当网速满足预设条件时,根据当前网速更新视频缓冲区深度以及播放阈值。
进一步的,视频播放模块100具体用于:判断视频缓冲区数据量是否达到播放阀值,若达到播放阈值,则读取视频缓冲区的视频数据进行视频播放;判断模块300具体用于:判断视频缓冲时接收视频数据传输是否出现卡顿或判断视频播放时读取视频数据是否出现卡顿。更新模块400具体用于:当网速满足预设条件时,依据播放器模块播放固定长度视频数据的时间Tp、预缓冲模块缓冲接收固定长度视频数据的时间Td、上次卡顿的间隔时间T1、最新卡顿的间隔时间T2进行读取,计算出预缓冲模块最新缓冲深度L2以及播放器最新播放阀值S2;并将最新缓冲深度L2以及最新播放阀值S2分别替换初始缓冲深度值L1和初始播放阀值S1。
优选的,最新缓冲深度L2和最新播放阀值S2的计算公式如下:
此公式利用非线性关系实现多因素调节播放阀值S。在原来的阀值基础上进行非线性调整,从而实现快速适应缓冲深度与网速,减少卡顿次数与提高播放实时性。
本实施例中的系统与前述实施例一中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构组成,为了说明书的简洁,在此就不再赘述。
实施例三:
图3本发明中实施例提供的又一种视频播放缓冲系统结构示意图,参考图3,本发明提供了一种视频播放缓冲系统,包括:
处理器600,
以及用于存储处理器可执行指令的存储器500;
所述处理器600被配置为:
根据视频缓冲数据量以及预设的播放阈值进行视频播放,并监测网速;
判断网速是否满足预设条件;
若网速满足预设条件,则根据当前网速更新视频缓冲区深度以及播放阈值。
本实施例中的系统与前述实施例一中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构组成,为了说明书的简洁,在此就不再赘述。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元示意的部件可以是或者也可以不是物理模块,既可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等,
本发明的有益效果在于:通过监测网速,计算出适合当前网速的最新缓冲深度和最新播放阀值,并将预设的初始缓冲深度和初始播放阀值更新成最新缓冲深度和最新播放阀值,使当前视频播放适合当前的网速,达到减少卡顿次数和延时时间。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。