视频缓冲方法、装置、电子设备及计算机可读存储介质与流程

文档序号:23177363发布日期:2020-12-04 14:07阅读:135来源:国知局
视频缓冲方法、装置、电子设备及计算机可读存储介质与流程

本发明涉及视频处理技术领域,更具体地,涉及一种视频缓冲方法、一种视频缓冲装置、一种电子设备以及一种计算机可读存储介质。



背景技术:

随着wifi提速、4g网络的普及,用户终端的网络速度提升明显,使得用户的内容消费由图文转向视频,导致用户终端设备间带宽竞争加剧。

在视频播放时,为保障用户可以流畅播放视频,需要缓冲足够多的连续数据。目前,采用并发方式对视频进行缓冲,但是并发缓冲可能会产生不连续的数据片,导致视频播放卡顿。



技术实现要素:

本发明的一个目的是提供一种用于视频缓冲的新技术方案。

根据本发明的第一方面,提供了一种视频缓冲方法,包括:

根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间;

基于所述已缓冲视频区间确定待缓冲目标视频区间;

对所述待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间;

对每一个分片区间执行缓冲操作。

可选地,所述基于所述已缓冲视频区间确定待缓冲目标视频区间的步骤包括:

获得所述已缓冲视频区间的长度值和预设比例系数;

利用所述已缓冲视频区间的长度值和预设比例系数,确定所述待缓冲目标视频区间的长度值;

利用所述待缓冲目标视频区间的长度值确定所述待缓冲目标视频区间。

可选地,所述方法还包括:

获得预设的最小缓冲视频区间的长度值;

将所述已缓冲视频区间的长度值与所述最小缓冲视频区间的长度值进行比对,得到比对结果;

在所述比对结果为所述已缓冲视频区间的长度值超过所述最小缓冲视频区间的长度值的情况下,利用所述已缓冲视频区间的长度值和所述预设比例系数,确定所述待缓冲目标视频区间的长度值;

在所述比对结果为所述已缓冲视频区间的长度值未超过所述最小缓冲视频区间的长度值的情况下,将最小缓冲视频区间的长度值作为所述待缓冲目标视频区间的长度值。

可选地,所述对所述待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间的步骤包括:

获取预设配置的分片数量和所述待缓冲目标视频区间的长度值;

根据预设配置的分片数量和所述待缓冲目标视频区间的长度值,确定单个分片长度上限值;

利用所述单个分片长度上限值,对所述待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

可选地,所述方法还包括:

判断所述待缓冲目标视频区间是否存在已缓冲视频部分,得到判断结果;

在所述判断结果为所述待缓冲目标视频区间存在已缓冲视频部分的情况下,利用第一预设扩展系数对所述待缓冲目标视频区间进行扩展,得到第一待缓冲目标视频扩展区间。

可选地,所述方法还包括:

取消超出所述待缓冲目标视频区间的分片区间的缓冲操作。

可选地,获得第二预设扩展系数;

基于所述第二预设扩展系数和所述待缓冲目标视频区间,得到第二待缓冲目标视频扩展区间;

所述取消超出所述待缓冲目标视频区间的分片区间的缓冲操作包括:

取消超出所述第二待缓冲目标视频扩展区间的分片区间的缓冲操作。

可选地,所述方法还包括:

对所述待缓冲目标视频区间的、未完成缓冲的分片区间进行二次分片处理,新增至少一个分片区间,并对二次分片处理得到的各分片区间分别执行缓冲处理。

根据本发明的第二方面,提供了一种视频缓冲装置,包括:

已缓冲视频区间确定模块,用于根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间;

待缓冲目标视频区间确定模块,用于基于所述已缓冲视频区间确定待缓冲目标视频区间;

分片模块,用于对所述待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间;

缓冲模块,用于对每一个分片区间执行缓冲操作。

根据本发明的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储可执行的指令;所述处理器用于根据所述指令的控制执行根据第一方面中任意一项所述的方法。

根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据第一方面中任意一项所述的方法。

根据本发明的一个实施例,根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间,基于已缓冲视频区间确定待缓冲目标视频区间,对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间,对每一个分片区间执行缓冲操作,通过这种视频的自适应动态分片的方式,减小了视频的缓冲时间,有效地避免视频播放时的卡顿的问题。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是可用于实现本发明任意实施例提供的方法的电子设备的硬件配置的框图。

图2是根据本发明一个实施例的视频缓冲方法的处理流程图。

图3是根据本发明一个例子的已缓冲视频区间和待缓冲目标视频区间的显示示意图。

图4是根据本发明另一个例子的已缓冲视频区间和待缓冲目标视频区间的显示示意图。

图5是根据本发明另一个例子的已缓冲视频区间和待缓冲目标视频区间的显示示意图。

图6是根据本发明另一个例子的已缓冲视频区间和待缓冲目标视频区间的显示示意图。

图7是根据本发明另一个例子的已缓冲视频区间和待缓冲目标视频区间的显示示意图。

图8为根据本发明实施例的视频缓冲装置的原理框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

<硬件配置>

图1是可用于实现本发明任意实施例提供的方法的电子设备的硬件配置的框图。

在一个实施例中,电子设备可以是手机、手持电脑、笔记本电脑等终端设备1000,在此不做限定。

本实施例中,参照图1所示,终端设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、定位装置1700、摄像装置1800等等。

处理器1100可以是移动版处理器。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括usb接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。定位装置1700用于提供定位功能,例如可以是gps定位模块、北斗定位模块等。摄像装置1800可以是一个或多个摄像头,具有拍照、拍摄视频以及扫描二维码的功能。

尽管在图1中示出了终端设备1000的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,终端设备1000只涉及存储器1200、处理器1100、摄像装置1800,或者,终端设备1000只涉及存储器1200、处理器1100、定位装置1700和摄像装置1800。

在该实施例中,终端设备1000的存储器1200用于存储指令,该指令用于控制处理器1100进行操作以至少执行根据本发明任意实施例的视频缓冲方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

<方法实施例>

图2是根据本发明一个实施例的视频缓冲方法的处理流程图。该方法由图1中的终端设备1000实施。

根据图2所示,该视频缓冲方法可以包括以下步骤s2100-s2400。

步骤s2100,根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间。

应当理解的是,已缓冲视频区间是一个连续区间,在该连续区间中不存在未缓冲数据。

步骤s2200,基于已缓冲视频区间确定待缓冲目标视频区间。

在一个实施例中,步骤s2200进一步包括步骤s2210-s2230。

步骤s2210,获得已缓冲视频区间的长度值和预设比例系数。

已缓冲视频区间的长度值可以根据视频的播放位置和视频的已缓冲位置得到。例如,视频的播放位置为视频的第x秒,视频的已缓冲位置为视频的第y秒,将(y-x)作为已缓冲视频区间的长度值。

预设比例系数是指已缓冲视频区间的长度值和待缓冲视频区间的长度值的比值。预设比例系数可以根据视频缓冲要求进行设定,例如,0.9、1、1.1等等。

步骤s2220,利用已缓冲视频区间的长度值和预设比例系数,确定待缓冲目标视频区间的长度值。

步骤s2230,利用待缓冲目标视频区间的长度值确定待缓冲目标视频区间。

待缓冲目标视频区间的起始位置为视频的已缓冲位置。待缓冲视频区间的结束位置可以根据待缓冲目标视频区间的起始位置和待缓冲目标视频区间的长度值得到。

在一个实施例中,步骤s2200还可以包括步骤s2240-s2260。

步骤s2240,获得预设的最小缓冲视频区间的长度值。

在视频开始播放时,经常会出现播放卡顿的情况。为了避免这种情况,在视频开始播放之前,通常缓冲一定量的数据(例如,1s、2s、5s等)后再开始播放。在这种情况下,缓冲的数据量对应的长度值为最小缓冲视频区间的长度值。

步骤s2250,将已缓冲视频区间的长度值与最小缓冲视频区间的长度值进行比对,得到比对结果。

在比对结果为已缓冲视频区间的长度值超过最小缓冲视频区间的长度值的情况下,执行步骤s2220涉及的操作。

在比对结果为已缓冲视频区间的长度值未超过最小缓冲视频区间的长度值的情况下,执行步骤s2260,将最小缓冲视频区间的长度值作为待缓冲目标视频区间的长度值。

需要补充说明地是,当待缓冲目标视频区间的结束位置超出视频的结束位置时,以视频的结束位置作为待缓冲目标视频区间的结束位置。例如,待缓冲目标视频区间的结束位置对应的是视频的第1100秒,视频的结束位置对应的是视频的第1000秒,此时,将第1000秒对应的视频位置作为待缓冲目标视频区间的结束位置。

步骤s2300,对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

在一个实施例中,步骤s2300进一步包括步骤s2310-s2330。

步骤s2310,获取预设配置的分片数量和待缓冲目标视频区间的长度值。

预设配置的分片数量可以根据视频缓冲要求具体设定。

步骤s2320,根据预设配置的分片数量和待缓冲目标视频区间的长度值,确定单个分片长度上限值。

具体地,基于以下计算式(1)得到单个分片长度上限值lsingle,

lsingle=l1/q1—计算式(1),

其中,l1为待缓冲视频目标区间的长度值,q1为预设配置的分片数量。

步骤s2330,利用单个分片长度上限值,对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

具体地,基于以下计算式(2),得到待缓冲目标视频区间的、单个未缓冲且未分片的视频部分分片处理后的分片区间的数量q2,

q2=ceil(l2/lsingle)—计算式(2),

其中,ceil为向上取整函数,l2为待缓冲目标视频区间的、单个未缓冲且未分片的视频部分的长度值。

根据图3所示,待缓冲目标视频区间的正在缓冲且已分片的分片区间为a和c,待缓冲目标视频区间的未缓冲且已分片的分片区间为b,待缓冲目标视频区间的、未缓冲且未分片的视频部分为d。利用单个分片长度上限值对视频部分d进行分片处理,得到对应的分片区间。

参见图3,待缓冲目标视频区间的、未缓冲且未分片的视频部分d的长度值小于单个分片长度上限值(即位于图3右上角的单个分片的长度值)。基于上述计算式(2),得到的分片区间的数量为一个。

根据图4所示,待缓冲目标视频区间的正在缓冲且已分片的分片区间为a和c,待缓冲目标视频区间的、未缓冲且未分片的视频部分为b和d。利用单个分片长度上限值分别对视频部分b和视频部分d进行分片处理,得到对应的分片区间。

参见图4,待缓冲目标视频区间的、未缓冲且未分片的视频部分d的长度值小于单个分片长度上限值(即位于图4右上角的单个分片的长度值),基于上述计算式(2),得到视频部分d对应的分片区间的数量为一个。待缓冲目标视频区间的、未缓冲且未分片的视频部分b的长度值介于单个分片长度上限值和两个单个分片长度上限值之间,基于上述计算式(2),得到视频部分b对应的分片区间的数量为两个。

步骤s2400,对每一个分片区间分别执行缓冲操作。

本发明实施例提供的视频缓冲方法的触发事件可以是下列任一种:视频播放前moov的解析完成、视频的播放位置发生变化、待缓冲目标视频区间的缓冲任务完成。其中,moov存储有视频播放所需的元数据的文件区块,例如,记录有视频的第x秒的视频和音频的位置信息。

在本发明的一个实施例中,该视频缓冲方法可以包括以下步骤s2500-s2600。

步骤s2500,判断待缓冲目标视频区间是否存在已缓冲视频部分,得到判断结果。

步骤s2600,在判断结果为待缓冲目标视频区间存在已缓冲视频部分的情况下,利用第一预设扩展系数对待缓冲目标视频区间进行扩展,得到第一待缓冲目标视频扩展区间。

第一预设扩展系数可以根据视频缓冲的需求进行设定,例如,0.2、0.3、0.4等等。

具体地,利用第一预设扩展系数、待缓冲目标视频区间的长度值和待缓冲目标视频区间的已缓冲视频部分的长度值,得到第一待缓冲目标视频扩展区间的长度值。

基于以下计算式(3)得到第一待缓冲目标视频扩展区间的长度值,

lextended=l1+l3*e—计算式(3),

其中,lextended为第一待缓冲目标视频扩展区间的长度值,l1为待缓冲视频区间的长度值,l3为待缓冲目标视频区间中已缓冲视频部分的长度值,e为第一预设扩展系数。

根据图3和图4所示,待缓冲目标视频区间均存在已缓冲视频部分。此时,对待缓冲目标视频区间进行扩展,得到第一待缓冲目标视频扩展区间。

在本实施例中,步骤s2300进一步包括对第一待缓冲目标视频扩展区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

应当理解的是,本发明实施例提供的视频的播放位置可以基于用户的触发操作发生变化。当视频的播放位置发生变化时,已缓冲视频区间发生变化,相应地,待缓冲目标视频区间也会发生变化。

在一个实施例中,在待缓冲目标视频区间发生变化的情况下,视频缓冲方法还包括步骤s2700,取消超出待缓冲目标视频区间的分片区间的缓冲操作。这样可以及时取消对不合理位置的分片区间的缓冲操作,避免对不合理位置的分片区间的缓冲操作占用资源的问题。

超出待缓冲目标视频区间的分片区间包括两种情况,一种是分片区间不再位于待缓冲目标视频区间内,另一种是分片区间部分超出待缓冲目标视频区间。

对于分片区间不再位于待缓冲目标视频区间内的情况,直接取消对该分片区间的缓冲操作。

对于分片区间部分超出待缓冲目标视频区间的情况,根据该分片区间的当前缓冲位置是否位于待缓冲目标视频区间,确定是否取消对该分片区间的缓冲操作。当分片区间的当前缓冲位置位于待缓冲目标视频区间内,保留对该分片区间的缓冲操作。当分片区间的当前缓冲位置未位于待缓冲目标视频区间内,取消对该分片区间的缓冲操作。

在一个例子中,根据图5所示,基于用户触发的操作,视频的播放位置发生前移,即由播放位置a前移至播放位置b。已缓冲视频区间发生收缩,相应地,待缓冲目标视频区间也会发生收缩。

具体地,参见图5,位于图5上半部分的示意图为视频的播放位置发生变化前已缓冲视频区间和待缓冲目标视频区间的示意图。位于图5下半部分的示意图为视频的播放位置发生变化后已缓冲视频区间和待缓冲目标视频区间的示意图。

根据图5所示,待缓冲目标视频区间发生收缩前,对待缓冲目标视频区间的分片区间a、分片区间b、分片区间c和分片区间d分别执行缓冲操作。待缓冲目标视频区间发生收缩后,分片区间d不再位于待缓冲目标视频区间内,此时,取消对分片区间d的缓冲操作。分片区间c的当前缓冲位置未超出待缓冲目标视频区间,保留对分片区间c的缓冲操作。

在另一个例子中,根据图6所示,基于用户触发的操作,视频的播放位置发生后退,即由播放位置a前移至播放位置c。已缓冲视频区间发生变化,相应得,待缓冲目标视频区间也会发生变化。待缓冲目标视频区间的长度值为最小缓冲视频区间的长度值。

具体地,参见图6,位于图6上半部分的示意图为视频的播放位置发生变化前已缓冲视频区间和待缓冲目标视频区间的示意图。位于图6下半部分的示意图为视频的播放位置发生变化后已缓冲视频区间和待缓冲目标视频区间的示意图。

根据图6所示,待缓冲目标视频区间发生变化前,对待缓冲目标视频区间的分片区间a、分片区间b、分片区间c和分片区间d分别执行缓冲操作。待缓冲目标视频区间发生变化后,上述4个分片区间均不再位于待缓冲目标视频区间内,此时,取消对该4个分片区间的缓冲操作。在本实施例中,取消超出待缓冲目标视频区间的分片区间的缓冲操作。在另一个实施例中,取消超出扩展后的待缓冲目标视频区间的分片区间的缓冲操作。

例如,扩展后的待缓冲目标视频区间通过以下步骤确定:获得第二预设扩展系数;基于第二预设扩展系数和待缓冲目标视频区间,得到第二待缓冲目标视频扩展区间。

第二预设扩展系数可以根据视频缓冲的需求进行设定,例如,1.1、1.2、1.5等等。

超出第二待缓冲目标视频扩展区间的分片区间包括两种情况,一种是分片区间不再位于第二待缓冲目标视频扩展区间内,另一种是分片区间部分超出第二待缓冲目标视频扩展区间。

对于分片区间不再位于第二待缓冲目标视频扩展区间内的情况,直接取消对该分片区间的缓冲操作。

对于分片区间部分超出第二待缓冲目标视频扩展区间的情况,根据该分片区间的当前缓冲位置是否位于第二待缓冲目标视频扩展区间,确定是否取消对该分片区间的缓冲操作。当分片区间的当前缓冲位置位于第二待缓冲目标视频扩展区间内,保留对该分片区间的缓冲操作。当分片区间的当前缓冲位置未位于第二待缓冲目标视频扩展区间内,取消对该分片区间的缓冲操作。

待缓冲目标视频区间的各分片区间的缓冲速度可能会出现不一致的情况。如果某一个分片区间的缓冲速度较慢时,会出现其他分片区间的缓冲操作完成后,该分片区间的缓冲操作还未完成的情况,这样会导致已缓冲视频区间的生长缓慢,以及待缓冲目标视频区间也无法进一步合理扩展的问题。

为了解决这一技术问题,在本发明的一个实施例中,视频缓冲方法还包括步骤s2800,对待缓冲目标视频区间的、未完成缓冲的分片区间进行二次分片处理,新增至少一个分片区间,并对二次分片处理得到的各分片区间分别执行缓冲处理。这样可以分担原分片区间的缓冲任务量。

待缓冲目标视区间的、未完成缓冲的分片区间可以是缓冲速度低于预设缓冲速度阈值的区间,或者,可以是剩余缓冲区间的长度值大于预设长度值的区间。

根据图7所示,待缓冲目标视频区间包括4个分片区间,即分片区间a、分片区间b、分片区间c和分片区间d。其中,分片区间d的缓冲速度低于预设缓冲速度阈值,对分片区间d进行二次分片处理,新增一个分片区间e,原分片区间d变为分片区间d′,然后对分片区间d′和分片区间e分别执行缓冲操作。

本发明实施例提供的视频缓冲方法,根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间,基于已缓冲视频区间确定待缓冲目标视频区间,对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间,对每一个分片区间执行缓冲操作,通过这种视频的自适应动态分片的方式,减小了视频的缓冲时间,有效地避免视频播放时的卡顿的问题。

<例子>

在本例子中,该视频缓冲方法可以包括以下步骤s801-s802。

步骤s801,根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间。

步骤s802,获得已缓冲视频区间的长度值、最小缓冲视频区间的长度值和预设配置的分片数量。

步骤s803,判断已缓冲视频区间的长度值是否超过最小缓冲视频区间的长度值。

在已缓冲视频区间的长度值未超过最小缓冲视频区间的长度值的情况下,执行步骤s804,将最小缓冲视频区间的长度值作为待缓冲目标视频区间的长度值。

在已缓冲视频区间的长度值超过最小缓冲视频区间的长度值的情况下,执行步骤s805,利用已缓冲视频区间的长度值和预设比例系数,确定待缓冲目标视频区间的长度值。

步骤s806,利用待缓冲目标视频区间的长度值确定待缓冲目标视频区间。

步骤s807,判断待缓冲目标视频区间是否存在已缓冲视频部分。

在判断结果为待缓冲目标视频区间存在已缓冲视频部分的情况下,执行步骤s808,利用第一预设扩展系数对待缓冲目标视频区间进行扩展,得到第一待缓冲目标视频扩展区间。

步骤s809,根据预设配置的分片数量和待缓冲目标视频区间的长度值,确定单个分片长度上限值。

步骤s810,利用单个分片长度上限值,对待缓冲目标视频区间的或者第一待缓冲目标视频扩展区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

步骤s811,对每一个分片区间分别执行缓冲操作。

步骤s812,判断各分片区间的缓冲速度是否低于预设缓冲速度阈值。

当某一分片区间的缓冲速度是否低于预设缓冲速度阈值时,执行步骤s813,对分片区间进行二次分片处理,新增至少一个分片区间,并对二次分片处理得到的各分片区间分别执行缓冲处理。

<装置实施例>

图8为根据本发明实施例的视频缓冲装置的原理框图。

根据图8所示,本实施例的视频缓冲装置8000可以包括已缓冲视频区间确定模块8100、待缓冲目标视频区间确定模块8200、分片模块8300、缓冲模块8400。

已缓冲视频区间确定模块8100用于根据视频的播放位置和视频的已缓冲位置,确定已缓冲视频区间。

待缓冲目标视频区间确定模块8200用于基于已缓冲视频区间确定待缓冲目标视频区间。

分片模块8300用于对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

缓冲模块8400用于对每一个分片区间执行缓冲操作。

在一个实施例中,待缓冲目标视频区间确定模块9200进一步用于获得已缓冲视频区间的长度值和预设比例系数;利用已缓冲视频区间的长度值和预设比例系数,确定待缓冲目标视频区间的长度值;利用待缓冲目标视频区间的长度值确定待缓冲目标视频区间。

在一个实施例中,待缓冲目标视频区间确定模块8200进一步用于获得预设的最小缓冲视频区间的长度值;将已缓冲视频区间的长度值与最小缓冲视频区间的长度值进行比对,得到比对结果;在比对结果为已缓冲视频区间的长度值超过最小缓冲视频区间的长度值的情况下,利用已缓冲视频区间的长度值和预设比例系数,确定待缓冲目标视频区间的长度值;在比对结果为已缓冲视频区间的长度值未超过最小缓冲视频区间的长度值的情况下,将最小缓冲视频区间的长度值作为待缓冲目标视频区间的长度值。

在一个实施例中,待缓冲目标视频区间确定模块8200进一步用于判断待缓冲目标视频区间是否存在已缓冲视频部分,得到判断结果;在判断结果为待缓冲目标视频区间存在已缓冲视频部分的情况下,利用第一预设扩展系数对待缓冲目标视频区间进行扩展,得到第一待缓冲目标视频扩展区间。

在一个实施例中,分片模块8300进一步用于获取预设配置的分片数量和待缓冲目标视频区间的长度值;根据预设配置的分片数量和待缓冲目标视频区间的长度值,确定单个分片长度上限值;利用单个分片长度上限值,对待缓冲目标视频区间的、未缓冲且未分片的视频部分进行分片处理,得到至少一个分片区间。

在一个实施例中,分片模块8300还用于对待缓冲目标视频区间的、未完成缓冲的分片区间进行二次分片处理,新增至少一个分片区间,并对二次分片处理得到的各分片区间分别执行缓冲处理。这样可以分担原分片区间的缓冲任务量,避免已缓冲视频区间的生产缓慢,以及待缓冲目标视频区间也无法进一步扩展的问题。

在一个实施例中,在待缓冲目标视频区间发生变化的情况下,视频缓冲装置还包括取消缓冲操作模块。该取消缓冲操作模块用于取消超出待缓冲目标视频区间的分片区间的缓冲操作。这样可以及时取消对不合理位置的分片区间的缓冲操作,避免对不合理位置的分片区间的缓冲操作占用资源的问题。

在另一个实施例中,取消缓冲操作模块还用于取消超出第二待缓冲目标视频扩展区间的分片区间的缓冲操作。第二待缓冲目标视频扩展区间通过以下步骤确定:获得第二预设扩展系数;基于第二预设扩展系数和待缓冲目标视频区间,得到第二待缓冲目标视频扩展区间。

<电子设备实施例>

在一个实施例中,电子设备1000可以包括根据本发明任意实施例的视频缓冲装置8000,用于实施本发明任意实施例的视频缓冲方法。

在另一个实施例中,电子设备1000可以包括处理器1100和存储器1200。该存储器1200用于存储可执行的指令,该处理器1100用于根据指令的控制运行电子设备1000执行根据本发明任意实施例的视频缓冲方法。

<计算机可读存储介质>

在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本发明任意实施例的视频缓冲方法。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

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