直播推流方法及装置,直播拉流方法及装置与流程

文档序号:31041731发布日期:2022-08-06 04:28阅读:184来源:国知局
直播推流方法及装置,直播拉流方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及一种直播推流方法和一种直播拉流方法。本技术同时涉及一种直播推流装置,一种直播拉流装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

2.随着互联网技术的不断发展,视频直播已经成为当下最受欢迎的信息传播媒介之一,相应地,对视频直播的内容和形式的丰富度也提出了更高的要求。
3.现有技术中,用户登录视频直播的软件客户端,在目标直播间观看服务器推送的对应的视频直播流,即目标直播间播放的直播内容是固定的。
4.然而,随着虚拟技术的不断发展,用户观看直播内容的要求越来越多,也越来越复杂,现有的直播推流方案过于单一,无法满足日益丰富的直播推流需求。因此,亟需一种包含更丰富直播内容的直播推流方法。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种直播推流方法和一种直播拉流方法。本技术同时涉及一种直播推流装置,一种直播拉流装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中直播推流方案过于的单一的技术问题。
6.根据本技术实施例的第一方面,提供了一种直播推流方法,包括:
7.获取用户对目标直播间的订阅类型;
8.根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流,其中,多路直播流包括同一直播时间段内的不同直播流;
9.将目标直播流推送至目标客户端,其中,目标客户端为用户登录的客户端。
10.根据本技术实施例的第二方法,提供了一种直播拉流方法,包括:
11.接收用户对目标直播间的订阅类型;
12.将订阅类型发送至服务端;
13.接收服务端推送的目标直播流,其中,目标直播流是服务端根据订阅类型确定的;
14.在目标直播间中显示目标直播流。
15.根据本技术实施例的第三方面,提供了一种直播推流装置,包括:
16.获取模块,被配置为获取用户对目标直播间的订阅类型;
17.目标直播流确定模块,被配置为根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流,其中,多路直播流包括同一直播时间段内的不同直播流;
18.推送模块,被配置为将目标直播流推送至目标客户端,其中,目标客户端为用户登录的客户端。
19.根据本技术实施例的第四方面,提供了一种直播拉流装置,包括:
20.接收模块,被配置为接收用户对目标直播间的订阅类型;
21.发送模块,被配置为将订阅类型发送至服务端;
22.目标直播流接收模块,被配置为接收服务端推送的目标直播流,其中,目标直播流是服务端根据订阅类型确定的;
23.显示模块,被配置为在目标直播间中显示目标直播流。
24.根据本技术实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述直播推流方法或所述直播拉流方法的步骤。
25.根据本技术实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述直播推流方法或所述直播拉流方法的步骤。
26.本技术一实施例实现了,根据用户的目标直播间的订阅类型,从多路同一直播时间段内的不同直播流中获取订阅类型对应的目标直播流,并将目标直播流推送至目标客户端,在目标直播间中显示播放。使得目标直播间的播放内容不与目标直播流绑定,而是可以根据用户的目标直播间的订阅类型进行灵活调整,使得目标直播间的类型更多样,直播内容更为丰富、多样。
附图说明
27.图1是根据本技术一实施例示出的一种直播推流方法的流程图;
28.图2是根据本技术一实施例示出的一种弹幕显示方法的流程图;
29.图3是根据本技术一实施例示出的一种弹幕轨道的示意图;
30.图4是根据本技术一实施例示出的一种目标直播间显示弹幕的示意图;
31.图5是根据本技术一实施例示出的另一种弹幕显示方法的流程图;
32.图6是根据本技术一实施例示出的一种服务端推送弹幕的示意图;
33.图7是根据本技术一实施例示出的一种应用于分阵营直播间的弹幕显示方法的处理流程图;
34.图8是根据本技术一实施例提供的一种直播拉流方法的流程图;
35.图9是根据本技术一实施例示出的一种应用于视频直播平台系统的直播推流方法的处理流程图;
36.图10是根据本技术一实施例示出的一种应用于视频直播平台系统的直播推流方法和直播拉流方法的数据处理流程图;
37.图11是根据本技术一实施例示出的一种直播推流装置的结构示意图;
38.图12是根据本技术一实施例示出的一种直播拉流装置的结构示意图;
39.图13是根据本技术一实施例示出的一种计算设备的结构框图。
具体实施方式
40.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
41.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而
非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
42.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
43.首先,对本技术一个或多个实施例涉及的名词术语进行解释。
44.cdn(content delivery network,内容分发网络):是构建在网络之上的内容分发网络,cdn的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求,提高用户访问响应速度和命中率。cdn的关键技术主要有内容存储技术、内容分发技术和负载均衡技术。
45.转码(video transcoding)是指将已经压缩编码的视频码率流转换成另一个视频码率流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
46.码率:就是数据传输时单位时间传送的数据位数,码率也叫比特率,表示经过压缩编码后的视音频数据每秒需要用多少个比特来表示,即把每秒显示的图像进行压缩后的数据量,一般采用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,也就是说画面的细节就越丰富。
47.弹幕类型:与订阅类型对应,不同的订阅类型对应的弹幕类型不同。
48.弹幕轨道:直播界面用于显示弹幕的轨道。
49.主态弹幕:登录当前客户端的用户自己发送的弹幕。
50.在本技术中,提供了一种直播推流方法,本技术同时涉及一种直播推流装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
51.图1示出了根据本技术一实施例提供的一种直播推流方法的流程图,具体包括以下步骤:
52.步骤102:获取用户对目标直播间的订阅类型。
53.图1实施例应用于视频直播平台的服务端。
54.用户为使用视频直播平台的客户端观看视频直播的使用者。用户通过登录视频直播平台的客户端,进入目标直播间观看服务端推送的视频直播流的视频内容。
55.目标直播间为用户观看视频直播流的直播内容的房间,需要说明的是,目标直播间可以为一个或多个直播内容创作者的直播间,也可以为直播内容播放平台的直播间,例如,xxx晚会播放平台、xxx新闻播放平台、xxx影视播放平台等,直播内容播放平台的直播间可以根据用户的订阅信息对应生成,例如,用户的订阅信息为“xxx的影视作品”,则根据该订阅信息,对应生成目标直播间来播放xxx的影视作品的直播内容。
56.目标直播间的订阅类型为用户订阅的视频直播流的类型,视频直播流的类型可以根据时空来进行确定,视频直播流的类型也可以根据播放内容来进行确定。例如,目标直播
间为xxx新闻播放平台,该新闻播放平台可以同时播放国际新闻和国内新闻,用户的订阅类型为国内新闻,则目标直播间的订阅类型为国内新闻。
57.具体地,接收用户的订阅请求,解析该订阅请求,获得用户对目标直播间的订阅类型。
58.例如,目标直播间为xxx新闻播放平台,接收用户xx的订阅请求sub_request,解析该订阅请求sub_request,获得用户xx对xxx新闻播放平台的订阅类型:国内新闻。
59.用户在视频直播平台的客户端进行了订阅操作后,客户端生成订阅请求并发送给服务端,服务端接收订阅请求后,从中解析得到用户对目标直播间的订阅类型。
60.通过获取用户对目标直播间的订阅类型,为后续获取目标直播流奠定了参考基础。
61.步骤104:根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流,其中,多路直播流包括同一直播时间段内的不同直播流。
62.多路直播流可以为直播内容现场发送的多种来源的直播流,可以为服务端上缓存的多种来源的直播流,每一个来源可以根据不同的直播内容现场确定,也可以根据相同的直播内容现场的不同拍摄机位或者上行推流路径确定。直播内容现场为拍摄直播内容并上行推流的现场。例如,对于xxx晚会,有一个主会场和多个分会场,每个会场都为一个直播内容现场。再例如,对于yyy晚会,只有一个会场,设有多个拍摄机位,每个拍摄机位拍摄并上行推流的直播流都不一致。
63.具体地,根据订阅类型,从来自内容分发网络的多路直播流中选择与订阅类型对应的目标直播流。
64.内容分发网络接收来自直播内容现场通过上行推流传输的多路直播流,然后将多路直播流发送至服务端。服务端获取用户对目标直播间的订阅类型后,根据用户的订阅类型,从多路直播流中选择与订阅类型对应的目标直播流。
65.例如,用户订阅类型为a,来自内容分发网络的多路直播流(a流,b流,c流,d流),从中选择与订阅类型a对应的a流。
66.根据用户对目标直播间的订阅类型,从多路直播流中获取对应的目标直播流,为后续显示目标直播流奠定了基础。
67.步骤106:将目标直播流推送至目标客户端,其中,目标客户端为用户登录的客户端。
68.目标客户端为视频直播平台的在目标终端上的客户端。目标终端可以为不同操作系统的移动终端或者不同操作系统的非移动终端,在此不作限定。客户端可以为视频直播平台应用程序客户端,也可以为视频直播平台网络页面客户端,在此不作限定。
69.在目标直播间中显示目标直播流为在目标直播间的直播视频播放区域进行显示,显示根据目标直播流确定的直播内容。
70.具体地,将目标直播流推送至目标客户端,以使目标客户端拉取目标直播流中的流信息,根据流信息,在目标直播间上播放目标直播流对应的直播内容。
71.例如,将目标直播流a流推送至视频直播平台的客户端,以使视频直播平台的客户端拉取目标直播流a流中的流信息info_a,根据流信息info_a,在目标直播间xxx新闻播放平台上播放目标直播流a流对应的直播内容:国内新闻。
72.本技术一实施例实现了根据用户的目标直播间的订阅类型,从多路同一直播时间段内的不同直播流中获取订阅类型对应的目标直播流,并将目标直播流推送至目标客户端,在目标直播间中显示播放。使得目标直播间的播放内容不与目标直播流绑定,而是可以根据用户的目标直播间的订阅类型进行灵活调整,使得目标直播间的类型更多样,直播内容更为丰富、多样。
73.可选地,订阅类型包括直播流时空标识;
74.对应地,步骤104包括如下具体步骤:
75.根据直播流时空标识,确定目标直播时间段,从目标直播时间段的多路直播流中获取订阅类型对应的目标直播流。
76.因为与用户订阅类型对应的目标直播流可能不止一个,而用户的订阅类型中包括直播流时空标识,即表明了用户要求目标直播间在目标直播时间段显示目标直播流,如果获取了非目标时间段内的目标直播流,会造成用户体验不足。
77.直播流时空标识为用来标注目标直播间显示目标直播流的目标直播时间段的标识,例如,用户订阅了xxx跨年晚会的直播间,跨年晚会对应的直播内容现场的时间20:00-1:00,则直播流时空标识为“20:00-1:00”,目标直播间会在20:00-1:00的目标直播时间段显示目标直播流。
78.具体地,识别订阅类型,确定直播流时空标识,根据直播流时空标识,确定目标直播时间段,从目标直播时间段的多路直播流中获取订阅类型对应的目标直播流。
79.例如,多路直播流为a流、b流、c流,目标直播间为xxx内容创作者直播间,用户订阅了该目标直播间19:00目标直播流c流,订阅类型为“19:00,c流”。识别订阅类型“19:00,c流”,确定直播流时空标识为“19:00”,根据该直播流时空标识“19:00”,确定目标直播时间段,从19:00的多路直播流(a流、b流、c流)中获取与订阅类型“19:00,c流”对应的目标直播流c流。
80.根据直播流时空标识,确定目标直播时间段,从目标直播时间段的多路直播流中获取订阅类型对应的目标直播流,可以更为精准地获取与用户订阅类型中直播流时空标识对应的目标直播流,满足了用户对于目标直播间直播时间的要求,提升了用户体验。
81.可选地,步骤102之前,还包括如下具体步骤:
82.识别目标直播间的房间类型;
83.对应地,步骤102包括如下具体步骤:
84.若房间类型为多路流房间类型,则获取用户对目标直播间的订阅类型。
85.识别目标直播间的房间类型的识别方式为通过查询分发系统,查询目标直播间的房间类型。
86.分发系统为记录有视频直播平台上的直播间与房间类型对应关系、直播时间段与房间类型对应关系的系统,服务端通过查询分发系统,确定目标直播间的房间类型。
87.目标直播间的房间类型为服务端预先设定的目标直播间可显示直播流类型,包括了多路流房间类型和单路流房间类型。
88.多路流房间类型可以从多路直播流中获取与用户订阅类型对应的目标直播流,并进行显示。
89.单路流房间类型不能从多路直播流中获取目标直播流,并进行显示。
90.具体地,通过查询分发系统,识别目标直播间的房间类型,若房间类型为多路流房间类型,则获取用户对目标直播间的订阅类型。
91.例如,通过查询分发系统,根据直播间和房间类型的对应关系(直播间1-多路流房间类型;直播间2-多路流房间类型;直播间3-单路流房间类型),识别目标直播间2的房间类型为多路流房间类型,获取用户对目标直播间的订阅类型。
92.通过识别目标直播间的房间类型,在房间类型为多路流房间类型,才会获取用户对目标直播间的订阅类型,进而避免了不为多路流房间类型时,也会获取用户的订阅类型,避免了不必要的后续确定多路直播流中目标直播流的处理,提升了直播推流的效率,提升了用户体验。
93.可选地,识别目标直播间的房间类型,包括如下具体步骤:
94.向分发系统发送查询请求,其中,查询请求包括目标直播间的房间标识;
95.接收分发系统反馈的查询结果,其中,查询结果携带目标直播间的房间类型。
96.服务端向分发系统发送查询请求,查询分发系统中记录直播间与房间类型对应关系和/或直播时间段与房间类型对应关系,根据目标直播间的房间标识,得到携带有房间类型的查询结果。
97.房间标识是根据视频直播平台上的直播间的属性信息确定的标识,例如,针对xxx直播内容创作者的直播间,其房间标识为“xxx”。
98.具体地,向分发系统发送查询请求,其中,查询请求包括目标直播间的房间标识,以使分发系统根据目标直播间的房间标识查询对应关系,得到查询结果;
99.接收分发系统反馈的查询结果,其中,查询结果携带目标直播间的房间类型。
100.例如,向分发系统发送查询请求search_request,其中,查询请求search_request包括目标直播间的房间标识“xxx”,以使分发系统根据目标直播间的房间标识“xxx”,查询对应关系(xxx直播间-多路流房间类型)。接收分发系统反馈的查询结果search_result,其中,查询结果search_result携带有目标直播间的房间类型“多路流房间类型”。
101.通过目标直播间的房间标识,并且可以在分发系统上得到查询,保证了不同用户在不同终端的操作系统上的视频直播平台内,都可以确定一致的目标直播间的房间类型,进行后续的从多路直播流中获取目标直播流并显示,保证了系统内目标直播间的一致性,避免了用户无法获取对应的房间类型,可以在目标直播间上显示对应的目标直播流,提升用户体验。
102.可选地,查询请求还包括直播流时空标识;查询结果为分发系统基于直播流时空标识在房间类型配置列表中查找到,房间类型配置列表中记录了直播时间段与直播间的房间类型的对应关系。
103.房间类型配置列表为分发系统中记录有直播间与房间类型对应关系和/或直播时间段与房间类型对应关系的列表。
104.分发系统通过查询房间类型列表确定目标直播间的目标直播时间段上对应的房间类型。
105.表1示出了本技术一实施例提供的一种房间类型配置列表。
106.例如,目标直播间yyy的房间类型配置列表如表1所示,记录有直播间的三个直播时间段和房间类型的对应关系,分发系统接收到服务端发送的查询请求,查询请求携带有
目标直播间yyy的直播流时空标识“13:00-19:00”,通过查找目标直播间yyy的房间类型配置列表,得到目标直播间yyy在13:00-19:00的目标直播时间段中,房间类型为多路流房间类型。进而可以获取用户对目标直播间的订阅类型,进而从多路直播流中获取得到对应的目标直播流,并在目标客户端的目标直播间yyy上进行显示。
107.表1目标直播间yyy的房间类型配置列表
108.直播间(房间标识)直播时间段房间类型yyy8:00-12:00多路流房间类型yyy13:00-19:00多路流房间类型yyy20:00-1:00单路流房间类型
109.分发系统通过设定房间类型配置列表,可以在查询时仅通过直播流时空标识进行查找,得到目标时间段内目标直播间的房间类型查询结果,提升了查询效率,进而提升了整个直播推流的效率,提升了用户体验。另外,房间类型配置列表记录有直播时间段和房间类型,表明了直播间的房间类型是会跟随直播时间段的调整,而灵活切换的,使得目标直播间具有了更丰富的直播内容,不仅仅获取固定的直播流进行显示,同样提升了用户体验。
110.可选地,在识别目标直播间的房间类型之后,还包括如下具体步骤:
111.若房间类型为单路流房间类型,则确定主直播流;
112.将主直播流推送至目标客户端。
113.单路流房间类型为分发系统中记录的不能从多路直播流中获取目标直播流,并进行显示的房间类型。例如,目标直播间为xxx影视作品播放平台,限定了目标直播间上只能播放xxx影视作品,因而不能从多路直播流中获取目标直播流,xxx影视作品播放平台为单路流直播流。
114.主直播流为内容分发系统默认为目标直播间分发的直播内容的直播流,例如,目标直播间为xxx影视作品播放平台,只具有直播内容为xxx影视作品对应的s流一路直播流,直播流s流为主直播流。
115.具体地,若房间类型为单路流房间类型,则确定主直播流,将主直播流推送至目标客户端,以使目标客户端拉取主直播流中的流信息,根据流信息,在目标直播间上播放主直播流对应的直播内容。
116.例如,目标直播间为xxx影视作品播放平台,识别目标直播间的房间类型为单路流房间类型,则主直播流为s流,将主直播流s流推送至视频直播平台的客户端,以使视频直播平台的客户端拉取主直播流s流中的流信息info_s,根据流信息info_s,在目标直播间xxx影视作品播放平台上播放主直播流s流对应的直播内容:xxx影视作品。
117.若房间类型为单路流房间类型,则确定主直播流,将主直播流推送至目标客户。还可以灵活地将目标直播间的房间类型设定为单路流房间类型,以满足用户对于单路目标直播流显示播放的需求,进一步丰富了直播间的类型和直播内容,提升了用户体验。
118.可选地,在根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流之后,还包括如下具体步骤:
119.获取目标直播间中待显示弹幕的弹幕类型;
120.根据订阅类型和弹幕类型,确定待显示弹幕的目标显示参数;
121.将目标显示参数发送至目标客户端。
122.目标直播间中显示的目标直播流具有弹幕显示的功能,获取目标直播流后,对目标直播流进行弹幕配置,来进一步丰富显示的直播内容。
123.待显示弹幕是用户在目标客户端上的目标直播间的弹幕输入区域输入的弹幕,通过目标客户端的弹幕转换模块,转换成弹幕流,并添加至目标直播流中,在目标直播间上进行显示。例如,用户在目标直播间中弹幕输入区域输入弹幕“666”,通过目标客户端的弹幕转换模块,转换成弹幕流bullet_stream,并添加至目标直播流中。
124.弹幕类型为目标客户端上的目标直播间中预先设定的与订阅类型对应的类型,例如,订阅类型为a,则对应的弹幕类型也为a。
125.确定待显示弹幕的目标显示参数的确定方式为:订阅类型和弹幕类型一致时,确定订阅类型对应的待显示弹幕的目标显示参数。
126.目标显示参数为待显示弹幕的设定参数,包括待显示弹幕的弹幕轨迹、待显示弹幕的弹幕文本样式、待显示弹幕的显示区域等,在此不作限定。
127.具体地,获取目标直播间中待显示弹幕的弹幕类型,订阅类型和弹幕类型一致时,确定订阅类型对应的待显示弹幕的目标显示参数,将目标显示参数发送至目标客户端。
128.例如,目标直播间为xxx跨年晚会,晚会在线观看用户分为a、b两个阵营,多路直播流包括针对a阵营设定的a流和针对b阵营设定的b流,a阵营用户的订阅类型为“a”,根据订阅类型获取的目标直播流为a流,a阵营用户在目标直播间输入的待显示弹幕为“a阵营加油”,订阅类型“a”和弹幕类型一致时,确定订阅类型“a”对应的待显示弹幕的目标显示参数:{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方},将目标显示参数{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}发送至a阵营用户的目标客户端。相应地,b阵营用户在目标直播间输入的待显示弹幕为“b阵营加油”,订阅类型“b”和弹幕类型一致时,确定订阅类型“b”对应的待显示弹幕的目标显示参数:{待显示弹幕的弹幕轨迹:从左往右;待显示弹幕的弹幕文本样式:绿色,加粗;待显示弹幕的显示区域:目标直播间显示区域下方},将目标显示参数{待显示弹幕的弹幕轨迹:从左往右;待显示弹幕的弹幕文本样式:绿色,加粗;待显示弹幕的显示区域:目标直播间显示区域下方}发送至b阵营用户的目标客户端。同时,a阵营和b阵营的用户可以在各自的客户端的目标直播间xxx跨年晚会上显示的目标直播流xxx跨年晚会直播中看到a、b阵营的经过渲染的弹幕“a阵营加油”和“b阵营加油”。
129.上述例子中,通过基于不同的用户的订阅类型,渲染弹幕,使得在目标直播间上显示的弹幕更丰富,增强了用户观看直播的参与感,提升了用户体验。
130.根据订阅类型和弹幕类型确定对应的待显示弹幕的目标显示参数,然后基于目标显示参数对待显示弹幕进行渲染并在目标直播流中显示,可以让用户看到根据用户的订阅类型确定的弹幕,丰富了目标直播间的直播内容,并且体现了对用户的适应性,提升了用户体验。
131.可选地,图2示出了根据本技术一实施例提供的一种弹幕显示方法的流程图,具体包括以下步骤:
132.步骤202:获取用户对目标直播间的订阅类型及目标直播间中待显示弹幕的弹幕类型。
133.其中,目标直播间是具有订阅类型的直播间。目标直播间与普通直播间的区别在于,普通直播间在同一时间点对所有用户播放的直播视频是相同的,但在目标直播间中,在同一时间点对订阅类型不同的用户播放的直播视频是不同的。即目标直播间可以理解为有平行世界的概念。
134.其中,订阅类型可以理解为针对目标直播间播放的直播视频设置的类型。例如,目标直播间可以对应有多路直播流,每路直播流对应一种订阅类型,用户若想从中选择一条直播流来观看,则可以选择订阅类型,根据该订阅类型便可以观看到对应的直播流。
135.在一些实施例中,用户对目标直播间的订阅类型可以是用户在客户端进入目标直播间时选择的,客户端会检测到用户对订阅类型的选择操作,则客户端能够确定用户对目标直播间的订阅类型;或者,用户对目标直播间的订阅类型可以是用户通过客户端进入目标直播间后默认设置的,在该种情况下,若用户没有执行选择订阅类型的操作,则客户端可以将默认的订阅类型确定为用户对目标直播间的订阅类型。
136.也即是,客户端将用户在观看直播时选择的订阅类型或者进入直播间默认的订阅类型确定为用户对目标直播间的订阅类型。
137.在一些实施例中,观看目标直播间中直播的所有用户均可以通过自己观看直播的客户端编辑弹幕,客户端将用户编辑完成的待显示弹幕发送至服务端,由服务端确定待显示弹幕的弹幕类型,然后将携带弹幕类型的待显示弹幕发送至客户端进行渲染,则客户端会接收到携带弹幕类型的待显示弹幕。即客户端可以获取到待显示弹幕的弹幕类型。
138.需要说明的是,服务端确定待显示弹幕的弹幕类型的具体实现可以参见下述应用于服务端的弹幕显示方法中的相关描述。
139.本技术实施例中,由于弹幕的显示情况与直播间的类型以及弹幕的弹幕类型均有关,因此,可以先获取用户对目标直播间的订阅类型以及目标直播间中待显示弹幕的弹幕类型,便于后续确定对待显示弹幕的显示。
140.步骤204:根据订阅类型和弹幕类型,确定待显示弹幕的目标显示参数,其中,目标显示参数包括目标显示区域和目标显示方向,不同弹幕类型对应的显示区域、显示方向均不同。
141.在本技术实施例中,不同弹幕类型对应的显示区域和显示方向均不同,则能够将不同弹幕类型的待显示弹幕区分开来进行显示,避免了不同类型的弹幕交叉重叠导致弹幕显示混乱的问题。
142.在本技术一种可能的实现方式中,本步骤的具体实现可以包括:将目标直播间的显示界面划分为第一显示区域和第二显示区域,若订阅类型和弹幕类型相同,将第一显示区域和第一显示区域对应的显示方向确定为目标显示参数,若订阅类型和弹幕类型不同,将第二显示区域和第二显示区域对应的显示方向确定为目标显示参数。
143.其中,第一显示区域用于显示与登录客户端的用户对目标直播间的订阅类型相同的用户发送的弹幕,第二显示区域用于显示与登录客户端的用户对目标直播间的订阅类型不同的用户发送的弹幕,并且第一显示区域和第二显示区域不重叠,第一显示区域对应的显示方向与第二显示区域对应的显示方向不同。例如,第一显示区域对应的显示方向与第二显示区域对应的显示方向相反。
144.也就是说,若订阅类型和弹幕类型相同,说明发送该待显示弹幕的用户和当前登
录客户端的用户是同一阵营,则可以基于第一显示区域的显示方向,将待显示弹幕显示在第一显示区域,便于当前登录客户端的用户能够看到与自己同一阵营的用户发表的意见;若订阅类型和弹幕类型不同,说明发送该待显示弹幕的用户和当前登录客户端的用户是不同阵营,则可以基于第二显示区域的显示方向,将待显示弹幕显示在第二显示区域,避免不同阵营的用户发送的弹幕相互交叉重叠。
145.例如,假设第一显示区域在直播界面上方60%处,第二显示区域在直播界面下方40%处,且第一显示区域对应的显示方向是从右向左,第二显示区域对应的显示方向是从左向右,若订阅类型和弹幕类型相同,将该待显示弹幕按照从右向左的显示方向显示在第一显示区域处,若订阅类型和弹幕类型不同,将该待显示弹幕按照从左向右的显示方向显示在第一显示区域处。
146.通过上述方法将不同弹幕类型的弹幕采用不同的显示方向显示在不同的显示区域,不仅丰富了弹幕显示形式,而且能够将不同弹幕类型的弹幕清楚地区分开来,还能够避免不同弹幕类型的弹幕重叠交叉,导致弹幕显示混乱的问题。
147.在本技术另一种可能的实现方式中,根据订阅类型和弹幕类型,确定待显示弹幕的目标显示参数的具体实现可以包括:
148.基于订阅类型和弹幕类型,确定待显示弹幕的显示方向;
149.获取弹幕轨道数组,其中,弹幕轨道数组包括目标直播间的弹幕显示区域中的多个弹幕轨道及各弹幕轨道对应的显示方向;
150.基于待显示弹幕的显示方向和各弹幕轨道对应的显示方向,从弹幕轨道数组中确定目标弹幕轨道;
151.基于目标弹幕轨道确定目标显示区域,并将目标弹幕轨道对应的显示方向确定为目标显示方向。
152.其中,弹幕轨道是直播界面用来显示弹幕的轨道。设置弹幕轨道是为了便于弹幕规范化显示,避免出现弹幕串行、重叠、层次不齐等影响用户观看的情况。
153.实际应用中,可以先根据订阅类型和弹幕类型,确定待显示弹幕的显示方向,实际上,根据弹幕轨道方向,已经能够确定待显示弹幕的目标显示区域,但由于在显示区域内弹幕按照弹幕轨道显示,因此,需要获取弹幕轨道数组,然后从头开始遍历弹幕轨道数组,根据待显示弹幕的显示方向和弹幕轨道数组中各弹幕轨道对应的显示方向确定能够用来显示待显示弹幕的目标弹幕轨道,再基于目标弹幕轨道确定目标显示区域,并确定目标弹幕轨道对应的显示方向为目标显示方向。
154.在本技术一个或多个实施例中,在订阅类型和弹幕类型相同的情况下,确定待显示弹幕的显示方向是第一方向,在订阅类型和弹幕类型不同的情况下,确定待显示弹幕的显示方向是第二方向。其中,第一方向和第二方向相反。
155.在上述方式中,只要保证两种情况下待显示弹幕的显示方向不同就能够区分不同弹幕类型的待显示弹幕。
156.在一些实施例中,基于订阅类型和弹幕类型,确定待显示弹幕的显示方向的具体实现可以包括:
157.若订阅类型与弹幕类型相同,则确定待显示弹幕的显示方向是正向;
158.若订阅类型与弹幕类型不同,则确定待显示弹幕的显示方向是逆向。
159.也就是说,若订阅类型和弹幕类型相同,说明发送该待显示弹幕的用户和当前登录客户端的用户是同一阵营,对于同一阵营的用户发送的弹幕,当前登录客户端的用户是比较乐意看到的,所以按照正向的显示方向显示,即确定待显示弹幕的显示方向是正向;若订阅类型和弹幕类型不同,说明发送该待显示弹幕的用户和当前登录客户端的用户是不同阵营,对于不同阵营的用户发送的弹幕,当前登录客户端的用户可能并不想看到,所以按照逆向的显示方向显示,即确定待显示弹幕的显示方向是逆向。
160.例如,假设正向是通常情况下弹幕正常的显示方向,则正向可以是从右向左,逆向便是从左向右。假设订阅类型是a,弹幕类型是b,则确定订阅类型与弹幕类型不同,即当前登录客户端的用户选择的是a阵营,但发送待显示的弹幕的用户选择的是b阵营,所以,可以确定该待显示弹幕的显示方向是逆向,即从左向右显示。
161.在本技术实施例中,由于在后续确定弹幕轨道的过程中,需要根据显示方向判断待显示弹幕是否在弹幕轨道上显示,因此,需要确定待显示弹幕对应的显示方向,并且,确定与登录客户端的用户同一阵营的用户发送的弹幕的显示方向是正向,确定不同阵营的用户发送的弹幕的显示方向是逆向,则能够初步区分不同阵营的弹幕,为后续判断做准备。
162.在本技术一个或多个实施例中,确定待显示弹幕的显示方向后,由于要将待显示弹幕的显示方向与弹幕轨道对应的显示方向进行比较,因此,可以获取弹幕轨道数组,且该弹幕轨道数组中包括目标直播间的弹幕显示区域中多个弹幕轨道及各弹幕轨道对应的显示方向,可以将待显示弹幕的显示方向与弹幕轨道数据中多个弹幕轨道对应的显示方向进行比较,根据比较结果确定目标弹幕轨道,进而确定目标显示区域和目标显示方向。
163.作为一种示例,在待显示弹幕的数量是一个的情况下,若有多个弹幕轨道对应的显示方向与待显示弹幕的显示方向相同,则可以从该多个弹幕轨道中随机选择一个作为目标弹幕轨道,再将该目标弹幕轨道确定为目标显示区域,将该目标弹幕轨道对应的显示方向确定为目标显示方向。
164.作为另一种示例,在待显示弹幕的数量是多个的情况下,对于一个待显示弹幕来说,可以按照上述方式确定该待显示弹幕对应的目标显示区域和目标显示方向。并且,若该多个待显示弹幕中存在显示方向相同待显示弹幕,为该显示方向相同的待显示弹幕确定的目标显示方向相同,但目标显示区域可能不同。
165.例如,假设有a和b两个待显示弹幕,若这两个待显示弹幕的显示方向不同,为待显示弹幕a确定的目标弹幕轨道是轨道1,为待显示弹幕b确定的目标弹幕轨道是轨道2,则可以将轨道1对应的显示方向确定为待显示弹幕a的目标显示方向,将轨道2对应的显示方向确定为待显示弹幕b的目标显示方向;若这两个待显示弹幕的显示方向相同,为待显示弹幕a确定的目标弹幕轨道是轨道3,为待显示弹幕b确定的目标弹幕轨道是轨道4,则轨道3和轨道4对应的显示方向是相同的,因此,可以将轨道3或轨道4对应的显示方向确定为待显示弹幕a和b的目标显示方向。
166.本技术实施例中,根据待显示弹幕的显示方向和弹幕轨道对应的显示方向,通过上述方式确定待显示弹幕的目标显示区域和目标显示方向,能够将与登录客户端的用户同一阵营的用户发送的待显示弹幕和不同阵营的用户发送的待显示弹幕在不同的显示区域根据不同的显示方向显示,实现对不同弹幕类型的待显示弹幕的区分显示,且能够避免不同弹幕类型的弹幕重叠交叉、显示混乱的问题。
167.在本技术一个或多个实施例中,上述获取的弹幕轨道数组可以是预先确定并存储在服务端的,此处可以直接根据直播间标识获取到弹幕轨道数组。或者,上述获取的弹幕轨道数据可以预先确定并存储在服务端,由客户端从服务端获取。也即是,在获取用户对目标直播间的订阅类型及目标直播间中待显示弹幕的弹幕类型之前便已经生成了弹幕轨道数据,生成弹幕轨道数组的具体实现可以包括:
168.在目标直播间的直播界面确定弹幕显示区域;
169.根据弹幕显示规则将弹幕显示区域划分为第一显示区域和第二显示区域,其中,第一显示区域与第二显示区域对应的显示方向不同;
170.根据预设弹幕轨道宽度,分别在第一显示区域和第二显示区域中确定弹幕轨道;
171.将弹幕轨道以及每个弹幕轨道对应的显示方向确定为弹幕轨道数组,其中,每个弹幕轨道对应的显示方向与所处显示区域对应的显示方向相同。
172.其中,弹幕显示区域是目标直播间的直播界面中用来显示弹幕的区域。
173.其中,预设弹幕轨道宽度是单个弹幕轨道在屏幕上所占的宽度方向的尺寸。
174.其中,弹幕显示规则可以由用户根据实际情况设置,也可以由服务端或客户端默认设置,本技术实施例对此不作限定。例如,弹幕显示规则可以是将弹幕显示区域以3:2的比例划分为两个显示区域等。
175.也就是说,需要先确定直播间的直播界面中能够显示弹幕的弹幕显示区域,然后根据弹幕显示规则将弹幕显示区域划分为显示方向不同的第一显示区域和第二显示区域,再根据预设弹幕轨道宽度确定每个显示区域的弹幕轨道,最后将每个弹幕轨道和该弹幕轨道对应的显示方向作为一个数组组成弹幕轨道数组。
176.在一些实施例中,弹幕显示区域可以是用户自主调整的显示区域,也可以是设备默认设置的,若用户不满意可以再进行调整。例如,弹幕显示区域可以是直播界面的1/4、1/2、3/4、全屏等,或者弹幕显示区域可以是整个屏幕的1%-100%,本技术实施例对此不作限定。
177.在一些实施例中,由于本方案是为了将不同弹幕类型的待显示弹幕区分开来进行显示,因此需要按照弹幕显示规则将弹幕显示区域划分为第一显示区域和第二显示区域。其中,第一显示区域可以是用来显示与当前登录客户端的用户属于同一阵营的用户发送的弹幕,第二显示区域可以是用来显示与当前登录客户端的用户属于不同阵营的用户发送的弹幕。并且,第一显示区域可以是以弹幕显示区域为基础确定的,也可以是以直播界面为基础确定的。
178.例如,假设弹幕显示规则是按照3:2划分弹幕显示区域,则可以确定弹幕显示区域的3/5是第一显示区域,弹幕显示区域的2/5是第二显示区域,或者,若弹幕显示区域是直播界面的1/2,则可以确定直播界面的3/10是第一显示区域,直播界面的2/10是第二显示区域。
179.在一些实施例中,确定第一显示区域和第二显示区域后,可以根据预设弹幕轨道宽度和直播界面宽度,确定第一显示区域和第二显示区域中的弹幕轨道。
180.作为一种示例,若第一显示区域和第二显示区域是基于弹幕显示区域确定的,则可以先根据直播界面高度和预设弹幕轨道宽度,确定该直播界面的总轨道数,然后根据总轨道数与弹幕显示区域确定可用轨道数,再基于可用轨道数与第一显示区域确定第一显示
区域中的弹幕轨道数,基于可用轨道数与第一显示区域中的弹幕轨道数确定第二显示区域中的弹幕轨道数。
181.示例性地,可以通过如下公式(1)确定总轨道数,并且,若确定的总轨道数不是整数,可以向上取整、向下取整或按照四舍五入的方式处理。
182.总轨道数=直播界面高度/预设弹幕轨道宽度(式1)
183.例如,假设直播界面高度是360,若预设弹幕轨道宽度是12,可以确定总轨道数是30,若预设弹幕轨道宽度是11,采用向下取整的方式可以确定总轨道数是32。
184.示例性地,可以通过如下公式(2)确定可用轨道数,并且,若确定的可用轨道数不是整数,可以向上取整、向下取整或按照四舍五入的方式处理。
185.可用轨道数=总轨道数*弹幕显示区域(式2)
186.例如,假设总轨道数是32,若弹幕显示区域是直播界面的1/2,可以确定可用轨道数是16,若弹幕显示区域是直播界面的1/3,采用四舍五入的方式可以确定可用轨道数是11。
187.需要说明的是,若确定的可用轨道数小于2,则确定可用轨道数为2,即必须保证每个显示方向分别至少有一条弹幕轨道可用,如此才能实现不同弹幕类型的弹幕轨道区分开来显示的效果。
188.示例性地,可以通过如下公式(3)确定第一显示区域的弹幕轨道数,并且,若确定的第一显示区域的弹幕轨道数不是整数,可以向上取整、向下取整或按照四舍五入的方式处理。
189.第一显示区域的弹幕轨道数=可用轨道数*第一显示区域(式3)
190.例如,假设可用轨道数是16,若第一显示区域是弹幕显示区域的1/2,可以确定第一显示区域的弹幕轨道数是8,若第一显示区域是弹幕显示区域的2/5,采用向上取整的方式可以确定第一显示区域的弹幕轨道数是4。
191.示例性地,再将可用轨道数与第一显示区域的弹幕轨道数的差值确定为第二显示区域的弹幕轨道数。在第一显示区域和第二显示区域是基于弹幕显示区域确定的情况下,通过上述方式可以确定第一显示区域和第二显示区域中的弹幕轨道。
192.作为另一种示例,若第一显示区域和第二显示区域是基于直播界面确定的,则可以先确定直播界面高度和预设弹幕轨道宽度,确定该直播界面的总轨道数,然后根据总轨道数与第一显示区域确定第一显示区域中的弹幕轨道数,基于总轨道数与第二显示区域确定第二显示区域中的弹幕轨道数。
193.示例性地,可以通过上述公式(1)确定总轨道数,并且,若确定的总轨道数不是整数,可以向上取整、向下取整或按照四舍五入的方式处理。
194.示例性地,可以通过如下公式(4)确定第一显示区域的弹幕轨道数,并且,若确定的可用轨道数不是整数,可以向上取整、向下取整或按照四舍五入的方式处理。
195.显示区域的弹幕轨道数=总轨道数*显示区域(式4)
196.例如,假设总轨道数是30,若第一显示区域是弹幕显示区域的2/10,可以确定第一显示区域的弹幕轨道数是6,若第一显示区域是直播界面的1/4,采用四舍五入的方式可以确定第一显示区域的弹幕轨道数是8。
197.同理,可以通过上述公式(4)确定第二显示区域的弹幕轨道数。在第一显示区域和
第二显示区域基于直播界面确定的情况下,通过上述方式可以确定第一显示区域和第二显示区域中的弹幕轨道。
198.需要说明的是,在通过上述两种方式确定第一显示区域和第二显示区域的弹幕轨道时,若某个显示区域的弹幕轨道数小于1,则取值为1,即需要确保每个显示方向都有弹幕轨道,才能实现将不同弹幕类型的待显示弹幕区分开来的效果。
199.作为一种示例,确定第一显示区域和第二显示区域中的弹幕轨道后,可以确定每个弹幕轨道所处的显示区域对应的显示方向为该弹幕轨道对应的显示方向,并且,为每个弹幕轨道设置轨道标识,再将轨道标识和该轨道标识指示的弹幕轨道对应的显示方向作为一个数组,通过该种方式能够得到多个数组,将多个数据组合得到弹幕轨道数组。其中,弹幕轨道的轨道标识可以是字母、数字、字符等一种或多种的组合,本技术实施例对此不作限定。
200.本技术实施例中,先确定直播界面的弹幕显示区域,然后将弹幕显示区域划分为两个显示方向不同的显示区域,再确定每个显示区域中的弹幕轨道,然后将每个弹幕轨道的轨道标识和弹幕轨道对应的显示方向作为数组,则多个弹幕轨道的数组组成弹幕轨道数组,则能够预先生成弹幕轨道数组,便于在显示待显示弹幕时可以直接使用,提高了确定待显示弹幕的目标显示参数的效率,并且在生成弹幕轨道数组的过程中保证每个显示区域必须有至少一条弹幕轨道,则能够实现不同弹幕类型的弹幕区分开来显示的效果,能够避免不同弹幕类型的弹幕交叉重叠、显示混乱的问题。
201.并且,生成弹幕轨道数据后可以存储至服务端,并且可以将弹幕轨道数组与目标直播间的直播间标识对应存储,因此,服务端可以基于目标直播间的直播间标识获取弹幕轨道数组,提高了确定弹幕轨道数组的效率。
202.在本技术一个或多个实施例中,基于待显示弹幕的显示方向和各弹幕轨道对应的显示方向,从弹幕轨道数组中确定目标弹幕轨道的具体实现可以包括:
203.识别当前弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,其中,当前弹幕轨道是弹幕轨道数组中任一弹幕轨道;
204.若是,则根据当前弹幕轨道中的弹幕信息,从弹幕轨道数组中确定目标弹幕轨道;
205.若否,则根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道。
206.其中,指定弹幕轨道可以是弹幕轨道数组中的最后一个弹幕轨道,即当前弹幕轨道是否是指定弹幕轨道与当前弹幕轨道在弹幕轨道数组中的排列顺序相关。
207.具体实现中,多个弹幕轨道在弹幕轨道数组中的排序是按照在直播界面中从上到下的显示顺序排列的,可以按照顺序遍历弹幕轨道数组中的弹幕轨道,确定目标弹幕轨道。首先,判断当前弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,若相同,说明当前弹幕轨道可能可以显示该待显示弹幕,但需要判断该当前弹幕轨道中其他弹幕的情况,因此,可以根据当前弹幕轨道中的弹幕信息确定目标弹幕轨道;若不同,说明当前弹幕轨道无法显示该待显示弹幕,则可以根据当前弹幕轨道是否是指定弹幕轨道的识别结果确定目标弹幕轨道。
208.示例性地,假设当前弹幕轨道对应的显示方向是正向,若待显示弹幕的显示方向是逆向,可以确定当前弹幕轨道对应的显示方向与待显示弹幕的显示方向不同,则可以识别当前弹幕轨道是否是指定弹幕轨道,根据识别结果确定目标弹幕轨道;若待显示弹幕的
显示方向是正向,可以确定当前弹幕轨道对应的显示方向与待显示弹幕的显示方向相同,则可以根据当前弹幕轨道中的弹幕信息确定目标弹幕轨道。
209.在本技术一些实施例中,可以根据当前弹幕轨道在弹幕轨道数组中的排列顺序,确定当前弹幕轨道是否是指定弹幕轨道。例如,假设弹幕轨道数组中包括30个弹幕轨道,有20个弹幕轨道对应的显示方向是正向,有10个弹幕轨道对应的显示方向是逆向,假设当前弹幕轨道对应的显示方向是正向,当前弹幕轨道在弹幕轨道数组中的排列顺序是20,可以确定当前弹幕轨道不是弹幕轨道数中的最后一个弹幕轨道,即当前弹幕轨道不是指定弹幕轨道,识别结果为否。
210.本技术实施例中,先根据当前弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,大致确定该当前弹幕轨道是否可以用来显示待显示弹幕,然后对于相同和不同的情况,采用最符合该种情况的方式确定目标弹幕轨道,能够提高确定目标弹幕轨道的效率和准确率。
211.在本技术一个或多个实施例中,识别当前弹幕轨道是否为指定弹幕轨道,识别结果包括两种情况,因此,根据当前弹幕轨道是否为指定弹幕轨道的识别结果确定目标弹幕轨道可以包括两种情况。
212.第一种情况:当前弹幕轨道不是指定弹幕轨道。
213.在一些实施例中,根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的具体实现可以包括:
214.在当前弹幕轨道不是指定弹幕轨道的情况下,识别当前弹幕轨道的下一个弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同。
215.以指定弹幕轨道是弹幕轨道数组中的最后一个弹幕轨道为例,在当前弹幕轨道对应的显示方向与待显示弹幕的显示方向不同的情况下,则当前弹幕轨道不能用来显示待显示弹幕,可以选择下一个弹幕轨道来做判断,但如果该当前弹幕轨道已经是最后一个弹幕轨道,便没有下一个弹幕轨道可以用来做判断,因此,可以先识别当前弹幕轨道是否是弹幕轨道数组中的最后一个弹幕轨道。
216.作为一种示例,若基于识别结果确定当前弹幕轨道不是最后一个弹幕轨道,说明当前弹幕轨道及之前遍历的弹幕轨道的显示方向均与待显示弹幕的显示方向不同,因此,可以继续判断下一个弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,若是,则根据该下一个弹幕轨道中的弹幕信息,从弹幕轨道数组中确定目标弹幕轨道,若否,则根据该下一个弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道。
217.例如,假设当前弹幕轨道是弹幕轨道数组中的第20个弹幕轨道,在当前弹幕轨道不是最后一个弹幕轨道的情况下,可以识别第21个弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,若是,则根据第21个当前弹幕轨道中的弹幕信息,从弹幕轨道数组中确定目标弹幕轨道,若否,则根据第21个弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道。
218.本技术实施例中,若当前弹幕轨道不是最后一个弹幕轨道,则可以识别下一个弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,即返回执行对当前弹幕轨道执行的步骤,如此,在当前弹幕轨道无法显示待显示弹幕时,先判断当前弹幕轨道是否是最后一个,能够避免无用的操作,快速进入下一次的弹幕轨道筛选过程中,提高了确定目标弹幕
轨道的效率。
219.第二种情况:当前弹幕轨道是指定弹幕轨道。
220.在本技术一种可能的实现方式中,根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的具体实现可以包括:在当前弹幕轨道是指定弹幕轨道的情况下,删除该待显示弹幕。
221.以指定弹幕轨道是最后一个弹幕轨道为例,若基于识别结果确定当前弹幕轨道是最后一个弹幕轨道,说明弹幕轨道数组中的所有弹幕轨道可能均无法显示该待显示弹幕,因此,可以删除该待显示弹幕,即不显示该待显示弹幕。如此,既能节省弹幕渲染的处理资源,还能够避免弹幕过多造成服务端处理压力大的问题。
222.在本技术另一种可能的实现方式中,根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的具体实现可以包括:
223.在当前弹幕轨道是指定弹幕轨道的情况下,若待显示弹幕为主态弹幕,则从弹幕轨道数组中选择显示方向为正向的弹幕轨道作为目标弹幕轨道。
224.其中,主态弹幕是登录客户端的用户发送的弹幕,该客户端是当前渲染待显示弹幕的客户端。
225.在一些实施例中,若基于识别结果确定当前弹幕轨道是最后一个弹幕轨道,则弹幕轨道数组中的其他弹幕轨道必然已经遍历过,且其他弹幕轨道均无法用来显示该待显示弹幕,但若该待显示弹幕是当前登录客户端的用户发送的弹幕,若删除该待显示弹幕,会给用户带来不好的体验,因此,可以判断待显示弹幕是否是主态弹幕。
226.作为一种示例,待显示弹幕可以携带用户标识,可以识别该用户标识与当前登录客户端用户的用户标识是否相同,若是,则确定该待显示弹幕是主态弹幕,并且,由于发主态弹幕的用户是当前登录客户端的用户,则该待显示弹幕的显示方向必然是正向,因此,可以从弹幕轨道数组中选择显示方向为正向的弹幕轨道作为目标弹幕轨道。
227.示例性地,可以在弹幕轨道数组中随机选择一个显示方向为正向的弹幕轨道作为目标弹幕轨道,或者,可以选择弹幕轨道数组中显示方向为正向的第一个弹幕轨道作为目标弹幕轨道,本技术实施例对此不作限定。
228.本技术实施例中,若当前弹幕轨道是最后一个弹幕轨道,为了避免将用户自己发的弹幕删除,可以判断待显示弹幕是否是主态弹幕,且在是的情况下选择显示方向为正向的弹幕轨道作为目标弹幕轨道,如此能够避免将登录客户端的用户自己发的待显示弹幕删除掉,且若将待显示弹幕显示在直播界面的第一个弹幕轨道上,能够让用户清楚快速地看到自己发的弹幕,提高了用户的使用体验。
229.在本技术又一种可能的实现方式中,在当前弹幕轨道是指定弹幕轨道的情况下,若待显示弹幕为主态弹幕,可以为主态弹幕设置缓存队列,将主态弹幕存储至缓存队列,在弹幕轨道数组中有可用的与待显示弹幕的显示方向一致的弹幕轨道的情况下,优先将该可用的弹幕轨道确定为主态弹幕的目标弹幕轨道,即优先对主态弹幕进行渲染,使得用户能够优先看到自己发送的弹幕,带给用户更好的使用体验。
230.值得注意的是,本技术实施例判断待显示弹幕是否是主态弹幕是在进行了前述一系列判断之后执行的,在本技术另一些实施例中,可以在确定待显示弹幕的显示方向后,先判断待显示弹幕是否是主态弹幕,若是且弹幕轨道数组中存在可用的弹幕轨道,可以从弹
幕轨道数组中选择显示方向为正向的弹幕轨道作为目标弹幕轨道,若是且弹幕轨道数组中不存在可用的弹幕轨道,可以将主态弹幕存储至缓存队列,在有可用的弹幕轨道的情况下,优先渲染该主态弹幕;若否,执行识别当前弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同的步骤。
231.也就是说,识别待显示弹幕是否是主态弹幕可以是确定目标弹幕轨道时执行的第一个操作,也可以是在执行上述各个判断操作的过程中执行的操作,本技术实施例对此不做限定。
232.在本技术一些实施例中,在当前弹幕轨道是指定弹幕轨道的情况下,若待显示弹幕不是主态弹幕,说明该待显示弹幕不是登录客户端的用户自己发的,在没有其他弹幕轨道可以显示该待显示弹幕的情况下,可以将该待显示弹幕删除,能够减少服务端的存储压力和客户端的弹幕渲染压力。
233.需要说明的是,上述记载的是在当前弹幕轨道对应的显示方向和待显示弹幕的显示方向不同的情况下执行的操作,接下来对当前弹幕轨道对应的显示方向和待显示弹幕的显示方向相同的情况下执行的操作进行说明。
234.在本技术一个或多个实施例中,弹幕信息可以包括弹幕数量;根据当前弹幕轨道中的弹幕信息,从弹幕轨道数组中确定目标弹幕轨道的具体实现可以包括:根据弹幕数量识别当前弹幕轨道中是否有弹幕;若否,则将当前弹幕轨道确定为目标弹幕轨道。
235.也就是说,在当前弹幕轨道对应的显示方向与待显示弹幕的显示方向相同,即当前弹幕轨道可能能够显示该待显示弹幕的情况下,需要进一步判断该当前弹幕轨道中是否有足够的位置显示该待显示弹幕,因此,可以根据弹幕数量识别当前弹幕轨道中是否有弹幕,若没有,该当前弹幕轨道必然能够显示该待显示弹幕,则将该当前弹幕轨道确定为目标弹幕轨道。
236.作为一种示例,在直播过程中,服务端会不断接收到用户发送的待显示弹幕,并确定待显示弹幕的弹幕类型,将携带弹幕类型的待显示弹幕发送至客户端,即客户端会不断接收到携带弹幕类型的待显示弹幕,然后通过本技术提供的方式确定待显示弹幕的目标弹幕轨道,因此,每个目标弹幕轨道中待显示弹幕的弹幕数量可以直接获取,即可以根据当前弹幕轨道的轨道标识获取到当前弹幕轨道中的弹幕数量,若该弹幕数量为0,说明该弹幕轨道中没有弹幕,因此,可以将该弹幕轨道确定为显示该待显示弹幕的目标弹幕轨道。
237.作为另一种示例,若根据弹幕数量确定当前弹幕轨道中有弹幕,可以认为该当前弹幕轨道中没有位置显示该待显示弹幕,因此,可以返回执行识别当前弹幕轨道的下一个弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同的步骤。
238.本技术实施例中,在当前弹幕轨道对应的显示方向与待显示弹幕的显示方向相同时,没有直接将当前弹幕轨道确定为目标弹幕轨道,而是根据弹幕数量确定当前弹幕轨道中是否有弹幕,在没有的情况下才将当前弹幕轨道确定为目标弹幕轨道,且在当前弹幕轨道中有弹幕的情况下,重新判断下一个弹幕轨道,而不将当前弹幕轨道确定为目标弹幕轨道,能够避免确定的目标弹幕轨道没有位置显示待显示弹幕,或者能够显示待显示弹幕的时间发弹幕的时间相隔较远造成弹幕延迟的问题,提高了确定目标弹幕轨道的准确性。
239.在本技术一个或多个实施例中,在根据弹幕数量识别当前弹幕轨道中是否有弹幕之后,还包括:
240.若是,则确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值;
241.若达到,则根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道。
242.其中,预设阈值可以是占弹幕轨道可显示弹幕数量的百分比,可以由用户根据实际需求进行设置,也可以由设备默认设置,本技术实施例对此不作限定。例如,预设阈值可以是弹幕轨道可显示弹幕数量的90%、95%、100%等等。
243.作为一种示例,在对弹幕进行渲染时,可以将弹幕轨道中每个弹幕的渲染情况进行记录,并与弹幕轨道的轨道标识对应存储。因此,此处可以根据当前弹幕轨道的轨道标识确定该当前弹幕轨道中弹幕的渲染情况,根据弹幕的渲染情况确定完成渲染的弹幕数量。
244.在一些实施例中,若当前弹幕轨道中有弹幕,如果完成渲染的弹幕数量比较多的话,则当前弹幕轨道可能没有位置显示该待显示弹幕,因此,需要判断当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值,若达到,说明当前弹幕轨道没有位置显示该待显示弹幕,因此,可以返回执行根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道。
245.在另一些实施例中,若当前弹幕轨道中有弹幕,可以判断当前弹幕轨道中最后一个弹幕轨道是否渲染完成,若没有,则当前弹幕轨道需要等待才能被渲染显示,为了避免弹幕显示延迟,则不将当前弹幕轨道确定为目标弹幕轨道,而是返回执行根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的步骤。
246.本技术实施例中,在当前弹幕轨道中有弹幕且完成渲染的弹幕数量达到预设阈值的情况下,可以认为该当前弹幕轨道中没有位置用来显示该待显示弹幕,或者需要等待较长时间才能显示该待显示弹幕,因此,可以执行根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的步骤。如此,能够避免待显示弹幕显示延迟导致用户观看效果差,且避免待显示弹幕被删除导致用户没有看到自己的弹幕,提高了用户的观看体验。
247.在本技术一个或多个实施例中,在确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值之后,还包括:
248.若未达到,则确定待显示弹幕中第一个字符的显示时间是否晚于目标弹幕中最后一个字符的显示时间,其中,目标弹幕为当前弹幕轨道中完成渲染的最后一个弹幕;
249.若晚于,则确定当前弹幕轨道为目标弹幕轨道。
250.也就是说,若当前弹幕轨道中完成渲染的弹幕数量没有达到预设阈值,说明该当前弹幕轨道中可能还有位置能够用来显示该待显示弹幕,由于为待显示弹幕确定目标弹幕轨道后,客户端便会渲染该待显示弹幕,为了避免两个弹幕的显示出现重叠,需要判断待显示弹幕中第一个字符的显示时间是否晚于完成渲染的最后一个弹幕中最后一个字符的显示时间,若晚于,则说明当下开始渲染待显示弹幕不会与之前的弹幕重叠,因此,可以将该当前弹幕轨道确定为目标弹幕轨道。
251.在一些实施例中,若待显示弹幕中第一个字符的显示时间早于目标弹幕中最后一个字符的显示时间,则待显示弹幕应该在目标弹幕未完全显示的情况下显示,则会造成待显示弹幕与目标弹幕重叠的情况,因此,虽然不能将当前弹幕轨道确定为目标弹幕轨道,但也不用将待显示弹幕删除,可以返回执行根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的步骤。如此,能够避免弹幕重叠,造成弹幕显示混乱。
252.本技术实施例中,在当前弹幕轨道中完成渲染的弹幕数量未达到预设阈值的情况下,若待显示弹幕中第一个字符的显示时间晚于目标弹幕中最后一个字符的显示时间,则待显示弹幕会在目标弹幕显示完之后显示,则将当前弹幕轨道确定为目标弹幕轨道,能够避免弹幕重叠的情况出现。
253.需要说明的是,通过上述一系列流程,已经能够为待显示弹幕确定号目标弹幕轨道。但在具体应用中,可能会存在弹幕显示区域发生变化的情况,则弹幕轨道也会发生变化,在此基础上,为了继续保持弹幕显示区域中不同显示方向的显示区域的显示比例,有些弹幕轨道的显示方向会发生变化,虽然变化后的显示方向与待显示弹幕的显示方向相同,但该弹幕轨道中可能还包括未显示的显示方向为变化之前的显示方向的弹幕,若在该弹幕轨道中显示该待显示弹幕,会出现弹幕重叠以及同一弹幕轨道中弹幕的显示方向不同的情况。
254.因此,在本技术一个或多个实施例中,弹幕信息包括弹幕的显示方向;在确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值之前,还包括:
255.确定目标弹幕的显示方向与待显示弹幕的显示方向是否相同,其中,目标弹幕为当前弹幕轨道中完成渲染的最后一个弹幕;
256.确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值,包括:
257.若目标弹幕的显示方向与待显示弹幕的显示方向相同,则确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值。
258.在一些实施例中,可以先判断当前弹幕轨道中最后一个弹幕的显示方向与待显示弹幕的显示方向是否相同,若相同,则可以认为该当前弹幕轨道不是显示方向发生变化的弹幕轨道,或者,当前弹幕轨道是显示方向发生变化的弹幕轨道且当前弹幕轨道中显示方向变化之前的弹幕已经全部显示完成,因此,才能确定该当前弹幕轨道可能能够用来显示待显示弹幕,然后再执行确定当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值的步骤。
259.在另一些实施例中,若当前弹幕轨道中最后一个弹幕的显示方向与待显示弹幕的显示方向不同,则可以认为该当前弹幕轨道是显示方向发生变化的弹幕轨道,且当前弹幕轨道中显示方向变化之前的弹幕没有全部显示完成,因此,不能在该当前弹幕轨道中显示该待显示弹幕,而是返回执行根据所述当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的步骤。
260.作为一种示例,假设当前弹幕轨道对应的显示方向是正向,用户将直播界面缩小后,为了保证弹幕显示区域针对不同显示方向的显示区域的比例不变,将当前弹幕轨道的显示方向调整为逆向,若待显示弹幕的显示方向也是逆向,则确定当前弹幕轨道的显示方向与待显示弹幕的显示方向相同,且通过上述判断确定当前弹幕轨道中有弹幕,再判断该当前弹幕轨道中最后一个弹幕的显示方向与待显示弹幕的显示方向是否相同,若是则将该当前弹幕轨道确定为目标弹幕轨道,若不是,则返回执行根据当前弹幕轨道是否为指定弹幕轨道的识别结果,确定目标弹幕轨道的步骤。
261.例如,参见图3,图3是根据本技术一实施例示出的一种弹幕轨道的示意图。假设目标直播间的弹幕显示区域包括10个弹幕轨道(图3中细线框包围的部分),其中6个是正向,4个是逆向,用户将直播界面缩小后,由于单个弹幕轨道的预设弹幕轨道宽度不变,因此,缩
小后的直播界面中仅包括5个弹幕轨道(图3中粗线框包围的部分),且其中弹幕轨道a的显示方向从逆向变成了正向,因此,若当前弹幕轨道是弹幕轨道a,待显示弹幕的显示方向是正向,则可以确定待显示弹幕的显示方向与待显示弹幕的显示方向相同,且弹幕轨道a中有弹幕,且该弹幕轨道a中最后一个弹幕的显示方向是逆向,则可以确定该弹幕轨道a中还有与该待显示弹幕的弹幕类型不同的弹幕未显示完成,若将该待显示弹幕显示在该弹幕轨道a中,会出现该待显示弹幕与该最后一个弹幕相向移动然后重叠的问题,导致弹幕显示出现混乱,因此,不在该弹幕轨道中显示该待显示弹幕,重新判断下一个弹幕轨道是否能够显示该待显示弹幕。
262.本技术实施例中,为了避免当前弹幕轨道的显示方向发生变化的情况导致弹幕显示重叠,可以在当前弹幕轨道中最后一个弹幕轨道的显示方向与待显示弹幕的显示方向相同的情况下,确定当前弹幕轨道为目标弹幕轨道,能够避免弹幕出现重叠,也能够避免同一个弹幕轨道中出现显示方向不同的弹幕(即不同弹幕类型的弹幕)的情况,提升了用户的观看体验。
263.需要说明的是,上述是以预设弹幕轨道宽度不变为例,在直播界面的尺寸发生变化的情况下,可能会出现弹幕轨道的显示方向发生变化的情况,但在另一些实现方式中,预设弹幕轨道的宽度可以随着直播界面的尺寸变化而成比例变化,该种情况下,弹幕轨道的显示方向不会发生变化,因此,可以不用执行判断当前弹幕轨道中最后一个弹幕与待显示弹幕的显示方向是否相同的步骤。
264.在本技术实施例中,先根据订阅类型和弹幕类型确定弹幕的显示方向,然后遍历弹幕轨道数组中的弹幕轨道,在当前弹幕轨道对应的显示方向与待显示弹幕的显示方向相同的情况下,根据当前弹幕轨道中是否有弹幕、当前弹幕轨道中完成渲染的弹幕数量是否达到预设阈值、待显示弹幕中第一个字符的显示时间是否晚于当前弹幕轨道中最后一个弹幕的最后一个字符的显示时间,判断是否可以将当前弹幕轨道确定为目标弹幕轨道,否则,在当前弹幕轨道不是最后一个弹幕轨道的情况下,继续判断下一个弹幕轨道是否可以作为目标弹幕轨道,在当前弹幕轨道是最后一个弹幕轨道的情况下,将登录客户端的用户自己发送的主态弹幕显示在显示方向为正向的弹幕轨道中。通过上述一层一层的判断,能够确定待显示弹幕的显示区域和显示方向,以将不同弹幕类型的弹幕以不同的显示方向显示在不同的显示区域内,实现对弹幕类型不同的弹幕的区分显示,避免了弹幕重叠交叉显示混乱的问题。
265.步骤206:基于目标显示方向,在目标直播间的目标显示区域中渲染待显示弹幕。
266.在本方案中,确定目标显示方向和目标显示区域后,可以将待显示弹幕以目标显示方向渲染显示在目标直播间直播界面中的目标显示区域。
267.在一些实施例中,为了进一步区分不同弹幕类型的待显示弹幕,还可以在弹幕的渲染样式上进行区分,因此,在基于目标显示方向,在目标直播间的目标显示区域中渲染待显示弹幕之前,还包括:
268.基于弹幕类型确定待显示弹幕的目标渲染样式;
269.相应地,基于目标显示方向,在目标直播间的目标显示区域中渲染待显示弹幕,包括:基于目标显示方向和目标渲染样式,在目标直播间的目标显示区域中渲染待显示弹幕。
270.其中,目标渲染样式是对待显示弹幕进行渲染的渲染样式。示例性地,目标渲染样
式可以包括颜色、字体、大小、特效等。
271.作为一种示例,可以预先设置弹幕类型与渲染样式的对应关系,然后根据弹幕类型确定待显示弹幕的目标渲染样式。例如,对于弹幕类型为a的待显示弹幕,目标渲染样式包括红色楷体,对于弹幕类型为b待显示弹幕,目标渲染样式包括蓝色宋体。
272.作为一种示例,确定目标渲染样式后,可以将目标显示方向、目标显示区域和目标渲染样式发送至目标客户端。例如,将目标渲染样式“红色、楷体”,目标显示方向“正向”和目标显示区域“目标弹幕轨道1”发送至目标客户端,则目标客户端以红色楷体在目标弹幕轨道1处渲染正向显示的待显示弹幕。
273.示例性地,订阅类型也可以称为用户阵营或直播间阵营,待显示弹幕的显示区域、显示方向、渲染样式可以称为待显示弹幕的显示形式。参见表2,表2是直播间阵营与待显示弹幕的显示形式的对应关系表。
274.表2直播间阵营与待显示弹幕的显示形式的对应关系表
[0275][0276][0277]
在上表中,若登录目标客户端的用户是a阵营的用户,则该直播间是a阵营直播间,若待显示弹幕是a阵营弹幕或主态弹幕,则该待显示弹幕以蓝色字体按照从右向左的移动方向显示在弹幕显示区域的上60%,若待显示弹幕是b阵营弹幕,则该待显示弹幕以红色字体按照从左向右的移动方向显示在弹幕显示区域的下40%;若登录客户端的用户是b阵营的用户,则该直播间是b阵营直播间,若待显示弹幕是b阵营弹幕或主态弹幕,则该待显示弹幕以红色字体按照从右向左的移动方向显示在弹幕显示区域的上60%,若待显示弹幕是a阵营弹幕,则该待显示弹幕以蓝色字体按照从左向右的移动方向显示在弹幕显示区域的下40%。
[0278]
例如,参见图4,图4是根据本技术一实施例示出的一种目标直播间显示弹幕的示意图。在图4中,该直播界面的弹幕显示区域包括15条弹幕轨道,前10条弹幕轨道的显示方向是正向,则前10条弹幕轨道中显示的是正向(从右向左)移动的弹幕,后5条弹幕轨道的显示方向是逆向,则后5条弹幕轨道中显示的是逆向(从左向右)移动的弹幕。
[0279]
示例性地,以目标直播间是ab阵营直播间为例,用户预先选择阵营a或阵营b,进入目标直播间后,服务端根据用户所属阵营类型(订阅类型)向用户推送a或b阵营对应的直播流,而待显示弹幕根据用户选择的阵营不同以相应的显示形式显示。如a阵营的用户看到与自己阵营相同的弹幕在直播界面上方显示且正向(从右向左)移动,而b阵营的弹幕在直播界面的下方显示且逆向(从左向右)移动,b阵营的用户看到与自己阵营相同的弹幕在直播界面的上方像是且正向(从右向左)移动,而a阵营的弹幕在直播界面的下方显示且逆向(从左向右)移动,能够确保不同阵营的弹幕在不同的显示区域以不同的显示方向显示,保证弹幕不交叉不重叠。
[0280]
本技术提供的弹幕显示方法,获取用户对目标直播间的订阅类型及目标直播间中待显示弹幕的弹幕类型;根据订阅类型和弹幕类型,确定待显示弹幕的目标显示参数,其中,该目标显示参数包括目标显示区域和目标显示方向,不同弹幕类型对应的显示区域、显示方向均不同;将目标显示参数发送至目标客户端,以使目标客户端基于目标显示方向,在目标直播间的目标显示区域中渲染待显示弹幕,其中,目标客户端为用户登录的客户端。通过上述方式,对于不同弹幕类型的弹幕,根据用户对目标直播间的订阅类型,将与用户同一阵营的弹幕和不同阵营的弹幕基于不同的显示方向在不同的显示区域显示,丰富了弹幕显示形式,而且,不同的显示方向能够对不同弹幕类型的待显示弹幕进行明显区分,在不同的显示区域还能够避免不同弹幕类型的弹幕重叠、交叉、显示混乱的问题,并且,登录客户端的用户能够清楚地看到不同阵营的用户发送的弹幕,提高了直播的趣味性,进而提升了用户体验。
[0281]
上述实施例是应用于客户端的弹幕显示方法的实施例,接下来介绍应用于服务端的弹幕显示方法的实施例。参见图5,图5是本技术一实施例示出的另一种弹幕显示方法的流程图,具体可以包括如下步骤:
[0282]
步骤502:接收当前直播间的待显示弹幕,确定当前直播间的直播间类型。
[0283]
其中,待显示弹幕是在观看当前直播间中直播的任意用户发送的弹幕。直播间类型包括普通和非普通两种。
[0284]
在本方案中,用户通过客户端进入直播间,并在直播间中发送弹幕,则服务端会接收到用户发送的弹幕,由于这些弹幕还未显示,因此称为待显示弹幕。对于普通类型的直播间来说,所有用户观看的直播内容是相同的,发送的弹幕也不区分阵营,均按照一般的弹幕显示方式显示即可。但对于非普通(如分阵营)类型的直播间来说,为了让用户能够区分与自己同阵营和不同阵营的弹幕,对于弹幕类型不同的待显示弹幕,可以采用不同方式显示。因此,可以先确定该待显示弹幕对应的当前直播间的直播间类型,进而确定如何显示该待显示弹幕。
[0285]
在一些实施例中,在接收到的待显示弹幕中可以携带直播间的直播间类型,则服务端可以通过解析该待显示弹幕确定当前直播间的直播间类型,即当前直播间是普通类型的直播间还是非普通类型的直播间。
[0286]
在另一些实施例中,在接收到的待显示弹幕中可以携带直播间的直播间标识,服务端可以记录有直播间类型与直播间标识的对应关系,则根据直播间标识可以确定当前直播间是普通类型还是非普通类型。
[0287]
本技术实施例中,由于普通类型的直播间和非普通类型的直播间采用不同的显示方式显示弹幕,因此在接收到待显示弹幕后,可以确定当前直播间的直播间类型,以便于后续确定如何显示该待显示弹幕。
[0288]
步骤504:若基于直播间类型确定当前直播间是目标直播间,确定待显示弹幕的弹幕类型,其中,目标直播间是具有订阅类型的直播间。
[0289]
在本技术实施例中,直播间类型是非普通类型的直播间可以称为目标直播间,若基于直播间类型确定当前直播间是目标直播间,则在显示该待显示弹幕时需要考虑用户阵营的问题,因此,可以确定待显示弹幕的弹幕类型。
[0290]
在一些实施例中,确定待显示弹幕的弹幕类型的具体实现可以包括:
[0291]
确定发送待显示弹幕的用户对目标直播间的订阅类型;
[0292]
基于订阅类型确定待显示弹幕的弹幕类型。
[0293]
也就是说,可以将发送待显示弹幕的用户对目标直播间的订阅类型确定为待显示弹幕的弹幕类型。例如,发送待显示弹幕的用户x选择的是目标直播间的a阵营,则可以确定待显示弹幕的弹幕类型是a。
[0294]
作为一种示例,用户通过客户端编辑针对目标直播间的待显示弹幕后,客户端将发送待显示弹幕的用户对目标直播间的订阅类型携带在待显示弹幕中发送至服务端,则服务端能够直接获取到用户对直播间的订阅类型,并将该订阅类型确定为待显示弹幕的弹幕类型。
[0295]
作为另一种示例,用户在通过客户端观看直播时会选择目标直播间的订阅类型,客户端检测到用户对订阅类型的选择操作后,可以将订阅类型、目标直播间的直播间标识和用户的用户标识发送至服务端,服务端将订阅标识、用户标识和直播间标识三者对应存储。在服务端接收到的待显示弹幕中携带直播间标识和发送待显示弹幕用户的用户标识的情况下,服务端可以基于用户标识和直播间标识确定待显示弹幕的弹幕类型。
[0296]
本技术实施例中,在确定当前直播间是分阵营的目标直播间的情况下,用户在当前直播间观看的直播内容由用户对目标直播间的订阅类型决定,且用户发送的待显示弹幕与用户观看的直播内容息息相关,则用户对目标直播间的订阅类型与用户发送的弹幕的弹幕类型是一致的,因此,可以将发送待显示弹幕的用户对目标直播间的订阅类型确定为待显示弹幕的弹幕类型,能够提高确定弹幕类型的准确性,并且,由服务端执行确定弹幕类型的操作,而客户端仅进行弹幕渲染操作,能够减少对客户端资源的占用,提高弹幕渲染效率。
[0297]
在另一些实施例中,可以根据待显示弹幕的弹幕内容确定待显示弹幕的弹幕类型。作为一种示例,可以从待显示弹幕的弹幕内容中提取关键词,将该关键词与各阵营对应的关键词库进行比对,若在某阵营的关键词库中存在与该关键词相似度很高的词语,则可以确定该待显示弹幕的弹幕类型是该阵营。例如,假设目标直播间有古代风格和现代风格两种阵营,待显示弹幕的弹幕内容是“这个古风的设计好美”,可以从中提取出关键词“古风”,由于“古风”与古代风格阵营的关键词库中的关键词“古代风格”相似度很高,则可以确定待显示弹幕的弹幕类型是古代风格阵营。
[0298]
本技术实施例中,由于不同阵营的用户观看的直播内容不同,则发送的待显示弹幕的弹幕内容也会有较大区别,因此,可以根据待显示弹幕的弹幕内容确定待显示弹幕的弹幕类型,提高确定待显示弹幕的弹幕类型的准确性。
[0299]
步骤506:将携带弹幕类型的待显示弹幕发送至目标客户端,其中,目标客户端是显示目标直播间的客户端。
[0300]
在本技术实施例中,服务端确定待显示弹幕的弹幕类型后,可以将弹幕类型携带在待显示弹幕中发送给目标客户端,使得目标客户端根据该弹幕类型对待显示弹幕进行显示。
[0301]
在一些实施例,在各个用户观看直播间的直播视频的情况下,用户可以通过客户端发送针对直播间的待显示弹幕,客户端可以将接收到的待显示弹幕发送给服务端,且在该待显示弹幕中携带直播间的直播间标识和发送弹幕用户的用户标识,服务端接收到该待
显示弹幕后,先根据直播间标识确定该直播间是普通类型直播间还是非普通类型的直播间(即目标直播间),若该直播间是目标直播间,再根据用户标识确定该用户对该目标直播间的订阅类型,将该订阅类型确定为待显示弹幕的弹幕类型。
[0302]
作为一种示例,参见图6,图6是根据本技术一实施例示出的一种服务端推送弹幕的示意图。用户通过客户端在直播间发送待显示弹幕,则服务端可以接收到待显示弹幕,且该待显示弹幕中携带直播间标识和用户标识,服务端包括弹幕后端服务和消息推送服务两个模块,弹幕后端服务模块用于根据直播间标识和用户标识确定直播间类型和弹幕类型,弹幕类型除了包括a阵营弹幕和b阵营弹幕外,还可以包括普通弹幕,消息推送服务用于将携带弹幕类型的待显示弹幕推送给客户端进行显示。
[0303]
例如,用户小明打开了目标直播间zhibojian,在客户端显示的订阅类型选择框中选择了订阅类型a,则服务端会存储有zhibojian、小明和订阅类型a的对应关系,则服务端能够确定用户小明对该目标直播间的订阅类型是订阅类型a。用户小华也在观看该目标直播间zhibojian的直播,并且他选择的是订阅类型b,则服务端会存储有zhibojian、小华和订阅类型b的对应关系,在用户小华在直播间标识为zhibojian的直播间发送了弹幕x之后,根据弹幕x中携带的直播间标识zhibojian可以确定该直播间是目标直播间,然后根据用户标识小华和订阅类型b的对应关系,能够确定用户小华发送的弹幕x的弹幕类型是b。然后服务端将弹幕类型b携带在弹幕x中发送至播放该目标直播间的直播的客户端,以便于客户端根据弹幕类型b对弹幕x进行显示。
[0304]
本技术实施例中,接收当前直播间的待显示弹幕,确定当前直播间的直播间类型,若基于直播间类型确定当前直播间是目标直播间,确定待显示弹幕的弹幕类型,再将携带弹幕类型的待显示弹幕发送至目标客户端显示。如此,能够根据待显示弹幕的弹幕类型,将与用户同一阵营的弹幕和不同阵营的弹幕区分显示,能够避免不同弹幕类型的弹幕重叠、交叉、显示混乱的问题,使得登录客户端的用户能够清楚地看到不同阵营的用户发送的弹幕,提高了直播的趣味性,进而提升了用户体验。
[0305]
需要说明的是,通过上述实施例的描述,能够将待显示弹幕显示在目标直播间的目标显示区域处,且该待显示弹幕以目标显示方向显示。并且,目标直播间播放直播视频的过程中,服务端可以不断向客户端推送直播流,由于直播流是实时的,待显示弹幕的渲染也是实时的,因此,可以在客户端确定待显示弹幕的目标显示参数的过程中,或者,可以在客户端基于目标显示参数渲染待显示弹幕的过程中,服务端向客户端推送直播流以在客户端的目标直播间不断进行直播。
[0306]
下述结合附图7,以本技术提供的弹幕显示方法在分阵营直播间的应用为例,对所述弹幕显示方法进行进一步说明。其中,图7是根据本技术一实施例示出的一种应用于分阵营直播间的弹幕显示方法的处理流程图,具体包括以下步骤:
[0307]
步骤702:获取目标直播间中用户所属的阵营和目标直播间中待显示弹幕的弹幕类型。
[0308]
例如,以用户小明登录的目标客户端中显示弹幕为例,假设用户小明在观看直播时选择的是a阵营,该待显示弹幕是小华发送的,且小华在观看直播时选择的是b阵营,则用户所属的阵营是a,待显示弹幕的弹幕类型是b。
[0309]
步骤704:根据用户所属的阵营和弹幕类型,确定待显示弹幕的显示方向。
[0310]
例如,用户所属的阵营a与弹幕类型b不相同,则待显示弹幕的显示方向是逆向(从左向右)。
[0311]
步骤706:判断当前弹幕轨道对应的显示方向与待显示弹幕的显示方向是否相同,若是,执行步骤708,若否,执行步骤718。
[0312]
例如,参见图3,假设当前弹幕轨道是图3中的第4条弹幕轨道,则当前弹幕轨道对应的显示方向是正向,可以确定当前弹幕轨道对应的显示方向与待显示弹幕的显示方向不相同,则执行步骤718。
[0313]
步骤708:判断当前弹幕轨道中是否有弹幕,若是,执行步骤710,若否,执行步骤716。
[0314]
步骤710:判断当前弹幕轨道中最后一个弹幕的显示方向与待显示弹幕的显示方向是否相同,若是,执行步骤712,若否,执行步骤718。
[0315]
步骤712:判断当前弹幕轨道中最后一个弹幕是否渲染完成,若是,执行步骤714,若否,执行步骤718。
[0316]
步骤714:判断待显示弹幕中第一个字符的显示时间是否晚于当前弹幕轨道中最后一个弹幕的最后一个字符的显示时间,若是,执行步骤716,若否,执行步骤718。
[0317]
步骤716:将当前弹幕轨道确定为目标弹幕轨道。
[0318]
继续上述举例,若第4条弹幕轨道中有弹幕,且最后一个弹幕的显示方向与待显示弹幕的显示方向相同,最后一个弹幕已渲染完成,且待显示弹幕中第一个字符的显示时间晚于当前弹幕轨道中最后一个弹幕的最后一个字符的显示时间,将第4条弹幕轨道确定为目标弹幕轨道。
[0319]
步骤718:判断当前弹幕轨道是否是弹幕轨道数组中最后一个弹幕轨道,若是,执行步骤720,若否,执行步骤726。
[0320]
继续上述举例,第4条弹幕轨道不是弹幕轨道数组中最后一个弹幕轨道,执行步骤726。
[0321]
步骤720:判断待显示弹幕是否是主态弹幕,若是,执行步骤722,若否,执行步骤724。
[0322]
步骤722:确定显示方向为正向的第一个弹幕轨道为目标弹幕轨道。
[0323]
步骤724:删除待显示弹幕。
[0324]
继续上述举例,若第4条弹幕轨道不是弹幕轨道数组中最后一个弹幕轨道,判断该待显示弹幕是否是小明发送的,若是,确定第1条弹幕轨道为目标弹幕轨道,若否,将该待显示弹幕删除。
[0325]
步骤726:以当前弹幕轨道的下一个弹幕轨道为新的当前弹幕轨道,返回执行步骤706。
[0326]
继续上述举例,以第5条弹幕轨道为新的当前弹幕轨道,返回执行步骤706。
[0327]
步骤728:基于目标弹幕轨道确定目标显示区域,并将目标弹幕轨道对应的显示方向确定为目标显示方向。
[0328]
步骤730:基于弹幕类型确定待显示弹幕的目标渲染样式。
[0329]
步骤732:基于目标渲染样式在目标直播间的目标弹幕轨道处渲染待显示弹幕。
[0330]
本技术提供的弹幕显示方法,获取目标直播间中用户所属的阵营和目标直播间中
待显示弹幕的弹幕类型,先根据用户所属的阵营和弹幕类型确定待显示弹幕的显示方向,然后遍历弹幕轨道数组中的弹幕轨道,在当前弹幕轨道对应的显示方向与待显示弹幕的显示方向相同的情况下,根据当前弹幕轨道中是否有弹幕、当前弹幕轨道中最后一个弹幕的显示方向与待显示弹幕的显示方向是否相同、当前弹幕轨道中最后一个弹幕是否渲染完成、以及待显示弹幕中第一个字符的显示时间是否晚于当前弹幕轨道中最后一个弹幕的最后一个字符的显示时间,判断是否可以将当前弹幕轨道确定为目标弹幕轨道,否则,在当前弹幕轨道不是最后一个弹幕轨道的情况下,继续判断下一个弹幕轨道是否可以作为目标弹幕轨道,在当前弹幕轨道是最后一个弹幕轨道的情况下,将登录客户端的用户自己发送的主态弹幕显示在显示方向为正向的弹幕轨道中。通过上述一层一层的判断,能够确定待显示弹幕的显示区域和显示方向,将与用户同一阵营的弹幕和不同阵营的弹幕基于不同的显示方向在不同的显示区域显示,丰富了弹幕显示形式,而且,不同的显示方向能够对不同弹幕类型的待显示弹幕进行明显区分,在不同的显示区域还能够避免不同弹幕类型的弹幕重叠、交叉、显示混乱的问题,并且,登录客户端的用户能够清楚地看到不同阵营的用户发送的弹幕,提高了直播的趣味性,进而提升了用户体验。
[0331]
可选地,在根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流之后,还包括如下具体步骤:
[0332]
根据订阅类型,确定目标直播间的目标背景图;
[0333]
将目标背景图发送至目标客户端。
[0334]
目标背景图为对应多路直播流预先设定的对应背景图,会对目标直播间进行直播间的配置。例如,目标直播间可获取的多路直播流有:古风风格直播流、时尚风格直播流,对应古风风格的直播流,设定古风风格的背景图,对应时尚风格直播流,设定时尚风格直播流。
[0335]
目标客户端将目标背景图配置在目标直播间的背景显示区域上。
[0336]
具体地,根据订阅类型,确定目标直播间的目标背景图,将目标背景图发送至目标客户端。
[0337]
例如,根据订阅类型为9:00的xxx跨年晚会,确定9:00的xxx跨年晚会进行古风节目的直播,根据订阅类型“9:00”,确定目标直播间的目标背景图为古风风格的背景图,将古风风格的背景图发送至目标客户端。
[0338]
通过订阅类型,确定目标直播间的目标背景图,并在目标直播间上显示目标背景图可以让用户看到根据用户的订阅类型确定的目标背景图,丰富了目标直播间的直播内容,并且体现了对用户的适应性,提升了用户体验。
[0339]
图8示出了根据本技术一实施例提供的一种直播拉流方法的流程图,具体包括以下步骤:
[0340]
步骤802:接收用户对目标直播间的订阅类型。
[0341]
图8实施例应用于视频直播平台的客户端。
[0342]
具体地,在目标直播间显示多个订阅类型选项,接收用户对目标直播间的订阅类型。
[0343]
订阅类型是用户根据目标直播间显示的多个订阅类型选项,进行选择得到的订阅类型。
[0344]
例如,在目标直播间xxx新闻播放平台显示订阅类型:多路流房间类型、单路流房间类型,用户xx根据显示的订阅类型,选择多路流房间类型直播间。
[0345]
接收用户对目标直播间的订阅类型,为服务端确定对应的目标直播流奠定了参考基础。
[0346]
步骤804:将订阅类型发送至服务端。
[0347]
具体地,向服务端发送订阅请求,订阅请求包括用户对目标直播间的订阅类型。
[0348]
例如,向服务端发送订阅请求sub_request,订阅请求sub_request包括用户xx对目标直播间xxx新闻播放平台的订阅类型:多路流房间类型。
[0349]
将订阅类型发送至服务端,可以让服务段作为参考确定目标直播流,为后续接收服务端推送的目标直播流奠定了基础。
[0350]
步骤806:接收服务端推送的目标直播流,其中,目标直播流是服务端根据订阅类型确定的。
[0351]
目标直播流中包含流信息,客户端可以根据流信息在目标直播间上播放对应的直播内容。
[0352]
具体地,接收服务端推送的目标直播流,其中,目标直播流包括流信息。
[0353]
例如,接收服务端推送的目标直播流a流,其中,目标直播流包括流信息info_a。
[0354]
本技术一实施例实现了接收用户对目标直播间的订阅类型,将订阅类型发送至服务端,接收服务端推送的目标直播流,其中,目标直播流是服务端根据订阅类型确定的。使得目标直播间的播放内容不与目标直播流绑定,而是可以根据用户的目标直播间的订阅类型进行灵活调整,使得目标直播间的类型更多样,直播内容更为丰富、多样。
[0355]
可选地,步骤806之后,还包括如下具体步骤:
[0356]
识别到用户进入目标直播间时,在目标直播间中显示目标直播流。
[0357]
具体地,识别到用户进入目标直播间时,根据流信息,在目标直播间上播放目标直播流对应的直播内容。
[0358]
例如,识别到用户进入目标直播间时,根据流信息info_a,在目标直播间xxx新闻播放平台上播放目标直播流a流对应的直播内容:国内新闻。
[0359]
通过预先获取目标直播流,在识别到用户进入目标直播间时,显示目标直播流,使得用户不用再向服务端进行目标直播流拉流,就可以直接显示目标直播流,提升了用户体验。
[0360]
可选地,本技术直播拉流方法的实施例,还包括如下具体步骤:
[0361]
接收服务端发送的目标显示参数,其中,目标显示参数是服务端根据订阅类型和弹幕类型确定的;
[0362]
基于目标显示参数,在目标直播流中渲染目标直播间中的待显示弹幕。
[0363]
渲染待显示弹幕的渲染方式为,基于目标显示参数,通过预先设定的渲染模板对待显示弹幕进行渲染。
[0364]
具体地,接收服务端发送的目标显示参数,基于目标显示参数,通过预先设定的渲染模板对待显示弹幕进行渲染。
[0365]
例如,接收服务端发送的目标显示参数{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}。
基于目标显示参数,通过预先设定的渲染模板对待显示弹幕“a阵营加油”进行渲染。
[0366]
接收服务端发送的目标显示参数,并根据目标显示参数在目标直播流中渲染待显示弹幕,丰富了目标直播间的直播内容,提升了用户体验。
[0367]
可选地,在目标直播间中显示目标直播流的步骤之前,还包括如下具体步骤:
[0368]
接收服务端发送的目标背景图,其中,目标背景图是服务端根据订阅类型确定的;
[0369]
在目标直播间显示目标背景图。
[0370]
在目标直播间显示目标背景图具体为:在目标直播间的背景显示区域上显示目标背景图。
[0371]
背景显示区域为目标直播间中除了播放窗口、评论显示区域、推荐内容区域之外的显示区域,可以位于目标直播间的顶部、也可以位于目标直播间的底部,还可以位于目标直播间的显示图层的底层区域。
[0372]
具体地,接收服务端发送的目标背景图,在目标直播间的背景显示区域上显示目标背景图。
[0373]
例如,接收服务端发送的古风风格的背景图,在目标直播间的背景显示区域上显示古风风格的背景图。
[0374]
接服务端发送的目标背景图,在目标直播间上显示目标背景图,丰富了目标直播间的直播内容,并且体现了对用户的适应性,提升了用户体验。
[0375]
下述结合附图9,以本技术提供的直播推流方法在直播推流的应用为例,对所述直播推流方法进行进一步说明。其中,图9示出了本技术一实施例提供的一种应用于视频直播平台系统的直播推流方法的处理流程图,具体包括以下步骤:
[0376]
步骤902:服务端向分发系统发送查询请求,分发系统查找房间类型配置列表中的目标直播间的房间类型,其中,查询请求包括目标直播间的房间标识。
[0377]
本技术实施例应用于视频直播平台系统,包括:服务端、客户端、分发系统。服务端为xx视频直播平台的服务端,客户端为xx视频直播平台在xx移动终端的操作系统上的客户端,分发系统上记录有xx视频直播平台上直播间、直播时间段与房间类型的房间类型配置列表。
[0378]
目标直播间为xxx活动直播间,xxx活动直播间的房间标识为“xxx活动”。
[0379]
xxx活动直播间的房间类型为多路流房间类型。
[0380]
xx视频直播平台的服务端向分发系统发送查询请求,分发系统查找房间类型配置列表中的目标直播间的房间类型“多路流房间类型”,其中,查询请求包括xxx活动直播间的房间标识“xxx活动”。
[0381]
步骤904:服务端接收分发系统反馈的查询结果,其中,查询结果携带目标直播间的房间类型。
[0382]
xx视频直播平台的服务端接收分发系统反馈的查询结果,其中,查询结果携带xxx活动直播间的房间类型,房间类型为多路流房间类型。
[0383]
步骤906:服务端通过客户端获取用户对目标直播间的订阅类型。
[0384]
用户a预先在xx移动终端的操作系统上的客户端上,对xxx活动直播间进行相关订阅。
[0385]
用户a对xxx活动直播间的订阅类型为“20:00-1:00,a流,xxx活动”。
[0386]
xx视频直播平台的服务端通过xx移动终端的操作系统上的客户端获取用户a对xxx活动直播间的订阅类型“20:00-1:00,a流,xxx活动”。
[0387]
步骤908:服务端根据直播流时空标识,确定目标直播时间段,从目标直播时间段的多路直播流中获取订阅类型对应的目标直播流。
[0388]
多路直播流包括a流、b流、c流。
[0389]
订阅类型“20:00-1:00,a流,xxx活动”中的直播流时空标识为“20:00-1:00”。
[0390]
xx视频直播平台的服务端根据直播流时空标识“20:00-1:00”,确定目标直播时间段为20:00-1:00,从20:00-1:00的多路直播流a流、b流、c流中获取订阅类型“20:00-1:00,a流,xxx活动”对应的目标直播流a流。
[0391]
步骤910:服务端获取用户在客户端的目标直播间中输入的待显示弹幕的弹幕类型。
[0392]
用户a在客户端的xxx活动直播间中输入的待显示弹幕为“233333”。
[0393]
待显示弹幕的弹幕类型为“a流弹幕类型”。
[0394]
xx视频直播平台的服务端获取用户a在客户端的xxx活动直播间中输入的待显示弹幕“233333”的弹幕类型“a流弹幕类型”。
[0395]
步骤912:服务端根据订阅类型和弹幕类型,确定待显示弹幕的目标显示参数。
[0396]
弹幕类型为“a流弹幕类型”的待显示弹幕的目标显示参数是{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}。
[0397]
xx视频直播平台的服务端根据订阅类型“20:00-1:00,a流,xxx活动”和弹幕类型“a流弹幕类型”,确定待显示弹幕的目标显示参数{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}。
[0398]
步骤914:服务端根据订阅类型,确定目标直播间的目标背景图。
[0399]
目标直播间的目标背景图为a流对应xxx活动背景图。
[0400]
xx视频直播平台的服务端根据订阅类型“20:00-1:00,a流,xxx活动”,确定xxx活动直播间的目标背景图为a流对应xxx活动背景图。
[0401]
步骤916:服务端将目标显示参数和目标背景图发送至客户端,将目标直播流推送至客户端。
[0402]
xx视频直播平台的服务端将目标显示参数{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}和a流对应xxx活动背景图发送至xx移动终端的操作系统上的客户端,将目标直播流a流推送至xx移动终端的操作系统上的客户端。
[0403]
步骤918:客户端在目标直播间中显示目标直播流和目标背景图,其中,目标直播流带有经过客户端基于目标显示参数渲染的待显示弹幕。
[0404]
xx移动终端的操作系统上的客户端在xxx活动直播间显示目标直播流a流和xxx活动背景图,其中,目标直播流a流带有经过客户端基于目标显示参数{待显示弹幕的弹幕轨迹:从右往左;待显示弹幕的弹幕文本样式:红色,加粗;待显示弹幕的显示区域:目标直播间显示区域上方}渲染的待显示弹幕“233333”。
[0405]
本技术实施例中,首先,服务端通过分发系统查询得到目标直播间的房间类型,对
目标直播间进行了分类和统一房间标识标注,使得用户可以订阅同一时间的不同直播内容,并且在不同系统上都可以准确通过目标直播间显示目标直播流。其次,根据用户对目标直播间的订阅类型获取多路直播流中的目标直播流,使得目标直播间的可显示直播流会根据用户的目标直播间的订阅类型进行灵活调整,使得目标直播间的直播内容更为丰富、多样。最后,根据订阅类型对待显示弹幕进行渲染,并确定目标背景图,丰富了目标直播间的直播内容,并且体现视频直播平台了对用户的针对性配置,提升了用户体验。
[0406]
图10示出了本技术一实施例提供的一种应用于视频直播平台系统的直播推流方法和直播拉流方法的数据处理流程图。
[0407]
导播台分发多路直播流a流、a流备用、b流、b流备用,对应每一路直播流确定一个源站(源站1,源站2,源站3
……
),每一个源站的每一路直流进行转码(800,1500,2500
……
),然后将转码完成的直播码流分配给应用程序入口,来让用户通过客户端的直播房间获取对应的直播码流,进行显示。应用程序入口包括直播流量场景入口、主站流量场景入口和其他流量场景入口。其中,直播流量场景为列表场景,即在用户进入直播间前确定的用户订阅直播流的地址。用户通过应用程序各个入口进入直播间,应用直播间包括播放区、背景区和互动区。播放区会对应播放系统,背景区对应背景图,互动区对应用户可以进行互动的弹幕和礼物。基于用户在直播间的操作和应用入口连接的应用程序各个项目前后端以及服务层,通过播放控制软件开发包,为用户提供直播间的主房间服务、视频服务和其他服务。
[0408]
与上述方法实施例相对应,本技术还提供了直播推流装置实施例,图11示出了本技术一实施例提供的一种直播推流装置的结构示意图。如图11所示,该装置包括:
[0409]
获取模块1102,被配置为获取用户对目标直播间的订阅类型;
[0410]
目标直播流确定模块1104,被配置为根据订阅类型,从多路直播流中获取订阅类型对应的目标直播流,其中,多路直播流包括同一直播时间段内的不同直播流;
[0411]
推送模块1106,被配置为将目标直播流推送至目标客户端,其中,目标客户端为用户登录的客户端。
[0412]
可选地,目标直播流确定模块1104可以被进一步配置为:
[0413]
根据直播流时空标识,确定目标直播时间段,从目标直播时间段的多路直播流中获取订阅类型对应的目标直播流。
[0414]
可选地,该装置还包括:
[0415]
房间类型识别模块,被配置为识别目标直播间的房间类型;
[0416]
对应地,获取模块1102被进一步配置为:
[0417]
若房间类型为多路流房间类型,则获取用户对目标直播间的订阅类型。
[0418]
可选地,房间类型识别子模块被进一步配置为:
[0419]
向分发系统发送查询请求,其中,查询请求包括目标直播间的房间标识;
[0420]
接收分发系统反馈的查询结果,其中,查询结果携带目标直播间的房间类型。
[0421]
可选地,该装置还包括:
[0422]
主直播流确定模块,被配置为若房间类型为单路流房间类型,则确定主直播流;
[0423]
主直播流显示模块,被配置为将主直播流推送至目标客户端。
[0424]
可选地,该装置还包括:
interface controller))中的一个或多个,诸如ieee802.13无线局域网(wlan,wireless local area network)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave acess)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)接口,等等。
[0445]
在本技术的一个实施例中,计算设备1300的上述部件以及图13中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图13所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0446]
计算设备1300可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备1300还可以是移动式或静止式的服务器。
[0447]
其中,处理器1320执行所述计算机指令时实现所述的直播推流方法和直播拉流方法的步骤。
[0448]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的直播推流方法和直播拉流方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述直播推流方法和直播拉流方法的技术方案的描述。
[0449]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述直播推流方法和直播拉流方法的步骤。
[0450]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的直播推流方法和直播拉流方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述直播推流方法和直播拉流方法的技术方案的描述。
[0451]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0452]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
[0453]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0454]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0455]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1