CN109862414B - 一种蒙版弹幕显示方法、装置及服务器 - Google Patents

一种蒙版弹幕显示方法、装置及服务器 Download PDF

Info

Publication number
CN109862414B
CN109862414B CN201910222579.9A CN201910222579A CN109862414B CN 109862414 B CN109862414 B CN 109862414B CN 201910222579 A CN201910222579 A CN 201910222579A CN 109862414 B CN109862414 B CN 109862414B
Authority
CN
China
Prior art keywords
bullet screen
screen
human body
area
mask
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
Application number
CN201910222579.9A
Other languages
English (en)
Other versions
CN109862414A (zh
Inventor
周志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201910222579.9A priority Critical patent/CN109862414B/zh
Publication of CN109862414A publication Critical patent/CN109862414A/zh
Application granted granted Critical
Publication of CN109862414B publication Critical patent/CN109862414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例公开了一种蒙版弹幕显示方法、装置及服务器,属于弹幕技术领域。该方法包括:接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;标识所述人体区域中的蒙版区域后,获取弹幕服务器弹幕,在所述弹幕的弹幕协议中添加特定属性,设置弹幕经过所述蒙版区域的显示逻辑,再将弹幕分发到客户端。通过该技术方案,减少带宽及运算资源占用,降低客户端进行蒙版弹幕展示时的负担,有效避免弹幕对主播的遮挡,在提升用户观看体验的同时保障观看的流畅性。

Description

一种蒙版弹幕显示方法、装置及服务器
技术领域
本发明涉及弹幕技术领域,尤其涉及一种蒙版弹幕显示方法、装置及服务器。
背景技术
用户在观看直播过程中,在观看人数较多时,经常会遇到大量弹幕刷屏,这样直播画面会被弹幕遮挡,影响用户正常观看。若选择直接关闭弹幕,观看体验不佳,而设定弹幕顶部显示,在弹幕数量过多时,会短时导致弹幕与直播内容不相关。
目前,针对这种大量弹幕遮挡主播的问题,已经公开的技术是预先在视频的特定区域添加蒙版,使弹幕在通过该蒙版区域时不展示,只要主播处在设定的蒙版区域就不会被弹幕遮挡。这种方案由于不仅需要在直播视频流中添加蒙版信息,占用客户端的网络带宽,而且客户端还需要在弹幕通过蒙版区域时进行逻辑计算,大大增加客户端运算负担,影响用户的观看体验。
发明内容
有鉴于此,本发明实施例提供了一种蒙版弹幕显示方法、装置及服务器,可以减少对客户端的带宽及硬件资源占用,避免弹幕遮挡主播并保证用户观看的流畅度。
结合本发明实施例的第一方面,提供了一种蒙版弹幕显示方法,包括:
接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
标识所述人体区域中的蒙版区域;
从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
将所述弹幕分发至客户端。
结合本发明实施例的第二方面,提供了一种用于实现蒙版弹幕显示的装置,包括:
检测模块,用于接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
标识模块,用于标识所述人体区域中的蒙版区域;
设置模块,用于从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
分发模块,用于将所述弹幕分发至客户端。
结合本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述方法的步骤。
本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被一个或多个处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例中,通过基于深度学习的人体分割模型检测划分人体区域,然后标注人体区域中对应的蒙版区域,再获取弹幕服务器中弹幕,在弹幕协议中添加特定属性,设定弹幕经过蒙版区域的显示逻辑,然后将弹幕分发但客户端。在该方案中,基于深度学习模型可以准确确定人体区域,进而保证蒙版区域的准确划分。而在服务端通过对弹幕添加特定属性,实现弹幕蒙版展示,避免客户端进行弹幕蒙版显示的复杂运算,同时,由于服务端直接分发蒙版显示的弹幕,可以避免传统在直播视频流中添加蒙版信息对网络带宽的占用,通过本发明实施例提供的方案,可以大大降低客户端进行蒙版弹幕展示时的负担,减少不必要的带宽及CPU、内存等资源占用,保障用户观看流畅度的同时,避免弹幕对主播的遮挡,提升观看体验。
附图说明
图1是本发明实施例一提供的一种蒙版弹幕展示方法的流程图;
图2是本发明实施例二提供的一种蒙版弹幕展示方法的另一流程示意图;
图3是本发明实施例三提供的一种蒙版弹幕展示方法的另一流程示意图;
图4是本发明实施例四提供的一种蒙版弹幕展示方法的另一流程示意图;
图5是本发明实施例五提供的一种用于实现蒙版弹幕展示的装置的结构示意图;
图6是本发明实施例六提供的一种服务器的结构示意图。
具体实施方式
本发明实施例提供了一种蒙版弹幕展示方法、装置及服务器,用于准确合理确定弹幕蒙版区域,减少客户端负担,提升用户观看直播体验。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参阅图1,本发明实施例提供的直播热点获取方法的流程示意图,包括:
S101、接收到直播间视频流后,通过基于深度学习的人体分割模型检测所述直播间视频流的关键帧中的人体区域;
所述直播视频流为主播客户端将直播视频画面传输到平台服务器的视频数据,在所述直播视频流中,包含有一帧帧视频画面,即关键帧。通过视频流可以实现音频、视频数据在互联网上无需下载而能进行播放。所述直播视频流传送到平台服务器后,进过平台的CDN服务器分发到各用户客户端,客户端接收直播视频流数据解码观看。
所述人体分割模型为基于深度学习的识别模型,通过对直播中人体特征的学习来实现人体检测,如通过采集直播人体图像,对卷积神经网络进行训练,得到识别模型,实现人体区域的分割。通过所述人体分割模型可以标注视频流中,每帧图像的人体区域。优选的,对于间隔一定时间间隔,如1s(秒),检测人体区域,可以避免频繁检测间隔每帧图像降低识别效率。
所述人体区域即直播画面中主播人体所占区域,如头部、身体及躯干等,作为优选的,在本发明实施例中可以设定人体区域在直播画面中达到一定占比或直播画面中包含有头部区域才标注为人体区域,这样可以不影响用户观看同时避免不必要蒙版添加。
可选的,获取客户端播放设备的屏幕尺寸;将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置,其中,每条弹幕高度为所述方格高度的整数倍。
可选的,当通过基于深度学习的人体分割模型检测到方格中存在人体覆盖,则在二维数组中将对应的方格标识为人体区域。
S102、标识所述人体区域中的蒙版区域;
所述蒙版区域指直播画面中特定的选区,在该选区中可以设计弹幕特定的显示效果,如透明显示、字体颜色变化等。
优选的,预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域。
在直播视频流的每个关键帧中,都可能会有弹幕存在,通过所述人体分割模型检测出每个关键帧中的人体区域的同时,获取并计算对应的关键帧中弹幕的覆盖(一般根据屏幕大小,弹幕大小是固定的)。具体的,在每个关键帧中检测并标注人体区域后,服务器同时获取每个关键帧对应播放量,计算弹幕在每个关键帧中占有的区域,根据每个关键帧中同一帧画面上弹幕占有区域与人体区域重叠,实时标注重叠部分可以作为蒙版区域。
所述蒙版区域即选区以外部分,在本发明实施例中,所述蒙版区域即选定的不进行弹幕展示的区域,所述蒙版区域可以等于人体区域,也可以小于人体区域,具体可以根据弹幕是否会覆盖到人体区域确定。
可选的,设定每条弹幕由屏幕顶部向底部覆盖,在每条弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;根据每个关键帧中对应的弹幕播放数量,计算每个关键帧中弹幕覆盖区域。
进一步的,遍历检测所述弹幕覆盖区域与所述人体区域是否存在重叠;当检测到所述弹幕覆盖区域与所述人体区域存在重叠时,将重叠区域标识为蒙版区域。在检测弹幕区域与人体区域重叠是,对重叠区域进行特定标识,通过识别特定标识,快速得到蒙版区域范围。
S103、从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
所述弹幕服务器用于管理视频直播中的弹幕,包括接收用户发送的弹幕后向所有用户进行统一分发展示。在本实施例中,通过与弹幕服务器通信,具体可通过TCP长连接与弹幕服务器建立socket连接,读取到直播中的不同时刻产生的弹幕。
所述弹幕协议中包含有弹幕基本内容格式,一般由若干属性特征组成,如弹幕内容、发送者昵称、发送时刻等,在弹幕协议中增加特定属性,可以由弹幕携带蒙版展示信息,客户端解析所述预定属性的属性值,即可实现弹幕的蒙版展示。
所述预定属性用于设置弹幕在蒙版区域的显示形式,即显示逻辑,预先定义的规则,客户端通过解析得到所述预定属性的属性值,使弹幕进行对应的效果显示,如设定弹幕通过蒙版区域时不显示,在所述特定属性中设定不显示时长及不显示起始时间,客户端通过解析该特定属性的属性值,可在终端屏幕设置弹幕在蒙版区域不展示。
可选的,当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加时间域字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的值时,在所述时间域字段的预设时长范围内,所述弹幕在所述蒙版区域中不显示。
所述弹幕协议中包含有弹幕基本属性,如弹幕发送时间,通过在弹幕协议中添加特定属性,在客户端解析该特定属性值,设置对应的显示效果。具体的,所述特定属性以字段形式直接在弹幕协议中添加,对应的弹幕中可以设定字段值,如设定时间域字段的时长、起始时间字段的起始时间等。
可选的,当检测到弹幕通过的所述蒙版区域时,在所述弹幕中至少添加距离字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的值时,在所述距离字段的预设长度范围内,设定所述弹幕以极快速度通过,其中,所述预设长度等于所述弹幕经过的蒙版区域的长度。
优选的,在系统关键帧更新的update接口中,根据当前关键帧与上一个关键帧的调用时间间隔,通过预定义变量记录预定弹幕控件在终端屏幕移动时间。所述预定弹幕控件用于放置弹幕内容,并在终端界面展示,所述移动时间即弹幕播放时间。根据系统update接口及传入参数视频帧刷新时间间隔,可以记录每个弹幕在终端屏幕播放时间。
S104、将所述弹幕分发至客户端。
所述客户端一般为终端设备上的应用程序,如斗鱼APP,也可以是浏览器网页上观看对应的客户端。当用户打开对应的直播间,平台分发服务器将对应直播间视频流分发到各当前观看的客户端。所述蒙版弹幕展示即在直播画面特定的蒙版区域或特定的人体区域不进行弹幕展示。
在实施例的技术方案中,通过人体分割模型识别检测人体区域,相较于传统直接设定蒙版区域,划分的蒙版更准确合理,可以根据主播是否在直播画面,以及在画面中位置任意调整,提升用户体验。通过弹幕协议中增加特定属性,设定弹幕展示逻辑,可以通过弹幕携带蒙版信息,避免直接添加到直播视频流中占用网络带宽,保障观看的流畅性,而且客户端直接解析弹幕中的特定属性,即可进行蒙版弹幕展示,避免客户端进行复杂的弹幕蒙版展示计算,减少对终端资源占用。
实施例二
图2为本发明实施例二提供的蒙版弹幕展示方法的另一流程示意图,在实施例一的基础上,对步骤S101识别人体区域进行详细描述,包括如下:
在实际添加弹幕蒙版时,一般蒙版区域划分的愈加细致,相应的蒙版信息量也会大幅增加,此时,过多的蒙版信息会占用较大的网络带宽,而且在直播展示时,蒙版精确到主播人体细节,如衣领、手指,也是毫无必要的。有鉴于此,需要既考虑蒙版区域划分的准确,也要考虑过多细节带来蒙版信息过多的问题,因此,在本实施例中,采用屏幕分格,标注人体区域。
S201、将屏幕划分为相同大小方格,建立二维数组标识方格位置;
具体的,获取客户端播放设备的屏幕尺寸;将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置,其中,每条弹幕高度为所述方格高度的整数倍。所述屏幕尺寸为直播视频界面全屏播放时播放设备的屏幕尺寸,当非全屏播放状态下,则需要进一步获取直播界面播放窗口的尺寸,该尺寸一般为预先设定的大小,或预先设定的屏幕占比。
所述相同大小方格一般单位为像素,假设屏幕大小为960*540,可以设定方格大小为5*5,则整个屏幕可以被分割为192(960/5)行*108(540/5)列,由此可以建立一个二维坐标,通过二维数组标识方格位置。示例性的,屏幕的整个大小本文用一个二维数组来标示。
Char screen[x][y]={0};其中x=192,y=108。
需要注意的是,一般弹幕显示区域(或弹幕)高度为方格高度的整数倍,如弹幕显示区域为5*10,弹幕字体是10个像素的高度,而弹幕长度则是依据弹幕的字数多少决定。
S202、检测人体覆盖,标识方格是否为人体区域。
具体的,当通过基于深度学习的人体分割模型检测判断每个方格中存在人体覆盖,则将对应的方格标识为人体区域。所属人体分割模型可以识别检测关键帧中的人体区域,检测到人体区域后,通过和屏幕方格匹配,判断每个方格中是否存在人体遮挡,若存在人体遮挡,则将对应的方格标识为人体区域。
示例性的,如果有人体覆盖,则将二维数组中对应位置的方格标注为1,没有覆盖,则标注为零。遍历所有为1的标识,即可确定人体区域。
在本发明实施例中,基于屏幕的分格,借助人体分割模型,确定人体区域所占分割,既可以避免过于精细的人体划分产生过多的蒙版信息,同时保障人体区域划分的准确,可以准确合理确定蒙版区域,提升观看体验。
实施例三
图3为本发明实施例三提供的蒙版弹幕展示方法的另一流程示意图,在实施例一的基础上,对步骤S102中蒙版区域标注进行进一步进行描述,其包括如下:
作为优选的,所述步骤S102中预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域。
一般的,人体区域可以直接标注为蒙版区域,但是,当弹幕较少时,弹幕无法形成对人体的有效遮挡,此时添加整个人体的蒙版,既无必要,而且蒙版区域过大,也会占用一定的网络带宽。有鉴于此,本发明实施例中,定义弹幕由顶部向底部一排排进行弹幕播放覆盖,保障在上一排占满时,才在下一排进行弹幕播放。
S301、设定弹幕开始播放位置,计算弹幕覆盖区域;
具体的,设定每条弹幕由屏幕顶部向底部覆盖,在弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;根据每秒弹幕播放数量,计算关键帧中弹幕覆盖区域。预先定义弹幕由顶部开始覆盖,将整个屏幕划分为若干行,每一行中用于展示弹幕,按照弹幕发送时间,弹幕由最顶行开始占用覆盖。
示例性的,首先获取当前弹幕的整个内容的占据的大小,并且每个弹幕都是由一个文本构成:Text danmu=Text(“弹幕文本”),其中Text对应于系统的一个弹幕显示控件,用于显示弹幕内容。
接下来通过控件来获取弹幕整个显示区域的大小:Rect size=danmu.GetRect()。通过控件的接口GetRect来获取弹幕的区域大小。
再计算每个弹幕的下一个显示的位置信息,首先依据弹幕当前显示的位置来计算下一个显示的位置:Poisition pt=danmu.GetPosition()。通过控件的接口GetPosition来获取弹幕的当前位置,其中屏幕的左下方则是坐标系的原始点。
进一步的,弹幕的下一个显示位置其Y轴的数据即屏幕显示高度是不会发生变化的,只有X轴的位置随着时间进行变化:Pt.x=pt.x-speed*delta,其中speed值弹幕的每秒钟移动的速,delta表示当前移动时刻与上一次的时刻的时间差值。弹幕是从屏幕右方向左方移动,所以其X轴的坐标越来越小,所以新的坐标点,其Y轴坐标不变,X轴坐标变小。得到新的坐标后,可以计算出当前整个弹幕所覆盖的区域。
弹幕是一个矩形区域,根据弹幕的最左边的坐标,以及弹幕横向区域大小,则很容易得到整个弹幕区域。
S302、检测弹幕区域与人体区域是否重叠,标识蒙版区域。
具体的,遍历检测所述弹幕覆盖区域与所述人体区域是否存在重叠;当检测到所述弹幕覆盖区域与所述人体区域存在重叠时,将重叠区域标识为蒙版区域。在进行人体区域标注时,可以借助屏幕分格,标注人体所占分格即可得到人体区域。通过在弹幕覆盖区域查询是否有分格标注,即可确定弹幕覆盖区域与人体区域是否存在重叠。
示例性的,弹幕区域是一个矩形坐标,判断矩形框内是否有为1标注,即根据弹幕覆盖区域,除以屏幕分格大小,得到弹幕覆盖在二维数组中对应的区域,查找匹配二维数组中的人体区域,可以确定蒙版区域。
在本实施例方案中,根据弹幕数量,确定占用区域,进而确定人体区域与弹幕区域的重叠区域,将重叠区域标注为蒙版可以在弹幕数量较少时,极大缩小蒙版范围,进而减少蒙版信息,减少带宽占用,保障用户观看的流畅性。
实施例四
图4是本发明实施例提供的一种蒙版弹幕展示方法的另一实施例流程图,结合实施例一中的步骤S103,在本实施例中详述弹幕蒙版展示的设置,具体如下:
S401、获取弹幕,定义弹幕通过蒙版区域的显示逻辑;
具体的,通过TCP长连接获取弹幕服务器中对应直播间的全量弹幕内容,然后重定义弹幕协议,在当前弹幕协议中添加预定属性来增加弹幕信息,实现弹幕显示逻辑的设定。
示例性的,创建网络套接字socket建立与弹幕服务器的连接,获取弹幕服务器的地址及端口号,然后调用connect函数开始连接。循环不停从弹幕服务器读取弹幕内容。
获取到的弹幕中,每条弹幕包含有弹幕的基本信息,假设当前弹幕内容为:type@=chat/content@=666/nc@=yy/time@=1525573879/level@=3/roomtype@=1/;则其中type@=chat表示是一条弹幕消息;content@=666表示当前弹幕内容是“666”;nc@=yy表示发送弹幕者的昵称;time@=1525573879则是发送的弹幕时刻;level@=3表示发送弹幕者的当前等级是3级;roomtype@=1表示发送弹幕者的身份,如是不是观众、主播、超管或房管。
弹幕协议中,定义有弹幕的基本信息,通过在弹幕协议中增加特定的信息或属性,在将弹幕分发到客户端后,客户端在进行展示时,读取并判断特定信息或属性值,实现相应的显示效果。
需要注意的是,在本实施中定义弹幕通过蒙版区域的显示逻辑是在服务端进行,一般在CDN服务器上,可以在直播视频流分发时,将弹幕显示逻辑添加到弹幕中。
S4011、添加时间域字段,设定弹幕不显示时长;
具体的,当检测到弹幕通过的蒙版区域时,在所述弹幕协议中至少添加一个时间阈字段及起始时间字段,所述时间阈字段用于标识所述弹幕不显示时长,所述起始时间字段用于表示弹幕在终端屏幕展示时长,设定起始时间字段值,到达该起始时间值,弹幕在时间域字段的时长范围内不显示。即弹幕以正常速度通过蒙版区域时,在通过蒙版区域的时间范围内,设定弹幕不显示,当弹幕完全不处于蒙版区域时,则以正常速度播放显示。
示例性的,在一条通过蒙版区域的弹幕协议中,添加时间字段信息:type@=chat/content@=666/nc@=yy/time@=1525573879/level@=3/roomtype@=1/hight@=5/startunvisible@=230/elapse@=50/。
其中,字段hight@=5/表示当前弹幕在屏幕的第几排显示,即是弹幕的高度;字段startunvisible@=230表示弹幕从多少毫秒开始弹幕不显示,即弹幕从开始不显示的时刻;字段elapse@=50表示弹幕不显示时长。
其中,定义一个变量nDanmuTime记录弹幕在屏幕中的时间,且将nDanmuTime的初始值设为0,即Int nDanmuTime=0。在终端屏幕上每一帧画面都会更新弹幕控件位置,产生移动的视觉效果。故可以定义函数Void Update(float elpasetime),在该函数中Update是系统的每帧画面更新的接口,该接口在每一帧画面渲染时被调用,根据相应的UI逻辑及当前显示逻辑产生位置移动,参数float elpasetime用于标示当前次帧和上一帧调用时的时间间隔,也就是此次调用和上次的时间间隔,不断记录更新nDanmuTime的值。所以,弹幕在屏幕显示时间记为nDanmuTime=nDanmuTime+elpasetime;将当前弹幕已经移动的时间加上最新的时间间隔,可以得到此弹幕在屏幕中一共移动了多长时间。
S4012、添加距离字段,设定弹幕跳跃不显示距离。
具体的,当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加一个距离字段,所述距离字段值用于标识所述弹幕跳跃距离,当弹幕在终端的播放时间等于起始时间字段值,则设定弹幕在该距离字段范围内,以极快速度通过,以实现弹幕跳跃效果,所述极快速度一般为肉眼难以察觉的移动速度,可以达到弹幕跳跃效果,示例性的,假设肉眼反映速度为0.1s,终端屏幕宽度为20cm,则可以设定弹幕在屏幕中移动速度不低于2(0.2m/0.1s)m/s。即在弹幕经过蒙版区域时,设定弹幕在经过蒙版区域的宽度范围内实现弹幕跳跃,在完全通过了蒙版区域后,恢复正常播放速度。
示例性的,在一条通过蒙版区域的弹幕协议中,添加距离区间信息:type@=chat/content@=666/nc@=yy/time@=1525573879/level@=3/roomtype@=1/hight@=1/startunvisible@=230/space@=30/;
其中,字段hight@=5/表示当前弹幕在屏幕第几排进行显示,也即是弹幕的高度;字段startunvisible@=230/表示弹幕在屏幕上播放多少毫秒后开始跳跃;字段space@=30/表示跳跃的宽度距离。
其中,弹幕播放时间可通过变量nDanmuTime记录。跳跃的宽度距离即距离字段的预设值,跳跃的距离宽度一般为弹幕经过蒙版区域的宽度,弹幕在每一行移动时,预先检测当前行列中是否存在蒙版区域,若存在,则获取该行对应的蒙版区域宽度。一般的,可以通过在屏幕建立坐标系,或等距划分小方格建立二维数组标识蒙版区域,根据弹幕所在纵坐标值,可以获取到该纵坐标上对应的蒙版区域横坐标,进而得到在横坐标轴上的宽度范围,也即跳跃宽度。
所述距离区间信息中一般包括有开始跳跃时刻及跳跃宽度。
进一步的,客户端通过弹幕控件,记录弹幕在屏幕播放时间,解析服务端分发的弹幕消息后,根据弹幕显示位置的变化及播放速度,设置弹幕下一显示位置。
在本实施例中,在服务端端定义弹幕显示逻辑,可以避免传统直接分发蒙版区域信息,在客户端进行弹幕是否显示的逻辑运算与判断,传统方法会增加客户端负担,影响用户正常观看,而且蒙版信息添加到直播视频流会占用网络带宽。通过本实施例中的方案,直接设定弹幕显示逻辑,在服务端完成蒙版弹幕显示的逻辑计算,大大降低客户端运算量,减少对客户端资源的占用。
实施例五
图5是本发明实施例提供的一种用于实现蒙版弹幕展示的装置的结构示意图,该装置包括:
检测模块510,用于接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
可选的,所述检测模块510包括:
获取单元,用于获取客户端播放设备的屏幕尺寸;
划分单元,用于将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置,其中,每条弹幕高度为所述方格高度的整数倍。
可选的,所述检测模块510还包括:
标识单元,用于当通过基于深度学习的人体分割模型检测到方格中存在人体覆盖,则将对应的方格标识为人体区域。
标识模块520,用于标识所述人体区域中的蒙版区域;
可选的,所述标识模块520包括:
标记单元,用于预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域。
可选的,所述标记单元还包括:
设定单元,用于设定每条弹幕由屏幕顶部向底部覆盖,在弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;
计算单元,用于根据每秒弹幕播放数量,计算每个关键中弹幕覆盖区域。
进一步的,所述标记模块还包括:
遍历检测所述弹幕覆盖区域与所述人体区域是否存在重叠;当检测到所述弹幕覆盖区域与所述人体区域存在重叠时,将重叠区域标识为蒙版区域。
设置模块530,用于从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
具体的,通过TCP长连接获取弹幕服务器中对应直播间的全量弹幕内容,然后重定义弹幕协议,在当前弹幕协议中增加弹幕信息,实现弹幕显示逻辑的设定。当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加一个时间域,所述时间域用于标识所述弹幕不显示时长。即弹幕以正常速度通过蒙版区域时,在通过蒙版区域的时间范围内,设定弹幕不显示,当弹幕完全不处于蒙版区域时,则以正常速度播放显示。
可选的,当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加时间域字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的预设值时,在所述时间域字段的预设时长范围内,所述弹幕在所述蒙版区域中不显示。
可选的,当检测到弹幕通过的所述蒙版区域时,在所述弹幕中至少添加距离字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的预设值时,在所述距离字段的预设长度范围内,设定所述弹幕以极快速度通过,其中,所述预设长度等于所述弹幕经过的蒙版区域的长度。
优选的,在系统关键帧更新的update接口中,根据当前关键帧与上一个关键帧的调用时间间隔,通过预定义变量记录预定弹幕控件在终端屏幕上的移动时间。
分发模块540,用于将所述弹幕分发至客户端。
在上述装置中,通过标识模块和设置模块确定人体区域及蒙版区域,获取弹幕后为弹幕增加特定属性,设定弹幕通过蒙版区域的显示逻辑,既可以实现蒙版区域的准确划分,保障用户观看体验,同时在服务端对弹幕进行显示逻辑的设定,减少带宽及资源的占用,有效减轻对应客户端的负担。
实施例六
图6是本发明一实施例提供的用于实现蒙版弹幕显示的服务器的结构示意图。所述服务器,为提供计算服务的设备,通常指具有较高计算能力,通过网络提供给多个用户使用的计算机。如图6所示,该实施例的服务器6包括:存储器610、处理器620以及系统总线630,所述存储器610包括存储其上的可运行的程序6101,本领域技术人员可以理解,图6中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对服务器的各个构成部件进行具体的介绍:
存储器610可用于存储软件程序以及模块,处理器620通过运行存储在存储器610的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在存储器610上包含网络请求方法的可运行程序6101,所述可运行程序6101可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器610中,并由处理器620执行,以实现弹幕蒙版展示,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序6101在所述服务器6中的执行过程。例如,所述计算机程序6101可以被分割为检测模块、标识模块、设置模块及分发模块。
处理器620是服务器的控制中心,利用各种接口和线路连接整个服务器设备的各个部分,通过运行或执行存储在存储器610内的软件程序和/或模块,以及调用存储在存储器610内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器620可包括一个或多个处理单元;优选的,处理器620可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器620中。
系统总线630是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如PCI总线、ISA总线、VESA总线等。处理器620的指令通过总线传递至存储器610,存储器610反馈数据给处理器620,系统总线630负责处理器620与存储器610之间的数据、指令交互。当然系统总线630还可以接入其他设备,例如网络接口、显示设备等。
在本发明实施例中,该服务器所包括的处理器620执行的可运行程序具体为:
接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
标识所述人体区域中的蒙版区域;
从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
将所述弹幕分发至客户端。
进一步的,所述通过基于深度学习的人体分割模型检测所述直播间视频流的关键帧中的人体区域还包括:
获取客户端播放设备的屏幕尺寸;
将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置,其中,每条弹幕高度为所述方格高度的整数倍。
进一步的,所述将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置还包括:
当通过基于深度学习的人体分割模型检测到方格中存在人体覆盖,则在二维数组中将对应的方格标识为人体区域。
进一步的,所述标识所述人体区域中的蒙版区域还包括:
预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域。
进一步的,所述预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域还包括:
设定每条弹幕由屏幕顶部向底部覆盖,在每条弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;
根据每个关键帧中对应的弹幕播放数量及弹幕长度,计算每个关键帧中弹幕覆盖区域。
进一步的,所述通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑包括:
当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加时间域字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的预设值时,在所述时间域字段的预设时长范围内,所述弹幕在所述蒙版区域中不显示。
进一步的,所述通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑包括:
当检测到弹幕通过的所述蒙版区域时,在所述弹幕中至少添加距离字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的预设值时,在所述距离字段的预设长度范围内,设定所述弹幕以极快速度通过,其中,所述预设长度等于所述弹幕经过的蒙版区域的长度。
进一步的,所述当弹幕在终端屏幕上播放时间等于所述起始时间字段的值还包括:
在系统关键帧更新的update接口中,根据当前关键帧与上一个关键帧的调用时间间隔,通过预定义变量记录预定弹幕控件在终端屏幕上的移动时间。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种蒙版弹幕显示方法,其特征在于,包括:
接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
标识所述人体区域中的蒙版区域;
从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
将所述弹幕分发至客户端;
其中,所述标识所述人体区域中的蒙版区域包括:
预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域;
其中,所述预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域的步骤进一步包括:
设定每条弹幕由屏幕顶部向底部覆盖,在每条弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;
根据每个关键帧中对应的弹幕播放数量及弹幕长度,计算每个关键帧中弹幕覆盖区域。
2.根据权利要求1所述的方法,其特征在于,所述通过基于深度学习的人体分割模型检测所述直播间视频流的关键帧中的人体区域还包括:
获取客户端播放设备的屏幕尺寸;
将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置,其中,每条弹幕高度为所述方格高度的整数倍。
3.根据权利要求2所述的方法,其特征在于,所述将所述屏幕等距划分为预定大小的方格,并建立二维数组标识每个方格位置还包括:
当通过基于深度学习的人体分割模型检测到方格中存在人体覆盖,则在二维数组中将对应的方格标识为人体区域。
4.根据权利要求1所述的方法,其特征在于,所述通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑包括:
当检测到弹幕通过的蒙版区域时,在所述弹幕中至少添加时间域字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的值时,在所述时间域字段的预设时长范围内,所述弹幕在所述蒙版区域中不显示。
5.根据权利要求1所述的方法,其特征在于,所述通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑包括:
当检测到弹幕通过的所述蒙版区域时,在所述弹幕中至少添加距离字段和起始时间字段;
当弹幕在终端屏幕上播放时间等于所述起始时间字段的值时,在所述距离字段的预设长度范围内,设定所述弹幕以极快速度通过,其中,所述极快速度为终端屏幕的宽度与肉眼反应时间的商;所述预设长度等于所述弹幕经过的蒙版区域的长度。
6.根据权利要求4-5任一项所述的方法,其特征在于,所述当弹幕在终端屏幕上播放时间等于所述起始时间字段的值还包括:
在系统关键帧更新的Update接口中,根据当前关键帧与上一个关键帧的调用时间间隔,通过预定义变量记录预定弹幕控件在终端屏幕上的移动时间;
其中,所述当前关键帧与上一个关键帧的调用时间间隔表征为:所述当前关键帧与上一个关键帧调用所述Update接口之间的时间间隔;
其中,所述Update接口的作用为在每一帧画面渲染时被调用,根据相应的UI逻辑及当前显示逻辑产生位置移动;
其中,所述移动时间为:由当前弹幕已经移动的时间加上最新的时间间隔,以得到此弹幕在所述终端屏幕上的移动时间。
7.一种用于实现蒙版弹幕显示的装置,其特征在于,包括:
检测模块,用于接收到直播视频流后,通过基于深度学习的人体分割模型检测所述直播视频流的每个关键帧中的人体区域;
标识模块,用于标识所述人体区域中的蒙版区域;
设置模块,用于从弹幕服务器中获取弹幕,通过在所述弹幕的弹幕协议中添加预定属性以设置所述弹幕经过所述蒙版区域的显示逻辑;
分发模块,用于将所述弹幕分发至客户端;
所述标识模块包括:
标记单元,用于预先检测每个关键帧中播放的弹幕与所述人体区域的是否存在重叠,若关键帧中弹幕播放区域与所述人体区域存在重叠,则将重叠区域标记为蒙版区域;
所述标记单元还包括:
设定单元,用于设定每条弹幕由屏幕顶部向底部覆盖,在弹幕不发生重叠的前提下,依次设定弹幕开始播放位置;
计算单元,用于根据每秒弹幕播放数量,计算每个关键中弹幕覆盖区域。
8.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项蒙版弹幕显示方法的步骤。
CN201910222579.9A 2019-03-22 2019-03-22 一种蒙版弹幕显示方法、装置及服务器 Active CN109862414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910222579.9A CN109862414B (zh) 2019-03-22 2019-03-22 一种蒙版弹幕显示方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910222579.9A CN109862414B (zh) 2019-03-22 2019-03-22 一种蒙版弹幕显示方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN109862414A CN109862414A (zh) 2019-06-07
CN109862414B true CN109862414B (zh) 2021-10-15

Family

ID=66901557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910222579.9A Active CN109862414B (zh) 2019-03-22 2019-03-22 一种蒙版弹幕显示方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN109862414B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300118B (zh) * 2019-07-09 2020-09-25 联想(北京)有限公司 流媒体处理方法、装置及存储介质
CN111596834B (zh) * 2019-09-06 2020-12-15 深圳新为云动教育科技有限公司 视频播放app控制系统
CN112492324A (zh) * 2019-09-12 2021-03-12 上海哔哩哔哩科技有限公司 数据处理方法及系统
CN112492323B (zh) * 2019-09-12 2022-07-19 上海哔哩哔哩科技有限公司 直播蒙版的生成方法、可读存储介质及计算机设备
CN110798726A (zh) * 2019-10-21 2020-02-14 北京达佳互联信息技术有限公司 弹幕显示方法、装置、电子设备及存储介质
CN112995740A (zh) * 2019-12-13 2021-06-18 阿里巴巴集团控股有限公司 弹幕展示方法、设备、系统及存储介质
CN113259742B (zh) * 2020-02-11 2023-12-01 腾讯科技(深圳)有限公司 视频弹幕显示方法、装置、可读存储介质和计算机设备
CN111405300A (zh) * 2020-02-28 2020-07-10 北京达佳互联信息技术有限公司 挂件展示方法、装置、电子设备及计算机可读存储介质
CN111641870B (zh) * 2020-06-05 2022-04-22 北京爱奇艺科技有限公司 视频播放方法、装置、电子设备及计算机存储介质
CN111796827B (zh) * 2020-06-30 2022-02-18 北京字节跳动网络技术有限公司 一种弹幕的绘制方法、装置、设备和存储介质
CN111935508B (zh) * 2020-08-13 2023-06-30 百度时代网络技术(北京)有限公司 信息处理和获取方法、装置、电子设备及存储介质
CN112188263B (zh) * 2020-09-10 2022-02-22 珠海格力电器股份有限公司 一种弹幕信息控制方法及播放设备
CN112752116A (zh) * 2020-12-30 2021-05-04 广州繁星互娱信息科技有限公司 直播视频画面的显示方法、装置、终端及存储介质
CN113949922A (zh) * 2021-10-14 2022-01-18 海南车智易通信息技术有限公司 一种蒙版图片的生成方法、计算设备以及存储介质
CN115297355B (zh) * 2022-08-02 2024-01-23 北京奇艺世纪科技有限公司 弹幕显示方法、生成方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105430512A (zh) * 2015-11-06 2016-03-23 腾讯科技(北京)有限公司 一种在视频图像上显示信息的方法和装置
CN106973309A (zh) * 2017-03-27 2017-07-21 福建中金在线信息科技有限公司 一种弹幕生成方法及装置
CN108881995A (zh) * 2018-07-17 2018-11-23 上海哔哩哔哩科技有限公司 视频弹幕蒙版绘制方法、弹幕播放方法、装置及介质
CN109120984A (zh) * 2018-09-30 2019-01-01 重庆小雨点小额贷款有限公司 弹幕显示方法、装置、终端及服务器
CN109286835A (zh) * 2018-09-05 2019-01-29 武汉斗鱼网络科技有限公司 直播间互动元素显示方法、存储介质、设备及系统
CN109302619A (zh) * 2018-09-18 2019-02-01 北京奇艺世纪科技有限公司 一种信息处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014277853A1 (en) * 2014-12-22 2016-07-07 Canon Kabushiki Kaisha Object re-identification using self-dissimilarity

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105430512A (zh) * 2015-11-06 2016-03-23 腾讯科技(北京)有限公司 一种在视频图像上显示信息的方法和装置
CN106973309A (zh) * 2017-03-27 2017-07-21 福建中金在线信息科技有限公司 一种弹幕生成方法及装置
CN108881995A (zh) * 2018-07-17 2018-11-23 上海哔哩哔哩科技有限公司 视频弹幕蒙版绘制方法、弹幕播放方法、装置及介质
CN109286835A (zh) * 2018-09-05 2019-01-29 武汉斗鱼网络科技有限公司 直播间互动元素显示方法、存储介质、设备及系统
CN109302619A (zh) * 2018-09-18 2019-02-01 北京奇艺世纪科技有限公司 一种信息处理方法及装置
CN109120984A (zh) * 2018-09-30 2019-01-01 重庆小雨点小额贷款有限公司 弹幕显示方法、装置、终端及服务器

Also Published As

Publication number Publication date
CN109862414A (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
CN109862414B (zh) 一种蒙版弹幕显示方法、装置及服务器
CN109120984B (zh) 弹幕显示方法、装置、终端及服务器
CN108024079B (zh) 录屏方法、装置、终端及存储介质
CN108236784B (zh) 模型的训练方法和装置、存储介质、电子装置
US11036995B2 (en) Methods and systems for scoreboard region detection
US11805283B2 (en) Methods and systems for extracting sport-related information from digital video frames
CN111866423A (zh) 用于电子终端的录屏方法及相应设备
CN109144652B (zh) 一种视图显示方法、装置、电子设备及存储介质
CN108010037A (zh) 图像处理方法、装置及存储介质
CN113194349B (zh) 视频播放方法、评论方法、装置、设备及存储介质
US11206376B2 (en) Systems and methods for image processing
US11087161B2 (en) Methods and systems for determining accuracy of sport-related information extracted from digital video frames
CN108282683A (zh) 一种视频界面显示方法及装置
US20210224569A1 (en) Methods and Systems for Scoreboard Text Region Detection
CN113573090A (zh) 游戏直播中的内容显示方法、装置、系统和存储介质
CN115396705B (zh) 投屏操作验证方法、平台及系统
JP5563703B2 (ja) コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラム及び端末用プログラム
CN109511010A (zh) 视频处理方法、视频处理装置、电子设备及存储介质
US20200242365A1 (en) Methods and Systems for Sport Data Extraction
CN106970942B (zh) 一种涉黄内容主动防御的方法及终端
CN111954022B (zh) 视频播放方法、装置、电子设备和可读存储介质
CN110806909A (zh) 一种应用程序页面掉帧信息确定方法、装置及电子设备
JP2016042372A (ja) 端末用プログラム、端末装置及び端末制御方法
CN113810755A (zh) 全景视频预览的方法、装置、电子设备及存储介质
CN112565864B (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