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

弹幕的生成方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 20:01:23


弹幕的生成方法、装置、电子设备及存储介质

技术领域

本申请涉及视频处理技术领域,尤其涉及一种弹幕的生成方法、装置、电子设备及存储介质。

背景技术

随着弹幕文化的兴起,用户发送弹幕的数量大幅增加,一个视频可能就存在上千万条弹幕,对应的弹幕文件容量也很大。当前弹幕下载方案普遍是在进入视频播放页时开始下载弹幕数据,下载完成后进行解析渲染,当用户退出该播放页的时候,删除该弹幕数据。因此,当下载过大的弹幕文件,或者频繁多次下载时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验。

发明内容

有鉴于此,本申请提供了一种弹幕的生成方法、装置、电子设备及存储介质,以解决现有技术中用户播放视频时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验的问题。

为实现上述目的,本申请提供如下技术方案:

本申请第一方面公开了一种弹幕的生成方法,应用于客户端,其中,所述弹幕的生成方法,包括:

检测到用户播放视频时,则获取当前视频的视频标识;

基于所述视频标识,查询预先构建的弹幕数据库中是否保存有所述视频标识对应的缓存弹幕片;其中,所述弹幕数据库用于保存各个视频标识对应的缓存弹幕片;

若弹幕数据库中保存有所述视频标识对应的缓存弹幕片,则对所述视频标识对应的缓存弹幕片进行渲染,生成弹幕;

若弹幕数据库中没有所述视频标识对应的缓存弹幕片,则下载所述当前视频预设时间段内的弹幕片数据,并对所述下载的弹幕片数据进行渲染,生成弹幕。

可选的,上述的方法,所述检测到用户播放视频时,则获取当前视频的视频标识之前,还包括:

针对每一个视频,下载当前视频的弹幕片数据,并生成所述当前视频对应的缓存弹幕片。

可选的,上述的方法,所述若弹幕数据库中保存有所述视频标识对应的缓存弹幕片,则对所述视频标识对应的缓存弹幕片进行渲染,生成弹幕之后,还包括:

判断所述当前视频是否存在新的增量弹幕片数据;

若存在判断出所述当前视频存在新的增量弹幕片数据,则下载所述增量弹幕片数据,并将所述增量弹幕片数据与所述缓存弹幕片进行合并,生成新的弹幕片数据;

对所述新的弹幕片数据进行渲染,生成弹幕。

可选的,上述的方法,还包括:

利用最近最少使用算法,对各个缓存弹幕片进行缓存管理。

本申请第二方面公开了一种弹幕的生成装置,应用于客户端,其中,所述弹幕的生成装置,包括:

检测单元,用于检测到用户播放视频时,则获取当前视频的视频标识;

查询单元,用于基于所述视频标识,查询预先构建的弹幕数据库中是否保存有所述视频标识对应的缓存弹幕片;其中,所述弹幕数据库用于保存各个视频标识对应的缓存弹幕片;

第一渲染单元,用于若弹幕数据库中保存有所述视频标识对应的缓存弹幕片,则对所述视频标识对应的缓存弹幕片进行渲染,生成弹幕;

第二渲染单元,用于若弹幕数据库中没有所述视频标识对应的缓存弹幕片,则下载所述当前视频预设时间段内的弹幕片数据,并对所述下载的弹幕片数据进行渲染,生成弹幕。

可选的,上述的装置,还包括:

生成单元,用于针对每一个视频,下载当前视频的弹幕片数据,并生成所述当前视频对应的缓存弹幕片。

可选的,上述的装置,还包括:

判断单元,用于判断所述当前视频是否存在新的增量弹幕片数据;

合并单元,用于若存在判断出所述当前视频存在新的增量弹幕片数据,则下载所述增量弹幕片数据,并将所述增量弹幕片数据与所述缓存弹幕片进行合并,生成新的弹幕片数据;

第三渲染单元,用于对所述新的弹幕片数据进行渲染,生成弹幕。

可选的,上述的装置,还包括:

缓存管理单元,用于利用最近最少使用算法,对各个缓存弹幕片进行缓存管理。

本申请第三方面公开了一种电子设备,包括:

一个或多个处理器;

存储装置,其上存储有一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如本申请第一方面中任意一项所述的方法。

本申请第四方面公开了一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如本申请第一方面中任意一项所述的方法。

从上述技术方案可以看出,本申请提供的一种弹幕的生成方法中,应用于客户端,在检测到用户播放视频时,则获取当前视频的视频标识。然后基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。若弹幕数据库中保存有视频标识对应的缓存弹幕片,则对视频标识对应的缓存弹幕片进行渲染,生成弹幕。若弹幕数据库中没有视频标识对应的缓存弹幕片,则下载当前视频预设时间段内的弹幕片数据,并对下载的弹幕片数据进行渲染,生成弹幕。由此可知,利用本申请的方法,在用户播放视频时,在本地保存有缓存弹幕片时,则通过渲染缓存弹幕片的方式快速生成弹幕;在当前视频没有缓存弹幕片时,则下载预设时间段内的弹幕片数据,而不是一下子下载全量弹幕数据,能够快速下载快速渲染生成弹幕,达到量小质优的目的。解决了现有技术中用户播放视频时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验的问题。

附图说明

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

图1为本申请实施例公开的一种弹幕的生成方法的流程图;

图2为本申请另一实施例公开的一种弹幕的生成装置的示意图;

图3为本申请另一实施例公开的一种电子设备的示意图。

具体实施方式

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

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

并且,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

由背景技术可知,当前弹幕下载方案普遍是在进入视频播放页时开始下载弹幕数据,下载完成后进行解析渲染,当用户退出该播放页的时候,删除该弹幕数据。因此,当下载过大的弹幕文件,或者频繁多次下载时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验。

鉴于此,本申请提供了一种弹幕的生成方法、装置、电子设备及存储介质,已解决现有技术中用户播放视频时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验的问题。

本申请实施例提供了一种弹幕的生成方法,应用于客户端,如图1所示,具体包括:

S101、检测到用户播放视频时,则获取当前视频的视频标识。

需要说明的是,当客户端检测到用户在播放视频时,则获取当前视频的视频标识,以便匹配弹幕数据。

可选的,在本申请的另一实施例中,执行步骤S101之前,还可以包括:

针对每一个视频,下载当前视频的弹幕片数据,并生成当前视频对应的缓存弹幕片。

需要说明的是,针对目前客户端上架的每一个视频,客户端需要从服务端下载每一个视频的弹幕片数据,并生成当前视频对应的缓存弹幕片。

还需要说明的是,服务端运行一个自动弹幕分片的服务,按照预设的时间周期,例如每天24:00自动将当天00:00-24:00的弹幕数据存储成一个弹幕片。每个弹幕片包含三部分核心数据,分别为开始时间,结束时间,弹幕数据,其代码如下:

{

"startTime":""//开始时间

"endTime":""//结束时间

"data":"弹幕数据"

}

因此一个视频的全部弹幕数据,就可以分成大量以天为单位进行管理的弹幕片,一个弹幕片可以是一天的数据,也可以包含多天的弹幕数据,具体可以根据数据量智能控制,例如当弹幕数据在100K以内时,几乎可以做到毫秒级别完成下载,成功率也几乎接近100%,因此我们将100K作为分片的临界值。当数据量超过100K时,就生产新的弹幕片。这些弹幕片支持单个下发给端侧,也支持多个弹幕片合并成一个弹幕片下发给端侧。

S102、基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。

需要说明的是,获取到当前视频的视频标识之后,则基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。

S103、若弹幕数据库中保存有视频标识对应的缓存弹幕片,则对视频标识对应的缓存弹幕片进行渲染,生成弹幕。

需要说明的是,如果弹幕数据库中保存有视频标识对应的缓存弹幕片,则获取其缓存弹幕片,由于该过程只是一次内存计算,速度是非常快的。在获取到缓存的弹幕片后就可以进行渲染,进而生成弹幕,有效解决“视频一开始无弹幕”的问题。

可选的,在本申请的另一实施例中,执行步骤S103之后,还可以包括:

判断当前视频是否存在新的增量弹幕片数据。

若存在判断出当前视频存在新的增量弹幕片数据,则下载增量弹幕片数据,并将增量弹幕片数据与缓存弹幕片进行合并,生成新的弹幕片数据。

对新的弹幕片数据进行渲染,生成弹幕。

需要说明的是,对缓存弹幕片进行解析,得到其对应的时间区间,然后通过服务端确定在其时间区间的日期之后,当前视频是否在服务端是否还存在新的增量弹幕片数据。如果存在判断出当前视频存在新的增量弹幕片数据,则下载增量弹幕片数据,并将增量弹幕片数据与缓存弹幕片进行合并,即将增量弹幕片数据与缓存弹幕片进行数据拼接,生成新的弹幕片数据。然后新的弹幕片数据进行渲染,生成弹幕,向用户提供完整的弹幕。

S104、若弹幕数据库中没有视频标识对应的缓存弹幕片,则下载当前视频预设时间段内的弹幕片数据,并对下载的弹幕片数据进行渲染,生成弹幕。

需要说明的是,如果弹幕数据库中没有视频标识对应的缓存弹幕片,则下载当前视频预设时间段内的弹幕片数据,该预设时间可根据实际情况进行设定,例如下载该视频最早的10天所对应的弹幕片数据,因为实际分析了大量的视频弹幕发现,视频在上架的前几天,其弹幕质量相对是比较优质的,因此这里可以选择前10天的弹幕片数据进行下载,然后对下载的弹幕片数据进行渲染,生成弹幕,以达到量小质优的目的。

本申请实施例提供的一种弹幕的生成方法中,应用于客户端,在检测到用户播放视频时,则获取当前视频的视频标识。然后基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。若弹幕数据库中保存有视频标识对应的缓存弹幕片,则对视频标识对应的缓存弹幕片进行渲染,生成弹幕。若弹幕数据库中没有视频标识对应的缓存弹幕片,则下载当前视频预设时间段内的弹幕片数据,并对下载的弹幕片数据进行渲染,生成弹幕。由此可知,利用本申请的方法,在用户播放视频时,在本地保存有缓存弹幕片时,则通过渲染缓存弹幕片的方式快速生成弹幕;在当前视频没有缓存弹幕片时,则下载预设时间段内的弹幕片数据,而不是一下子下载全量弹幕数据,能够快速下载快速渲染生成弹幕,达到量小质优的目的。解决了现有技术中用户播放视频时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验的问题。

可选的,在本申请的另一实施例中,上述一种弹幕的生成方法,还可以包括:

利用最近最少使用算法,对各个缓存弹幕片进行缓存管理。

需要说明的是,由于本地缓存的弹幕片数据量不能无限增长,否则很快就会将用户设备的存储空间耗尽,因此利用改进的最近最少使用算法(LRU算法),对各个缓存弹幕片进行缓存管理。其算法具体如下:

给客户端设置一个最大存储容量限制(后文以MAX_SIZE代称),通常可设置为100M,具体根据高中低端设备智能调整,规定每个视频只能有一个缓存弹幕片,当本地缓存了多个视频的缓存片时,将它们以队列的形式进行管理。每次播放某个视频时,将其对应的缓存片放到队列尾端,并计算当前占用的存储容量(后文以CURRENT_SIZE代称),如果CURRENT_SIZE>=MAX_SIZE,则删除队列头部的缓存片数据,并再次计算CURRENT_SIZE,直到CURRENT_SIZE<=MAX_SIZE/2。

在本申请的另一实施例还公开了一种弹幕的生成装置,如图2所示,具体包括:

检测单元201,用于检测到用户播放视频时,则获取当前视频的视频标识。

查询单元202,用于基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。

第一渲染单元203,用于若弹幕数据库中保存有视频标识对应的缓存弹幕片,则对视频标识对应的缓存弹幕片进行渲染,生成弹幕。

第二渲染单元204,用于若弹幕数据库中没有视频标识对应的缓存弹幕片,则下载当前视频预设时间段内的弹幕片数据,并对下载的弹幕片数据进行渲染,生成弹幕。

本实施例中,检测单元201、查询单元202、第一渲染单元203以及第二渲染单元204的具体执行过程,可参见对应图1的方法实施例内容,此处不再赘述。

本申请实施例提供的一种弹幕的生成装置中,应用于客户端,检测单元201在检测到用户播放视频时,则获取当前视频的视频标识。然后查询单元202基于视频标识,查询预先构建的弹幕数据库中是否保存有视频标识对应的缓存弹幕片;其中,弹幕数据库用于保存各个视频标识对应的缓存弹幕片。若弹幕数据库中保存有视频标识对应的缓存弹幕片,第一渲染单元203则对视频标识对应的缓存弹幕片进行渲染,生成弹幕。若弹幕数据库中没有视频标识对应的缓存弹幕片,第二渲染单元204则下载当前视频预设时间段内的弹幕片数据,并对下载的弹幕片数据进行渲染,生成弹幕。由此可知,利用本申请的方法,在用户播放视频时,在本地保存有缓存弹幕片时,则通过渲染缓存弹幕片的方式快速生成弹幕;在当前视频没有缓存弹幕片时,则下载预设时间段内的弹幕片数据,而不是一下子下载全量弹幕数据,能够快速下载快速渲染生成弹幕,达到量小质优的目的。解决了现有技术中用户播放视频时,容易出现视频一开始无弹幕的情况,且容易下载失败,严重影响用户体验的问题。

可选的,在本申请的另一实施例中,上述弹幕的生成装置,还可以包括:

生成单元,用于针对每一个视频,下载当前视频的弹幕片数据,并生成当前视频对应的缓存弹幕片。

本实施例中,生成单元的具体执行过程,可参见上述对应的方法实施例内容,此处不再赘述。

可选的,在本申请的另一实施例中,上述弹幕的生成装置,还可以包括:

判断单元,用于判断当前视频是否存在新的增量弹幕片数据。

合并单元,用于若存在判断出当前视频存在新的增量弹幕片数据,则下载增量弹幕片数据,并将增量弹幕片数据与缓存弹幕片进行合并,生成新的弹幕片数据。

第三渲染单元,用于对新的弹幕片数据进行渲染,生成弹幕。

本实施例中,判断单元、合并单元和第三渲染单元的具体执行过程,可参见上述对应的方法实施例内容,此处不再赘述。

可选的,在本申请的另一实施例中,上述弹幕的生成装置,还可以包括:

缓存管理单元,用于利用最近最少使用算法,对各个缓存弹幕片进行缓存管理。

本申请另一实施例还提供了一种电子设备,如图3所示,具体包括:

一个或多个处理器301。

存储装置302,其上存储有一个或多个程序。

当一个或多个程序被一个或多个处理器301执行时,使得一个或多个处理器301实现如上述实施例中任意一项方法。

本申请另一实施例还提供了计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于嵌入式软件仿真器的自动化测试方法
  • 一种机载嵌入式软件自动化测试方法
  • 一种基于嵌入式软件的机载稳定平台的扫频测试方法
技术分类

06120116555935