CN112882847B - 一种弹幕消息处理方法、装置及*** - Google Patents
一种弹幕消息处理方法、装置及*** Download PDFInfo
- Publication number
- CN112882847B CN112882847B CN202110209311.9A CN202110209311A CN112882847B CN 112882847 B CN112882847 B CN 112882847B CN 202110209311 A CN202110209311 A CN 202110209311A CN 112882847 B CN112882847 B CN 112882847B
- Authority
- CN
- China
- Prior art keywords
- message
- barrage
- live broadcast
- live
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种弹幕消息处理方法,适于在直播服务器中执行,直播服务器包括数据存储装置、第一消息缓存器、第二消息队列以及消息处理器,直播服务器与多个主播终端和多个用户终端连接,主播终端适于进行视频直播,方法包括:接收用户通过用户终端发送的弹幕消息,并存储至第一消息缓存器;通过消息处理器将第一消息缓存器中的弹幕消息存储到数据存储装置,消息处理器包括多个消息消费者;当任一弹幕消息对应的视频直播结束时,对应的消息消费者生成直播结束消息,缓存至第二消息队列;根据第二消息队列中的直播结束消息,对数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理。本发明一并公开了相应的装置及***。
Description
技术领域
本发明涉及视频直播领域,尤其涉及一种弹幕消息处理方法、装置及***。
背景技术
几年来,视频直播业务发展迅猛,各种直播技术也应运而生,各个企业为了争夺流量,除了在视频直播时最大程度的满足用户的视频质量需求外,还需要满足在直播结束后,用户重播视频时的响应速度、视频质量等需求。视频直播的一种用户互动方式就是直播弹幕,而在重播时,如何快速、准确的加载弹幕消息成为影响重播视频效果的一个关键因素。
弹幕消息一般通过缓存机制进行缓存处理,缓存可以有多级,在直播过程中时,用户将弹幕消息发送至直播服务端,服务端接收到弹幕消息后存储到数据库中,通过将弹幕消息***一个消息队列,由消息消费者写入数据库中。同时还会弹幕消息进行缓存,并设置相应的缓存时间,常用的缓存机制有redis和encache。在用户重播该视频时,发送数据请求消息,请求相应时段的弹幕消息,首先从缓存中获取相应的弹幕消息,如果缓存中不存在,则向数据库请求相应的弹幕消息,获取到弹幕消息后进行弹幕去重,并返回给用户。
可以看出,当前这种重播弹幕加载方式,在用户发送弹幕消息比较活跃,且有大量用户时,将有大量弹幕消息在消息队列中排队等待,不能及时存储到数据库中,导致在用户重播时,弹幕消息还没有及时存入数据库,出现弹幕空档期。另一方面,在数据请求时完成去重,会增加数据请求接口的风险。同时,对于缓存中的数据其缓存时间是统一设定的,这对于热度低的视频的弹幕数据的缓存来说,非常浪费缓存空间。
发明内容
为此,本发明提供了一种弹幕消息处理方法、装置及***,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种弹幕消息处理方法,适于在直播服务器中执行,直播服务器包括数据存储装置、第一消息缓存器、第二消息队列以及消息处理器,直播服务器与多个主播终端和多个用户终端连接,主播终端适于进行视频直播,方法包括:接收用户通过用户终端发送的弹幕消息,并将弹幕消息存储至第一消息缓存器;通过消息处理器将第一消息缓存器中的弹幕消息存储到数据存储装置,消息处理器包括多个消息消费者;当任一弹幕消息对应的视频直播结束时,处理该视频直播弹幕消息的消息消费者生成直播结束消息,并将直播结束消息缓存至第二消息队列;根据第二消息队列中的直播结束消息,对数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理。
可选的,在根据本发明的弹幕消息处理方法中,第一消息缓存器包括多个消息队列,接收用户通过用户终端发送的弹幕消息,并将弹幕消息***第一消息缓存器包括:根据弹幕消息生成该弹幕消息的路由键;根据路由键将弹幕消息发送至多个消息队列。
可选的,在根据本发明的弹幕消息处理方法中,多个消息消费者与多个消息队列一一对应,通过消息处理器将第一消息缓存器中的弹幕消息存储到数据存储装置包括:消息消费者从对应的消息队列中获取弹幕消息,并将弹幕消息存储到数据存储装置。
可选的,在根据本发明的弹幕消息处理方法中,根据第二消息队列中的直播结束消息,对数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理包括:根据直播结束消息,检测相应的视频直播中的重复弹幕消息;将重复弹幕消息以弹幕消息及重复次数的形式进行存储,并删除重复的弹幕消息。
可选的,在根据本发明的弹幕消息处理方法中,用户终端还适于对结束的视频直播进行重播,直播服务器与缓存服务器通信连接,缓存服务器用于缓存弹幕消息,缓存服务器与用户终端通信连接,方法还包括:用户终端进行重播时,向缓存服务器发送数据请求消息,以获取相应的弹幕消息;若缓存服务器没有弹幕消息,则通过缓存服务器向直播服务器发送数据请求消息和预热请求消息。
可选的,在根据本发明的弹幕消息处理方法中,直播服务器还包括第三消息队列和第四消息队列,方法还包括:通过第三消息队列接收用户终端发送的数据请求消息,并根据数据请求消息返回相应的弹幕消息;通过第四消息队列接收缓存服务器发送的预热请求消息,并根据预热请求消息返回相应的弹幕消息,以便缓存服务器进行缓存。
可选的,在根据本发明的弹幕消息处理方法中,每一个主播终端对应一个直播间,有用一个唯一直播间序号,数据请求消息中包括第一起始时间、第一结束时间以及当前直播间序号;第一结束时间为第一起始时间加上第二预设时长,预热请求消息包括第二起始时间,第二结束时间以及当前直播间序号,所示第二起始时间为第一结束时间,第二结束时间为第二起始时间加上第二预设时长。
可选的,在根据本发明的弹幕消息处理方法中,缓存服务器包括热度值缓存时间关系表,缓存服务器在缓存弹幕消息时,根据热度值缓存时间关系表设定缓存时间。
可选的,在根据本发明的弹幕消息处理方法中,数据存储装置为MySQL数据库。
可选的,在根据本发明的弹幕消息处理方法中,缓存服务器为redis服务器。
根据本发明的另一个方面,提供一种弹幕消息处理装置,适于驻留在直播服务器中,直播服务器包括数据存储装置、第一消息缓存器、第二消息队列以及消息处理器,直播服务器与多个主播终端和多个用户终端连接,主播终端适于进行视频直播,用户终端适于接收,其中,第一消息缓存器,适于接收用户终端发送的弹幕消息;消息处理器,适于将第一消息缓存器中的弹幕消息存储到数据存储装置,消息处理器包括多个消息消费者;第二消息队列,适于当任一弹幕消息对应的视频直播结束,处理该视频直播弹幕消息的消息消费者生成直播结束消息时,存储直播结束消息;数据存储装置,适于存储弹幕消息,还适于根据第二消息队列中的直播结束消息,对数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理。
根据本发明的又一个方面,提供一种弹幕消息处理***,包括直播服务器、缓存服务器、用户终端以及直播终端,其中,直播终端,适于进行视频直播;用户终端,适于发送弹幕消息,以及重播结束的视频直播;直播服务器,适于执行如上的弹幕消息处理方法;缓存服务器,适于缓存视频直播的弹幕消息。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行如上的弹幕消息处理方法的指令。
根据本发明的又一方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行如上的弹幕消息处理方法。
根据本发明的弹幕消息处理方法,在视频直播过程中,对于缓存在第一消息缓存器中的弹幕消息,通过多个消息消费者将弹幕消息存储到数据存储装置中,提高弹幕消息的处理速度,避免了弹幕消息的大量积压,同时,由于弹幕消息处理速度的提高,使得弹幕消息能够很快被存储到数据库中,以使用户在重播视频时,能够及时从数据库获得相应的弹幕消息,避免了弹幕空档期的缺陷。本发明的弹幕消息处理方法还通过增加第二消息队列,来缓存直播结束消息,来及时对数据存储装置中的结束的视频直播的弹幕消息进行去重,也缓解了通过接口去重带来的超时的缺陷。
进一步,在缓存服务器请求当前时段的弹幕消息时,还通过预热请求消息请求下一时段的弹幕消息,以保证用户能够通过缓存获取到下一时段的弹幕消息,减少了用户与数据库之间的交互,从而降低数据库的数据处理压力。并且在数据缓存时,根据视频的热度调整缓存时间,降低了无效缓存的存货时间,提高了缓存的有效利用率。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的弹幕消息处理***100的示意图;
图2示出了根据本发明一个实施例的计算设备200的框图;
图3示出了根据本发明一个实施例的弹幕消息处理装置300的示意图;
图4示出了根据本发明一个实施例的弹幕消息处理方法400的流程图;
图5示出了根据本发明的一个实施例的弹幕消息处理方法500的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的弹幕消息处理***100的示意图。如图1所示,弹幕消息处理***100包括主播终端110、用户终端120、缓存服务器130、直播服务器140,并相互通信连接。应当指出,图1中的弹幕消息处理***仅为示例性的,在具体实践中,弹幕消息处理***100中可以有不同数量的主播终端110和用户终端120,本发明对弹幕消息处理***中的主播终端和用户终端的数量不做限制。
主播终端110和用户终端120,可以是桌面计算机、笔记本计算机等个人配置的计算机,还可以是智能手机、平板电脑等移动终端设备,还可以是智能电视或其他多媒体设备,但不限于此。
缓存服务器130可以实现为一台服务器,也可以为由多台服务器所构成的集群或分布式***,当为多台服务器时,这多台服务器可以部署于同一地理位置,也可以分散布置于多个地理位置,缓存中的数据存储形式可以是redis、encach等,本发明对缓存服务器所包括的服务器的数量、各服务器的部署位置以及缓存的实现形式均不做限制。
直播服务器140为直播应用的服务端,可以接收用户终端的发送的弹幕消息,并存储在数据存储装置(图1中未示出)中,数据存储装置可以是直播服务器内部的一个数据存储装置,也可以是与直播服务器140通信连接的外部存储装置,该数据存储装置可以是关系型数据库例如MySQL、ACCESS等,也可以是非关系型数据库例如NoSQL等,直播服务器用于存储数据,本发明对数据服务器的具体部署、配置情况不做限制。
根据本发明的一个实施例,主播达人可以通过主播终端110进行视频直播,形成一个直播间,并拥有对应的直播间序号,在直播过程中,用户可以通过用户终端120发送弹幕消息进行互动,为了便于用户在直播结束后,能够回看视频重播,并加载相应的弹幕消息,在直播过程中,需要对直播视频进行存储,也需要对弹幕消息进行存储。用户通过用户终端120发送的弹幕消息发送至直播服务器140,直播服务器将弹幕消息发送至缓存服务器130进行数据同步缓存,同时对弹幕消息进行存储。当直播结束时,用户通过用户终端120对已经结束的视频直播进行回放时,同时会加载相应的弹幕消息,此时,用户首先向缓存服务器130请求对应当前播放视频时段的弹幕消息,当缓存服务器130中不存在用户请求的弹幕消息时(例如超过缓存时效后被删除),则向直播服务器请求数据,而缓存服务器则会通过向直播服务器140发送预热请求消息来获取对应视频的下一时段的弹幕消息,以便用户终端下一次请求数据时能够顺利获取,而不需要向直播服务器请求。
图1中的缓存服务器和直播服务器都可以通过计算设备实现,图2示出了根据本发明一个实施例的计算设备200的框图。需要说明的是,图2所示的计算设备200仅为一个示例,在实践中,用于实施本发明的弹幕消息处理方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图2所示的计算设备200相同,也可以与图2所示的计算设备200不同。实践中用于实施本发明的弹幕消息处理方法的计算设备可以对图2所示的计算设备200的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图2所示,在基本配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。***存储器206可以包括操作***220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作***上由一个或多个处理器204利用程序数据224执行指令。操作***220例如可以是Linux、Windows等,其包括用于处理基本***服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用222被安装到计算设备200中时,可以向操作***220添加驱动模块。
在计算设备200启动运行时,处理器204会从存储器206中读取操作***220的程序指令并执行。应用222运行在操作***220之上,利用操作***220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。
计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238,可移除储存器236和不可移除储存器238均与储存接口总线234连接。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括用于执行本发明的弹幕消息处理方法400/500的指令,该指令可以指示处理器204执行本发明的系弹幕消息处理方法400/500。
图3示出了根据本发明一个实施例的弹幕消息处理装置,适于驻留在计算设备(如图1所示的计算设备)中执行本发明的弹幕消息处理方法400/500的指令。如图3所示,弹幕消息处理装置包括第一消息处理器310、消息消费者群组320、第二消息队列330、数据存储装置340、第三消息队列350以及第四消息队列360。
第一消息处理器310适于存储用户观看直播时发送的弹幕消息,以等待被写入数据存储装置340,第一消息处理器310包括多个消息队列,每个消息队列接收来自不同直播间的弹幕消息。根据本发明的一个实施例,在接收到弹幕消息后,根据弹幕消息中所携带的直播间序号生成路由键,根据路由键将弹幕消息发送至不同的消息队列,例如,第一消息处理器310包括5个消息队列,根据平均分配原则,根据路由键中直播间尾号0-9十个尾号平均对应到5个消息队列,结果为:直播间序号尾号为0和1的弹幕消息***第一个消息队列,直播间序号尾号为2和3的弹幕消息***第二消息队列,以此类推。
消息消费者群组320可以是与第一消息处理器中的消息队列一一对应的消息消费者的组合,继续以上述实施例为例,5个消息队列分别对应5个消息消费者,每个消息消费者负责处理其对应的消息队列中的弹幕消息,并在任一视频直播结束时,生成直播结束消息,并***第二消息队列330。
数据存储装置340通常为数据库,例如MySQL数据库,用于存储弹幕消息,并根据第二消息队列330中的直播结束消息,对数据库中对应该直播结束消息的直播视频的弹幕消息进行去重处理。
第三消息队列350适于接收用户在重播视频时发送的数据请求消息,即在用户通过用户终端观看视频重播时需要加载弹幕消息,会首先向缓存服务器请求数据,在缓存服务器中不存在对应的数据时,则向直播服务器发送数据请求消息,该数据请求消息将被***第三消息队列350。
第四消息队列360适于接收缓存服务器发送的预热请求消息。根据上述实施例,缓存服务器中不存在用户请求的数据信息时,检测是否存储有下一时段的弹幕数据信息,在没有时,会向直播服务器发送预热请求信息,以便用户在发送下一时段的数据请求时,能够及时返回。
图4示出了根据本发明一个实施例的弹幕消息处理方法400的流程图。方法400适于在计算设备(例如图2所示的计算设备)中执行,该方法完成在视频直播过程中完成弹幕消息的存储。
如图4所示,方法400始于步骤S410,在该步骤中,直播服务器接收用户通过用户终端观看视频直播时发送的弹幕消息,并将弹幕消息存储至第一消息处理器。
根据本发明的一个实施例,用户通过终端(例如手机)观看视频直播时,通过用户终端发送弹幕消息进行互动,弹幕消息会发送至相应的直播应用的服务端(即直播服务器),直播服务器在接收到弹幕消息后,将其***第一消息处理器。第一消息处理器包括多个消息队列,可以并行处理多个直播间的弹幕数据。避免弹幕消息在消息队列中被滞留、阻塞,不能及时存储到数据库中,导致用户在视频直播刚结束时重播视频时不能及时加载弹幕消息。
根据本发明的一个实施例,每个次消息队列处理不同直播房间的弹幕消息数据,根据本发明的一个实施例,在接收到弹幕消息时,可以根据弹幕消息中所携带的直播房间号的尾号作为路由键,并根据路由键将弹幕消息***对应的消息队列。路由键还可以根据弹幕消息中携带的业务名称、功能名称以及直播房间号尾号等多个信息联合组成,本发明对此不做限制。例如,第一消息处理器包括10个消息队列,当前有100个直播间,直播间序号分别为0001、0002、0003、0004、0005……,以直播间序号尾号为路由键,将这些直播间对应10个消息队列中进行轮询,结果为:直播间序号尾号是1的直播间的弹幕消息***第一个消息队列、尾号是2的直播间的弹幕消息***第二个消息队列,依次类推。
根据本发明的一个实施例,弹幕消息还会发送至缓存服务器进行缓存处理。
随后在步骤S420中,由消息处理器将消息队列中弹幕消息存储到数据库中。
根据本发明的一个实施例,消息处理器包括多个消息消费者,每一个消息队列都唯一对应一个消息消费者,即第一消息队列对应第一消息消费者,以上述10个消息队列为例,第一消息消费者处理第一消息队列中的直播房间号尾号为1的弹幕消息,第二消息消费者仅处理第二消息队列中的直播房间号尾号为2的弹幕消息。
通过多个消息队列和多个消息消费者并行处理弹幕消息的存储,即是在直播间数量巨大,且观看用户较为活跃,产生大量的弹幕消息时,也能使队列中的弹幕消息得到及时处理,存储到数据库中,防止在直播刚刚结束时,有用户选择重播时,获取不到弹幕消息。而根据本发明的弹幕消息处理方法,可以在处理速度上得到很大提高,能够有效避免弹幕消息空档期的问题。
在步骤S430中,当任一直播间的视频直播结束时,消息消费者在处理完相关联的弹幕消息后,会生成直播结束消息,并***第二消息队列中。
继续以上述实施例进行说明,第一消息消费者在处理完0001直播间的直播弹幕消息后,生成直播结束消息,其中包含直播间的序号信息,将该消息***第二消息队列中。
在步骤S440中,数据库根据直播结束消息对弹幕消息进行去重。根据上述实施例,数据库监测到第二消息队列中的0001直播间直播视频结束消息时,检测该直播视频对应的弹幕消息中的重复消息,进行去重。例如,在视频第60秒到第70秒时段,有连续9个“666”的消息,此时数据库中存储了9个“666”的消息,这9个消息将被整合成一条“666”记录,并标记其数量为9,这样,在用户请求弹幕消息数据时,在进行返回时,可以直接返回一条“666”的弹幕消息,并标记数值9,既可以提高响应速度,同时避免在数据请求接口中完成去重所带来的不确定性。
图5示出了根据本发明一个实施例的弹幕消息处理方法500的流程图。如图5所示,该方法始于步骤S510,在该步骤中,用户重播视频需要加载弹幕消息,用户终端会首先向缓存服务器发送数据请求消息,以请求弹幕消息。
当缓存服务器中没有相应的数据时,进入步骤S520,用户直接向直播服务器发送数据请求消息,由直播服务器中的第三消息队列接收,并根据数据请求消息返回相应的数据。根据本发明的一个实施例,通常数据请求会请求未来第二预设时长内的弹幕消息,比如用户从视频的第0秒开始重播视频,第二预设时长为10秒,那么此时会请求第0秒(第一起始时间)到第10秒(第一结束时间)的弹幕消息,直播服务器返回相应的数据。
在步骤S530中,缓存服务器向直播服务器发送预热请求消息。在上述实施例中,当缓存服务器首先接收到用户请求第0秒到第10秒的数据请求时,会检测是否存储有第10秒(第二起始时间)到第20秒(第二结束时间)的弹幕消息缓存数据,如果没有,会向直播服务器发送预热请求消息(即请求第10秒到第20秒的弹幕数据)。该预设请求消息会被***直播服务器的第四消息队列。直播服务器根据该预设请求消息返回相应的数据,以缓存在缓存服务器中,从而,在用户请求下一个十秒的时候,能够及时返回给用户,同时请求再下一个时段(即第20秒到第30秒)的弹幕消息。
根据本发明的一个实施例,缓存服务器中存储有热度值缓存时间关系表,该关系表中存储有视频对应的热度值,热度值对应的缓存时间,根据视频的热度值设置缓存时间。例如,热度值划分为高、中、低三个档次,热度值高的缓存时间为10分钟,热度值为中的缓存时间为5分钟,热度值为低的缓存为2分钟。根据热度值设置缓存时间,能够减少高热度值的视频重播时,用户与直播服务器以及用户与缓存服务器之间的交互,对于低热度值的视频,能够减少缓存空间的占用,及时删除不必要的缓存。
根据本发明的弹幕消息处理方法,在视频直播过程中,对于缓存在第一消息缓存器中的弹幕消息,通过多个消息消费者将弹幕消息存储到数据存储装置中,提高弹幕消息的处理速度,避免了弹幕消息的大量积压,同时,由于弹幕消息处理速度的提高,使得弹幕消息能够很快被存储到数据库中,以使用户在重播视频时,能够及时从数据库获得相应的弹幕消息,避免了弹幕空档期的缺陷。本发明的弹幕消息处理方法还通过增加第二消息队列,来缓存直播结束消息,来及时对数据存储装置中的结束的视频直播的弹幕消息进行去重,也缓解了通过接口去重带来的超时的缺陷。
进一步,在缓存服务器请求当前时段的弹幕消息时,还通过预热请求消息请求下一时段的弹幕消息,以保证用户能够通过缓存获取到下一时段的弹幕消息,减少了用户与数据库之间的交互,从而降低数据库的数据处理压力。并且在数据缓存时,根据视频的热度调整缓存时间,降低了无效缓存的存货时间,提高了缓存的有效利用率。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的弹幕消息处理方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与本发明的示例一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明还包括:
A7、如A6所述的方法,其中,每一个主播终端对应一个直播间,有用一个唯一直播间序号,所述数据请求消息中包括第一起始时间、第一结束时间以及当前直播间序号;所述第一结束时间为所述第一起始时间加上第二预设时长,所述预热请求消息包括第二起始时间,第二结束时间以及当前直播间序号,所示第二起始时间为所述第一结束时间,所述第二结束时间为所述第二起始时间加上第二预设时长。
A8、如A5-A7中任意一项所述的方法,其中,所述缓存服务器包括热度值缓存时间关系表,所述缓存服务器在缓存弹幕消息时,根据所述热度值缓存时间关系表设定缓存时间。
A9、如A1-A8中任意一项所述的方法,其中,所述数据存储装置为MySQL数据库。
A10、如A5-A9中任意一项所述的方法,其中,所述缓存服务器为redis服务器。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (14)
1.一种弹幕消息处理方法,适于在直播服务器中执行,所述直播服务器包括数据存储装置、第一消息缓存器、第二消息队列以及消息处理器,所述直播服务器与多个主播终端和多个用户终端连接,所述主播终端适于进行视频直播,所述方法包括:
接收用户通过所述用户终端发送的弹幕消息,并将所述弹幕消息存储至所述第一消息缓存器;
通过所述消息处理器将所述第一消息缓存器中的弹幕消息存储到所述数据存储装置,所述消息处理器包括多个消息消费者;
当任一弹幕消息对应的视频直播结束时,处理该视频直播弹幕消息的消息消费者生成直播结束消息,并将所述直播结束消息缓存至所述第二消息队列;
根据所述第二消息队列中的直播结束消息,对所述数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理。
2.如权利要求1所述的方法,所述第一消息缓存器包括多个消息队列,所述接收用户通过所述用户终端发送的弹幕消息,并将所述弹幕消息存储至所述第一消息缓存器包括:
根据所述弹幕消息生成该弹幕消息的路由键;
根据所述路由键将所述弹幕消息发送至所述多个消息队列。
3.如权利要求2所述的方法,其中,所述多个消息消费者与所述多个消息队列一一对应,所述通过所述消息处理器将所述第一消息缓存器中的弹幕消息存储到所述数据存储装置包括:
所述消息消费者从对应的消息队列中获取弹幕消息,并将所述弹幕消息存储到所述数据存储装置。
4.如权利要求1-3中任意一项所述的方法,其中,所述根据所述第二消息队列中的直播结束消息,对所述数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理包括:
根据所述直播结束消息,检测相应的视频直播中的重复弹幕消息;
将所述重复弹幕消息以弹幕消息及重复次数的形式进行存储,并删除重复的弹幕消息。
5.如权利要求1所述的方法,其中,所述用户终端还适于对结束的视频直播进行重播,所述直播服务器与缓存服务器通信连接,所述缓存服务器用于缓存弹幕消息,所述缓存服务器与所述用户终端通信连接,所述方法还包括:
所述用户终端进行重播时,向所述缓存服务器发送数据请求消息,以获取相应的弹幕消息;
若所述缓存服务器没有所述弹幕消息,则通过缓存服务器向所述直播服务器发送数据请求消息和预热请求消息,其中,所述数据请求消息用于获取当前时段的弹幕消息,所述预热请求消息用于获取下一时段的弹幕消息。
6.如权利要求5所述的方法,其中,所述直播服务器还包括第三消息队列和第四消息队列,所述方法还包括:
通过所述第三消息队列接收所述用户终端发送的数据请求消息,并根据所述数据请求消息返回相应的弹幕消息;
通过所述第四消息队列接收所述缓存服务器发送的预热请求消息,并根据所述预热请求消息返回相应的弹幕消息,以便所述缓存服务器进行缓存。
7.如权利要求6所述的方法,其中,每一个主播终端对应一个直播间,有用一个唯一直播间序号,所述数据请求消息中包括第一起始时间、第一结束时间以及当前直播间序号;所述第一结束时间为所述第一起始时间加上第二预设时长,所述预热请求消息包括第二起始时间,第二结束时间以及当前直播间序号,所示第二起始时间为所述第一结束时间,所述第二结束时间为所述第二起始时间加上第二预设时长。
8.如权利要求5-7中任意一项所述的方法,其中,所述缓存服务器包括热度值缓存时间关系表,所述缓存服务器在缓存弹幕消息时,根据所述热度值缓存时间关系表设定缓存时间。
9.如权利要求1-3中任意一项所述的方法,其中,所述数据存储装置为MySQL数据库。
10.如权利要求5-7中任意一项所述的方法,其中,所述缓存服务器为redis服务器。
11.一种弹幕消息处理装置,适于驻留在直播服务器中,所述直播服务器包括数据存储装置、第一消息缓存器、第二消息队列以及消息处理器,所述直播服务器与多个主播终端和多个用户终端连接,所述主播终端适于进行视频直播,其中,
第一消息缓存器,适于接收所述用户终端发送的弹幕消息;
消息处理器,适于将所述第一消息缓存器中的弹幕消息存储到所述数据存储装置,所述消息处理器包括多个消息消费者;
第二消息队列,适于当任一弹幕消息对应的视频直播结束,处理该视频直播弹幕消息的消息消费者生成直播结束消息时,存储所述直播结束消息;
数据存储装置,适于存储所述弹幕消息,还适于根据所述第二消息队列中的直播结束消息,对所述数据存储装置中所存储的相应视频直播的弹幕消息进行去重处理。
12.一种弹幕消息处理***,包括直播服务器、缓存服务器、用户终端以及直播终端,其中,
直播终端,适于进行视频直播;
用户终端,适于发送弹幕消息,以及重播结束的视频直播;
直播服务器,适于执行如权利要求1-10中任一项所述的方法;
缓存服务器,适于缓存所述视频直播的弹幕消息。
13.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-10中任一项所述方法的指令。
14.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110209311.9A CN112882847B (zh) | 2021-02-24 | 2021-02-24 | 一种弹幕消息处理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110209311.9A CN112882847B (zh) | 2021-02-24 | 2021-02-24 | 一种弹幕消息处理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882847A CN112882847A (zh) | 2021-06-01 |
CN112882847B true CN112882847B (zh) | 2023-07-28 |
Family
ID=76054414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110209311.9A Active CN112882847B (zh) | 2021-02-24 | 2021-02-24 | 一种弹幕消息处理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882847B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666625B (zh) * | 2022-04-08 | 2023-12-01 | 海南车智易通信息技术有限公司 | 一种热门主播列表的生成方法、直播***及计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055593A (zh) * | 2017-12-20 | 2018-05-18 | 广州虎牙信息科技有限公司 | 一种互动消息的处理方法、装置、存储介质及电子设备 |
CN110460865A (zh) * | 2019-07-23 | 2019-11-15 | 中国农业大学 | 大规模弹幕获取方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105120006A (zh) * | 2015-09-11 | 2015-12-02 | 百度在线网络技术(北京)有限公司 | 电子读物的弹幕控制方法、弹幕服务器及弹幕控制装置 |
CN105812885B (zh) * | 2016-03-11 | 2018-11-27 | 武汉斗鱼网络科技有限公司 | 一种视频直播中的弹幕显示方法和*** |
CN106101747B (zh) * | 2016-06-03 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种弹幕内容处理方法及应用服务器、用户终端 |
CN105915931A (zh) * | 2016-06-07 | 2016-08-31 | 武汉斗鱼网络科技有限公司 | 一种关联保存直播视频与弹幕信息的方法及装置 |
CN106101848B (zh) * | 2016-06-08 | 2019-03-01 | 维沃移动通信有限公司 | 一种弹幕显示方法及电子设备 |
CN106559695A (zh) * | 2016-10-14 | 2017-04-05 | 北京金山安全软件有限公司 | 弹幕消息的处理方法、装置以及电子设备 |
CN106878823A (zh) * | 2016-12-29 | 2017-06-20 | 武汉斗鱼网络科技有限公司 | 一种过滤文字弹幕并转换为语音弹幕的方法及*** |
CN108021604A (zh) * | 2017-10-24 | 2018-05-11 | 山东科技大学 | 一种爬取斗鱼直播网站主播房间里弹幕的网络爬虫方法 |
US11089377B2 (en) * | 2018-01-29 | 2021-08-10 | Guangzhou Huya Information Technology Co., Ltd. | Interaction based on live webcast |
CN110191348B (zh) * | 2018-02-23 | 2022-02-22 | 武汉斗鱼网络科技有限公司 | 视频直播中互动消息的处理方法及装置 |
CN110971941A (zh) * | 2018-09-30 | 2020-04-07 | 武汉斗鱼网络科技有限公司 | 用于弹幕拥挤疏通的方法、***、服务器及直播间控制器 |
-
2021
- 2021-02-24 CN CN202110209311.9A patent/CN112882847B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055593A (zh) * | 2017-12-20 | 2018-05-18 | 广州虎牙信息科技有限公司 | 一种互动消息的处理方法、装置、存储介质及电子设备 |
CN110460865A (zh) * | 2019-07-23 | 2019-11-15 | 中国农业大学 | 大规模弹幕获取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112882847A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019205371A1 (zh) | 服务器、消息分配的方法及存储介质 | |
CN109408751B (zh) | 一种数据处理方法、终端、服务器及存储介质 | |
WO2017185616A1 (zh) | 文件存储方法及电子设备 | |
CN111651464B (zh) | 数据处理方法、***及计算设备 | |
US20080133529A1 (en) | Preserving a User Experience with Content Across Multiple Computing Devices Using Location Information | |
CN110636340B (zh) | 视频文件的上传方法、存储设备、终端设备及存储介质 | |
CN111475483B (zh) | 数据库迁移方法、装置及计算设备 | |
CN110851253A (zh) | 一种远程运维的方法、***、存储介质及电子设备 | |
CN103200204A (zh) | 基于云存储的分布式转码***及其方法 | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
CN106156148A (zh) | 一种页面的渲染方法、装置和终端设备 | |
CN113329069B (zh) | 一种即时通信方法、***及计算设备 | |
CN113032432A (zh) | 一种数据缓存处理方法、***、计算设备及可读存储介质 | |
CN111339057B (zh) | 减少回源请求的方法、装置及计算机可读存储介质 | |
CN112698793B (zh) | 一种数据存储方法、装置、机器可读介质及设备 | |
CN112882847B (zh) | 一种弹幕消息处理方法、装置及*** | |
CN111586437B (zh) | 一种弹幕消息处理方法、***、计算设备及存储介质 | |
CN108966316B (zh) | 展示多媒体资源、预测连接等待时长的方法、装置及设备 | |
CN113377289A (zh) | 一种缓存管理方法、***、计算设备及可读存储介质 | |
JP6181291B2 (ja) | 読書速度に基づく情報送信 | |
CN111414383B (zh) | 数据请求方法、数据处理***及计算设备 | |
CN114003571A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112883307B (zh) | 一种缓存更新方法、装置和社交网络*** | |
CN114296897A (zh) | 一种广告请求的发送方法和装置 | |
CN104580276A (zh) | 信息推送方法、装置、***及信息接入装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |