掌桥专利:专业的专利平台
掌桥专利
首页

一种视频缓存方法、装置及电子设备

文献发布时间:2023-06-19 11:27:38


一种视频缓存方法、装置及电子设备

技术领域

本发明涉及计算机技术领域,尤其涉及一种视频缓存方法、装置及电子设备。

背景技术

某些视频播放过程中,可能涉及到视频数据的切换。例如,互动视频中的剧情存在多个分支,播放过程中,会根据用户的选择切换到不同的分支,并播放相应的剧情视频。在这一视频切换的过程中,可能导致播放卡顿,影响播放效果。

发明内容

本发明实施例提供一种视频缓存方法、装置及电子设备,以解决视频切换过程中可能导致播放卡顿、影响播放效果的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种视频缓存方法,所述方法执行于电子设备,所述电子设备与网络侧设备通信连接,所述视频缓存方法包括以下步骤:

在接收交互指令之前,根据第一节点视频关联的第二节点视频,建立所述第二节点视频对应的第一播放器实例,所述第二节点视频的数量为一个或多个,所述第一播放器实例的数量大于或等于所述第二节点视频的数量;

向所述网络侧设备获取所述第二节点视频的缓存数据,以使所述电子设备通过所述第一播放器实例播放所述第二节点视频。

可选地,所述获取所述第二节点视频的缓存数据之后,还包括:

接收交互指令,所述交互指令包括对于所述第二节点视频中的目标节点视频的选择指令;

响应所述交互指令,并利用目标播放器实例播放所述目标节点视频,其中,所述目标播放器实例为所述第一播放器实例中与所述目标节点视频相对应的播放器实例。

可选地,所述响应所述交互指令之后,还包括:

清除除所述目标播放器实例之外的第一播放器实例。

可选地,所述利用目标播放器实例播放所述目标节点视频之后,还包括:

在所述目标播放器实例启动播放所述目标节点视频后,清除播放所述第一节点视频的第二播放器实例。

可选地,所述建立所述第二节点视频对应的第一播放器实例,包括:

在所述第一节点视频播放至第一预设节点时,建立所述第二节点视频对应的第一播放器实例;

所述建立所述第二节点视频对应的第一播放器实例之后,还包括:

在所述第一节点视频播放至第二预设节点时,显示交互指令的输入界面,其中,所述第一预设节点位于所述第二预设节点之前。

可选地,所述建立所述第二节点视频对应的第一播放器实例,包括:

建立第一播放器实例,且所述第一播放器实例的数量与所述第二节点视频的数量相等。

可选地,所述建立第一播放器实例,包括:

建立基于开放图形库OpenGL接口的第一播放器实例。

第二方面,本发明实施例还提供了一种视频缓存装置,所述视频缓存装置应用于电子设备,所述电子设备与网络侧设备通信连接,所述视频缓存装置包括:

建立模块,用于在接收交互指令之前,根据第一节点视频关联的第二节点视频,建立所述第二节点视频对应的第一播放器实例,所述第二节点视频的数量为一个或多个,所述第一播放器实例的数量大于或等于所述第二节点视频的数量;

缓存数据获取模块,用于向所述网络侧设备获取所述第二节点视频的缓存数据,以使所述电子设备通过所述第一播放器实例播放所述第二节点视频。

第三方面,本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如以上任一项所述的视频缓存方法的步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项所述的视频缓存方法的步骤。

本发明实施例通过在接收交互指令之前,将各个第二节点视频由网络侧设备缓存到本地电子设备,每一第二节点视频具有唯一的视频编号,并能够通过该视频编号与播放器实例关联,这样,当接收到交互指令后,能够基于交互指令确定相应的播放器实例,并利用该播放器实例根据视频编号播放相应的第二节点视频,由于该第二节点视频已经预先缓存,所以能够降低视频的卡顿的可能性,有助于提高播放效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的视频缓存方法的流程图;

图2是本发明实施例中视频数据处理的流程图;

图3是本发明实施例提供的视频缓存装置的结构示意图。

具体实施方式

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

参见图1,图1是本发明实施例提供的一种视频缓存方法的流程图,如图1所示,包括以下步骤:

步骤101、接收交互指令之前,根据第一节点视频关联的第二节点视频,建立所述第二节点视频对应的第一播放器实例,所述第二节点视频的数量为一个或多个,所述第一播放器实例的数量大于或等于所述第二节点视频的数量。

本实施例的技术方案应用于电子设备,该电子设备可以是包括但不限于手机、平板电脑、笔记本电脑、可穿戴设备等电子设备,该电子设备与网络侧设备通信连接,该网络侧设备可以为服务器,例如远程数据服务器或云端服务器等。

本实施例中第一节点视频和第二节点视频为相互关联的视频,且第二节点视频的数量为多个。而交互指令则用于对第二节点视频进行选择,以确定所需播放的第二节点视频。

以互动电影视频为例说明,互动电影视频播放到某一情节之后,可以由观众选择情节的走向,并根据观众所选择的情节走向播映相应的分支剧情影片,这里,第一节点视频对应在先播放的视频,而第二节点视频则对应多个分支剧情影片。

本实施例中所建立的第一播放器实例的数量根据第二节点视频的数量确定,应当理解的是,每一播放器实例仅能用于播放一个视频,因此,所建立的第一播放器实例的数量大于或等于第二节点视频的数量。

可选地,在一个具体实施方式中,该步骤101包括:建立第一播放器实例,且所述第一播放器实例的数量与所述第二节点视频的数量相等。

应当理解的是,如果建立过多的第一播放器实例,这些多余的第一播放器实例也很可能不会投入使用,因此,建立的第一播放器实例的数量等于第二节点视频的数量,有助于节约硬件资源,降低硬件的负担。

步骤102、向所述网络侧设备获取所述第二节点视频的缓存数据,以使所述电子设备通过所述第一播放器实例播放所述第二节点视频。

在建立了第一播放器实例之后,则缓存各第二节点视频,具体的,由服务器中获取各第二节点视频的缓存数据。

对于第二节点视频的缓存数据量可以根据实际需求设定。

应当理解的是,如果缓存数据的数量过多,对处理器、存储和内存等硬件带来的压力均较大,在硬件条件允许的情况下,可以不对缓存进程做出限制。

在一个具体实施方式中,为了降低硬件设备的运行压力,可以控制缓存的数据量,例如,仅缓存需要播放30秒或1分钟的视频,确保第一节点视频向第二节点视频切换过程中不出现卡顿即可。显然,对于第二节点视频的缓存量可以根据实际情况设定,此处不作进一步限定和描述。

所缓存的每一第二节点视频具有其唯一的视频编号(ID),每一第二节点视频通过该视频ID与一个第一播放器实例相关联,这样,第一播放器实例可以通过该关联的视频ID播放指定的第一节点视频。

本发明实施例通过在接收交互指令之前,将各个第二节点视频由网络侧设备缓存到本地电子设备,每一第二节点视频具有唯一的视频编号,并能够通过该视频编号与播放器实例关联,这样,当接收到交互指令后,能够基于交互指令确定相应的播放器实例,并利用该播放器实例根据视频编号播放相应的第二节点视频,由于该第二节点视频已经预先缓存,所以能够降低视频的卡顿的可能性,有助于提高播放效果。

可选地,在上述步骤102之后,还包括:

接收交互指令,所述交互指令包括对于所述第二节点视频中的目标节点视频的选择指令;

响应所述交互指令,并利用目标播放器实例播放所述目标节点视频,其中,所述目标播放器实例为所述第一播放器实例中与所述目标节点视频相对应的播放器实例。

目标节点视频为多个第二节点视频中的一个,且是根据交互指令所确定的。

以互动视频为例说明,在播放至特定的视频区间之后,需要由用户选择剧情走向,此处,用户针对剧情走向的操作输入即为电子设备所接收到的交互指令,进一步的,该交互指令所选择的第二节点视频即为即将进行播放的目标节点视频。

应当理解的是,各第二节点视频均是以缓存数据的形式保存在电子设备中,所以交互指令并非直接选择相应的第二节点视频,而是通过与之关联的交互信息选择相应的第二节点视频。

例如,电子设备所接收到的交互指令为对一个剧情的选择输入,在接收到该选择输入后,确定与之剧情相对应的第一播放器实例作为目标播放器实例,然后改目标播放器实例通过与之关联的视频ID播放相应的第二节点视频,该第二节点视频即为目标节点视频。

这样,就能够实现响应于该交互指令,在第一节点视频播放完毕后,则利用目标播放器实例播放该目标节点视频。

可选的,在上述利用目标播放器实例播放所述目标节点视频之后,该方法还包括:

清除除所述目标播放器实例之外的第一播放器实例。

应当理解的是,如果同时运行多个播放器实例,会占用大量的内存等硬件资源。

当确定了目标节点视频及播放该目标节点视频的目标播放器实例之后,其余的第一播放器实例不会被使用,所以除目标播放器实例之外的其他第一播放器实例均可以清除掉,以实现内存回收,恢复硬件性能。

该步骤具体可以在用户做出选择后立刻进行,也就是说,在接收到交互指令后立刻进行;也可以略微延迟一些进行,例如,考虑到用户还可能存在更改所选择的目标节点视频,也可以在目标播放器实例开始播放目标节点视频之后,再清除除目标播放器实例之外的其他第一播放器实例。

可选的,在利用目标播放器实例播放所述目标节点视频之后,该方法还包括:

在所述目标播放器实例启动播放所述目标节点视频后,清除播放所述第一节点视频的第二播放器实例。

类似的,当开始播放目标节点视频之后,播放第一节点视频的播放器实例也不会被使用,因此当目标播放器实例开始播放目标节点视频后,可以清除原本用于播放第一节点视频的第二播放器实例,同样能够起到回收内存,恢复硬件性能的效果。

在一个具体实施方式中,上述两个可选步骤可以单独实现,也可以在同一步骤中完成。

具体的,在目标播放器实例开始播放所述目标节点视频后,一次性清除除目标播放器实例之外的其他全部播放器实例,有利于简化控制过程。

可选的,在所述第一节点视频播放至第一预设节点时,建立所述第二节点视频对应的第一播放器实例;

所述建立所述第二节点视频对应的第一播放器实例之后,还包括:

在所述第一节点视频播放至第二预设节点时,显示交互指令的输入界面,其中,所述第一预设节点位于所述第二预设节点之前。

该第一预设节点可以综合各种条件设置,例如,数据传输速度、硬件性能等因素。

一般来说,在输入交互指令后,很快就会结束第一节点视频的播放,并开始第二节点视频的播放,例如,在一个具体实施方式中,交互指令的输入界面在显示第一节点视频的最后一帧图像时弹出。因此,需要提前进行第二节点视频的缓存,即第一预设节点位于第二预设节点之前。

应当理解的是,如果过早的对第二节点视频进行缓存,则可能导致设备的性能下降,且长时间占用大量的运行内存,如果缓存的时间较晚,则可能无法缓存足够多的数据,导致切换时出现卡顿。

在一个具体实施方式中,交互指令的输入界面在显示第一节点视频的最后一帧图像时弹出,则可以在第一节点视频剩余未播放视频为30秒时开始进行数据缓存,显然,该预设时长还可以设置为40秒、45秒、1分钟等各种时长,本实施例对其具体数值不作限制。

显然,如果交互指令的输入界面并非在第一节点视频显示最后图像时弹出,则可以相应的将第一预设节点提前。

可选的,所述根据所述视频分支的数量建立播放器实例,包括:

建立基于开放图形库OpenGL接口的第一播放器实例。

基于OpenGL(Open Graphics Library,开放图形库)接口建立第一播放器实例的目的在于提高该方法的通用性。

如图2所示,实施时,首先加载视频流,然后读取缓存数据(Buffer Ref),接下来将读取的缓存数据转换为像素数据(Pixel Buffer Ref),最后,通过OpenGL接口将图像渲染到屏幕即可。

由于OpenGL接口为通用程度较高的接口,适用于安卓(Android)、苹果(iOS)、视窗(windows)、Linix(一种操作系统)等不同操作系统平台。

显然,实施时,如果仅针对一个平台,也可以选择其相应的接口,例如应用于安卓系统时,可以基于其内置播放器选择相应的接口,有助于进一步提高兼容性。

参见图3,图3是本发明实施例提供的视频缓存装置300的结构图,所述视频缓存装置执行于电子设备,所述电子设备与网络侧设备通信连接,如图3所示,视频缓存装置300包括:

建立模块301,用于在接收交互指令之前,根据第一节点视频关联的第二节点视频,建立所述第二节点视频对应的第一播放器实例,所述第二节点视频的数量为一个或多个,所述第一播放器实例的数量大于或等于所述第二节点视频的数量;

缓存数据获取模块302,用于向所述网络侧设备获取所述第二节点视频的缓存数据,以使所述电子设备通过所述第一播放器实例播放所述第二节点视频。

可选地,还包括:

交互指令接收模块,用于接收交互指令,所述交互指令包括对于所述第二节点视频中的目标节点视频的选择指令;

播放模块,用于响应所述交互指令,并利用目标播放器实例播放所述目标节点视频,其中,所述目标播放器实例为所述第一播放器实例中与所述目标节点视频相对应的播放器实例。

可选地,还包括:

清除模块,用于清除除所述目标播放器实例之外的第一播放器实例。

可选地,清除模块,还用于在所述目标播放器实例启动播放所述目标节点视频后,清除播放所述第一节点视频的第二播放器实例。

可选地,所述建立模块301包括:

建立子模块,用于在所述第一节点视频播放至第一预设节点时,建立所述第二节点视频对应的第一播放器实例;

所述视频缓存装置还包括显示模块,用于在所述第一节点视频播放至第二预设节点时,显示交互指令的输入界面,其中,所述第一预设节点位于所述第二预设节点之前。

可选地,所述建立模块301,具体用于建立第一播放器实例,且所述第一播放器实例的数量与所述第二节点视频的数量相等。

可选地,所述建立模块301,具体用于建立基于开放图形库OpenGL接口的第一播放器实例。

可选地,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述视频缓存方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述视频缓存方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种视频缓存方法、装置、电子设备及存储介质
  • 一种视频缓存方法、装置、电子设备及存储介质
技术分类

06120112934805