首页> 中国专利> 处理信息流、显示弹幕信息的方法及信息流处理系统

处理信息流、显示弹幕信息的方法及信息流处理系统

摘要

本发明公开了处理信息流、显示弹幕信息的方法及信息流处理系统。本发明的服务器端通过对推流端上传的第一信息流进行解析,获取帧图像及与该帧图像对应的标识时间戳偏移量的蒙版帧数据,通过时间戳偏移量可确定蒙版帧数据与帧图像的播放时间戳之间的时间差,将帧图像与蒙版帧数据合成生成第二信息流并输出至客户端;客户端通过对第二信息流解析可获取帧图像及蒙版帧数据,根据时间戳偏移量调整的蒙版帧数据的显示时刻,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证用户观看流畅度的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。

著录项

说明书

技术领域

本发明涉及互联网技术领域,尤其涉及处理信息流、显示弹幕信息的方法及信息流处理系统。

背景技术

用户在观看直播过程中,在观看人数较多时,经常会遇到大量弹幕刷屏,这样直播画面会被弹幕遮挡,影响用户正常观看。若选择直接关闭弹幕,观看体验不佳,而设定弹幕顶部显示,在弹幕数量过多时,会短时导致弹幕与直播内容不相关。

目前,在点播场景下通常采用添加蒙版的方式,使弹幕显示于播放界面中蒙版区域以外的区域,以避免弹幕遮挡播放界面的主要区域。然而,对于直播场景而言,由服务器对主播上传的直播视频流进行处理生成蒙版信息并产生相应的蒙版时间戳,然而,该蒙版时间戳是从主播开播的起始时刻开始生成,若用户端是在开始直播后某一时刻(而非直播起始时刻)进入直播间,则用户端观看的视频信息以当前开始播放的时刻为准,而在用户端显示的蒙版信息的时间戳则以主播开始播放的时刻为准,因此,视频信息的播放时间戳与蒙版信息的蒙版时间戳参考标准不同,导致视频信息、弹幕信息与蒙版信息无法同步,影响用户的观看体验效果。

发明内容

针对直播场景下蒙版信息与视频信息、弹幕信息无法同步显示的问题,现提供一种旨在可保证用户端播放的蒙版信息与视频信息、弹幕信息的处理信息流、显示弹幕信息的方法及信息流处理系统。

一种服务器端处理信息流的方法,包括下述步骤:

服务器端识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据;

所述服务器端将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至客户端。

优选的,服务器端识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据的步骤,包括:

获取第一信息流中至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息;

对所述第一数据信息进行解码,获取帧图像及与所述帧图像对应的第一时间戳;

识别所述帧图像的主体区域生成蒙版帧数据,根据所述帧图像的第一时间戳及相应的元信息获取所述蒙版帧数据的时间戳偏移量,并存储于所述蒙版帧数据中。

优选的,所述元信息包括:确定所述第一数据信息中帧图像播放时刻的第二时间戳。

优选的,所述服务器端将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至客户端的步骤,包括:

将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;

将所述第二数据信息与所述元信息结合生成所述第二数据单元;

多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至所述客户端。

优选的,采用图像分割算法识别第一信息流中至少一个帧图像的主体区域。

本发明还提供了一种客户端显示弹幕信息的方法,包括下述步骤:

客户端获取服务器端发送的第二信息流和弹幕信息;

所述客户端对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量;

所述客户端将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

优选的,对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息的步骤,包括:

获取所述第二信息流中至少一个第二数据单元,所述第二数据单元包括元信息和第二数据信息;

对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版数据。

优选的,所述元信息包括:确定所述第二数据信息中帧图像播放时刻的第二时间戳。

优选的,所述客户端将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放的步骤,包括:

根据所述第二时间戳及所述蒙版数据的时间戳偏移量,调整所述蒙版数据的播放时刻;

对蒙版帧数据进行渲染,在所述第二时间戳对应的时刻,将所述蒙版帧数据和弹幕信息绘制到帧图像中,所述弹幕信息显示于除所述蒙版数据对应的区域以外的区域。

优选的,对蒙版帧数据进行渲染,在所述第二时间戳对应的时刻,将所述蒙版帧数据和弹幕信息绘制到帧图像中,所述弹幕信息显示于除所述蒙版数据对应的区域以外的区域,包括:

所述蒙版帧数据为透明通道,当所述弹幕信息显示于除所述蒙版数据对应的区域以外的区域时,将所述弹幕信息与所述蒙版帧数据的透明度相乘绘制到所述帧图像中。

一种信息流处理系统,包括:服务器端和客户端;

所述服务器端用于识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据;

将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流;

并将所述第二信息流发送至所述客户端;

所述客户端

获取所述服务器端发送的第二信息流和弹幕信息;

对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量;

将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述服务器端处理信息流的方法的步骤。

本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述客户端显示弹幕信息的方法的步骤。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述服务器端处理信息流的方法的步骤。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述客户端显示弹幕信息的方法的步骤。

上述技术方案的有益效果:

本技术方案中,服务器端通过对推流端上传的第一信息流进行解析,获取帧图像及与该帧图像对应的标识时间戳偏移量的蒙版帧数据,通过时间戳偏移量可确定蒙版帧数据与帧图像的播放时间戳之间的时间差,将帧图像与蒙版帧数据合成生成第二信息流并输出至客户端;客户端通过对第二信息流解析可获取帧图像及蒙版帧数据,根据时间戳偏移量调整的蒙版帧数据的显示时刻,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证用户观看流畅度的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。

附图说明

图1为本发明所述的信息流处理系统应用于直播场景的框架图;

图2为本发明所述的服务器端处理信息流的方法的一种实施例的方法流程图;

图3为生成蒙版帧数据的方法的一种实施例的方法流程图;

图4为生成第二信息流的方法的一种实施例的方法流程图;

图5为本发明所述的客户端显示弹幕信息的方法的一种实施例的方法流程图;

图6为对第二信息流进行解析的方法的一种实施例的方法流程图;

图7为进行同步播放的一种实施例的方法流程图;

图8为本发明所述的信息流处理系统的一种实施例的流程图;

图9为信息流处理系统的一种实施例的模块图;

图10为本发明计算机设备的一个实施例的硬件架构图;

图11为本发明计算机设备的另一个实施例的硬件架构图;

图12为本发明信息流处理系统的一种实施例的示意图。

具体实施方式

以下结合附图与具体实施例进一步阐述本发明的优点。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。

本申请实施例的视频可以呈现于大型视频播放设备、游戏机、台式计算机、智能手机、平板电脑、MP3(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压縮标准音频层)播放器、MP4(MovingPictureExpertsGroupAudioLayerlV,动态影像专家压縮标准音频层面)播放器、膝上型便携计算机、电子书阅读器以及其它显示终端等客户端。

本申请实施例的信息流处理系统可以应用在直播场景中,比如说,可以应用在电商直播、培训直播、赛事直播、新闻发布直播、观众与主播/视放送方的互动视频、互动游戏的播放(例如:业界的《黑镜》或《隐形的守护者》等)等在线业务中。本申请实施例以信息流处理系统应用于直播视频为例子,但是并不局限于此。

本申请实施例中,参考图1所示,信息流处理系统中服务器端由视频云源站、蒙版集群、蒙版调度端、蒙版控制端及配置后台等组成。推流端(直播端或主播端)向视频云源站发送直播视频流,视频云源站向蒙版控制端发送转码请求,蒙版控制端向蒙版调度端发送转码请求,蒙版调度端接收到转码请求后,向蒙版集群发送任务分配请求,查询蒙版集群中是否有空闲的AI机器,其中,AI机器为蒙版识别实例,每一个AI机器为一个直播间服务;若没有空闲的AI机器则向蒙版控制端反馈异常状态回调,若有空闲的AI机器,则向视频云源站拉取RTMP(Real Time Messaging Protocol,实时消息传输协议)视频流,通过AI机器对视频流中的每一个帧图像进行识别生成蒙版帧数据,并将蒙版帧数据推流至视频云源站,视频云源站根据将蒙版帧数据与源视频流中的帧图像进行合成,生成携带有蒙版帧数据的视频流并推送至CDN(Content Delivery Network,即内容分发网络)节点中。用户观看直播视频时,通过客户端(播放端或拉流端)向配置后台请求播放链接,配置后台接收到播放链接请求后,向蒙版控制端查询开启状态请求,蒙版控制端查询数据库(DB),获取直播间是否允许开启蒙版服务,并将获取的反馈通知,若用户访问的直播间允许开启蒙版服务,则用户的客户端可通过CDN拉取携带有蒙版帧数据的视频流,客户端对该视频流进行解析,通过播放器播放视频信息,对蒙版弹幕进行渲染,从而在客户端的显示屏幕上显示视频图像、蒙版帧及弹幕信息,使弹幕显示于蒙版帧以外的区域,从而提升用户的观看效果。此处只给出两个配置后台、一个客户端和一个推流端,此处的应用场景还可以包括多个配置后台、多个客户端,以及多个推流端。视频云源站可以是云端服务器,还可以是本地服务器。客户端和推流端的设备可以是移动设备,或其他可以进行上传视频的智能终端均可适用。

本发明为解决直播场景下蒙版信息与视频信息、弹幕信息无法同步的缺陷,提出了一种可使用户端对蒙版信息与视频信息、弹幕信息进行同步显示的服务器端处理信息流的方法。参阅图2,其为一符合本发明一优选实施例的服务器端处理信息流的方法流程示意图,从图中可以看出,本实施例中所提供的服务器端处理信息流的方法主要包括以下步骤:

A1.服务器端识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据;

需要说明的是,所述主体区域可选自以下至少一种:

人物区域范围、动物区域范围、风景区域范围、建筑区域范围、艺术品区域范围、文字区域范围,以及区别于人物、动物、建筑、艺术的背景区域范围。

作为举例而非限定,可采用语义分割模型(例如:FCN、DilatedNet、deeplab等模型)识别第一信息流中至少一个帧图像的主体区域;

作为较为优选的实施例,语义分割模型可采用deeplab模型。Deeplab模型具有效果好、速度快的优点。Deeplab模型主要包括用于提取特征图的网络骨干(backbone)、用于增强特征减少特征图尺寸影响的特征增强层和用于预测每一像素对应的类别的分类层(0类通常是背景(background),用的比较多的类别是coco数据集的91类,包含人物、一些动物、一些常见物体等)。

在本实施例中,服务器端处理信息流的方法应用于服务器端,服务器端对推流端上传的第一信息流中的每一个第一数据单元进行处理。推流端的第一信息流通过实时消息传输协议上传至服务器端。其中,推流端可以采用安卓系统、IOS系统或Windows系统或MacOS X系统等。

进一步地,步骤A1中,服务器端识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据的步骤(参考图3),包括:

A11.获取第一信息流中至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息;

于本实施例中,第一数据单元可采用AVPacket数据结构。第一数据信息可以是待解码的视频图像信息。

需要说明的是,所述元信息可包括:确定所述第一数据信息中帧图像播放时刻的第二时间戳,第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。

A12.对所述第一数据信息进行解码,获取帧图像及与所述帧图像对应的第一时间戳;

于本步骤中,通过解码器对第一数据信息进行解码,以获取相应的帧图像。

需要说明的是:在本步骤中获取的第一时间戳不同于第二时间戳,第一时间戳为蒙版帧数据的显示时间戳。

A13.识别所述帧图像的主体区域生成蒙版帧数据,根据所述帧图像的第一时间戳及相应的元信息获取所述蒙版帧数据的时间戳偏移量,并存储于所述蒙版帧数据中。

于本步骤中,可采用图像分割算法识别帧图像的主体区域生成蒙版帧数据,并计算蒙版帧数据的第一时间戳与第二时间戳之间的时间差,将该时间戳偏移量存储于蒙版帧数据中,以便于定位蒙版帧数据与相应的帧图像之间的时间差。

其中,时间戳偏移量为第一时间戳与第二时间戳之差。

在实际应用中,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,提高数据的压缩率,节省数据的存储空间,便于数据的传输。

需要说明的是:所述可缩放矢量图形文件采用可扩展标记语言格式。目标数据为SVG图形,SVG图形是可伸缩的,可以在改变尺寸的情况下保持其图形质量。SVG可以使用一些预定义的形状元素来描述图形,例如:矩形、线、路径等。

A2.所述服务器端将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至客户端。

需要说明的是:第二信息流采用实时消息传输协议。

于本步骤中,通过将解码后的帧图像、获取的蒙版帧数据以及元信息合成,进而生成携带蒙版帧数据的第二信息流,服务器端可将该信息流发生至客户端,供客户端观看配置有蒙版弹幕的视频。

进一步地,在步骤A2中,所述服务器端将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至客户端的步骤(参考图4),包括:

A21.将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;

作为举例而非限定,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,可提高数据的压缩率,节省数据的存储空间,便于数据的传输。

在对蒙版帧数据进行编码的同时对帧图像进行压缩编码以减少数据的传输。

A22.将所述第二数据信息与所述元信息结合生成所述第二数据单元;

A23.多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至所述客户端。

进一步地,可根据元信息将多个第二数据单元有序排列进而生成信息流,服务器端可将该信息流发生至客户端,供客户端观看配置有蒙版弹幕的视频图像

在本实施例中,服务器端通过对推流端上传的第一信息流进行解析,获取帧图像及与该帧图像对应的标识时间戳偏移量的蒙版帧数据,通过时间戳偏移量可确定蒙版帧数据与帧图像的播放时间戳之间的时间差,将帧图像与蒙版帧数据合成生成第二信息流并输出至客户端;客户端通过对第二信息流解析可获取帧图像及蒙版帧数据,可根据时间戳偏移量调整的蒙版帧数据的显示时刻,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证用户观看流畅度的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。

上述服务器端处理信息流的方法主要描述的是在服务器端对第一信息流处理的方法流程,在客户端对第二信息流进行显示时,客户端显示弹幕信息的方法包括下述步骤(参考图5):

B1.客户端获取服务器端发送的第二信息流和弹幕信息;

在本实施例中,客户端显示弹幕信息的方法应用于客户端,客户端获取对服务器端发送的第二信息流及相应的弹幕信息。其中,客户端可以采用安卓系统、IOS系统、Windows系统或Mac OS X系统等。

需要说明的是:所述第二信息流可采用实时消息传输协议。

B2.所述客户端对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量;

进一步地,在步骤B2可包括(参考图6),:

B21.获取所述第二信息流中至少一个第二数据单元,所述第二数据单元包括元信息和第二数据信息;

其中,第二数据单元可采用AVPacket数据结构。第二数据信息为待解码的视频图像信息。所述元信息可包括:确定所述第二数据信息中帧图像播放时刻的第二时间戳,所谓的第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。

B22.对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版数据。

于本实施例中,第二数据信息中的蒙版帧数据为二进制文件,在进行解码时,对二进制文件中的每一键值对进行解码。采用键值对可有效的区分出相应的二进制数据表示的含义,以便于在解码过程,保证的数据的完整性。

在实际应用中,可根据预设的解压比例对解码后的每一蒙版帧数据的显示比例进行放大,从而实现蒙版帧数据对应的蒙版区域与帧图像的主体区域的大小保持一致性,保证用户的观看效果。

具体地,可采用双线性拉伸的方式对所述蒙版帧数据的显示比例进行放大。

B3.所述客户端将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

在本实施例中,对解压后的蒙版帧数据进行渲染,将蒙版帧数据和弹幕信息绘制到帧图像中,当弹幕信息经过蒙版帧数据时,显示所述蒙版帧数据。

进一步地,在步骤B3中,所述客户端将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放的步骤(参考图7),包括:

B31.根据所述第二时间戳及所述蒙版数据的时间戳偏移量,调整所述蒙版数据的播放时刻,使蒙版帧数据的播放时刻与第二时间戳同步;

B32.对蒙版帧数据进行渲染,在所述第二时间戳对应的时刻,将所述蒙版帧数据和弹幕信息绘制到帧图像中,所述弹幕信息显示于除所述蒙版数据对应的区域以外的区域。

在实际应用中,客户端对接收到的视频及弹幕进行显示时,当蒙版帧数据对应的区域为人物区域时,弹幕信息不在人物区域范围显示,显示于除人物区域范围以外的区域;当蒙版帧数据对应的区域为文字区域范围时,弹幕信息不在文字区域范围显示,显示于除文字区域范围以外的区域;当蒙版帧数据对应的区域为区别于人物、动物、建筑、艺术的背景区域范围时,弹幕信息不在背景区域范围显示,显示于除背景区域范围以外的区域。

在实施例中,可对所述蒙版数据对应的区域进行边缘羽化处理,提高蒙版帧边缘的光滑度,使蒙版帧数据的边缘更加柔和自然,从而提升视觉效果。在播放视频数据时,根据第二时间戳及时间戳偏移量调整蒙版帧数据的播放时刻,将经处理后的蒙版帧数据和弹幕信息绘制到帧图像中。从而保证蒙版区域、弹幕信息及视频的帧图像三者之间在时间上的一致性。

蒙版帧数据为透明通道,当弹幕信息经过所述蒙版帧数据时,将所述弹幕信息与所述蒙版帧数据的透明度相乘绘制到帧图像中。显示弹幕信息时,可在蒙版帧数据边缘,弹幕渐变地从完全不透明到完全透明,使蒙版显得更加柔和自然,同时有效规避了算法对画面主体边缘识别精度不高的问题。

在本实施例中,通过客户端对第二信息流解析可获取帧图像及蒙版帧数据,根据时间戳偏移量调整的蒙版帧数据的显示时刻,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证用户观看流畅度的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。

如图8-图9所示,本发明还提供了一种信息流处理系统,包括:服务器端1和客户端2;

所述服务器端1用于识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据,将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至所述客户端2;

具体地过程如下(参考图8):

C1.所述服务器获取推流端发送的第一信息流;

C2.服务器端识别所述第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据;

C3.所述服务器端将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流;

C4.所述服务器端将所述第二信息流发送至所述客户端;

C5.所述服务器端将与所述第一信息流关联的弹幕信息发送至所述客户端;

所述客户端2获取所述服务器端1发送的第二信息流和弹幕信息,对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量,将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

具体地过程如下(参考图8):

C6.所述客户端对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量;

C7.所述客户端将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

如图9所示,所述服务器端1可包括:识别单元11和合成单元12,其中:

识别单元11,用于识别第一信息流中至少一个帧图像的主体区域生成标识时间戳偏移量的蒙版帧数据;

需要说明的是,所述主体区域可选自以下至少一种:

人物区域范围、动物区域范围、风景区域范围、建筑区域范围、艺术品区域范围、文字区域范围,以及区别于人物、动物、建筑、艺术的背景区域范围。

作为举例而非限定,可采用语义分割模型(例如:FCN、DilatedNet、deeplab等模型)识别第一信息流中至少一个帧图像的主体区域;

作为较为优选的实施例,语义分割模型可采用deeplab模型。Deeplab模型具有效果好、速度快的优点。Deeplab模型主要包括用于提取特征图的网络骨干(backbone)、用于增强特征减少特征图尺寸影响的特征增强层和用于预测每一像素对应的类别的分类层(0类通常是背景(background),用的比较多的类别是coco数据集的91类,包含人物、一些动物、一些常见物体等)。

在本实施例中,服务器端对推流端上传的第一信息流中的每一个第一数据单元进行处理。推流端的第一信息流通过实时消息传输协议上传至服务器端。

识别单元11用于获取第一信息流中至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息;

于本实施例中,第一数据单元可采用AVPacket数据结构。第一数据信息可以是待解码的视频图像信息。

需要说明的是,所述元信息可包括:确定所述第一数据信息中帧图像播放时刻的第二时间戳,第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。

识别单元11对所述第一数据信息进行解码,获取帧图像及与所述帧图像对应的第一时间戳;

需要说明的是:获取的第一时间戳不同于第二时间戳,第一时间戳为蒙版帧数据的显示时间戳。

识别单元11识别所述帧图像的主体区域生成蒙版帧数据,根据所述帧图像的第一时间戳及相应的元信息获取所述蒙版帧数据的时间戳偏移量,并存储于所述蒙版帧数据中。

进一步地,可采用图像分割算法识别帧图像的主体区域生成蒙版帧数据,并计算蒙版帧数据的第一时间戳与第二时间戳之间的时间差,将该时间戳偏移量存储于蒙版帧数据中,以便于定位蒙版帧数据与相应的帧图像之间的时间差。

其中,时间戳偏移量为第一时间戳与第二时间戳之差。

在实际应用中,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,提高数据的压缩率,节省数据的存储空间,便于数据的传输。

需要说明的是:所述可缩放矢量图形文件采用可扩展标记语言格式。目标数据为SVG图形,SVG图形是可伸缩的,可以在改变尺寸的情况下保持其图形质量。SVG可以使用一些预定义的形状元素来描述图形,例如:矩形、线、路径等。

合成单元12,用于将至少一个帧图像与相应的蒙版帧数据进行合成生成第二信息流,并将所述第二信息流发送至客户端。通过将解码后的帧图像、获取的蒙版帧数据以及元信息合成,进而生成携带蒙版帧数据的第二信息流,服务器端可将该信息流发生至客户端,供客户端观看配置有蒙版弹幕的视频。

需要说明的是:第二信息流可采用实时消息传输协议。

合成单元12将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;将所述第二数据信息与所述元信息结合生成所述第二数据单元;多个所述第二数据单元组合生成所述第二信息流。

进一步地,可根据元信息将多个第二数据单元有序排列进而生成信息流,服务器端1可将该信息流发生至客户端2,供客户端2观看配置有蒙版弹幕的视频图像。

如图9所示,所述客户端2可包括获取单元21、解析单元22和绘制单元23,其中:

获取单元21,用于获取第二信息流和弹幕信息;

在本实施例中,客户端2获取服务器端1发送的第二信息流及相应的弹幕信息。

需要说明的是:所述第二信息流可采用实时消息传输协议。

解析单元22,用于对所述第二信息流进行解析,获取至少一帧图像、相应的蒙版数据及元信息,所述蒙版数据包括时间戳偏移量;

解析单元22获取所述第二信息流中至少一个第二数据单元,所述第二数据单元包括元信息和第二数据信息;

其中,第二数据单元可采用AVPacket数据结构。第二数据信息为待解码的视频图像信息。所述元信息可包括:确定所述第二数据信息中帧图像播放时刻的第二时间戳,所谓的第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。

解析单元22对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版数据。

于本实施例中,第二数据信息中的蒙版帧数据为二进制文件,在进行解码时,对二进制文件中的每一键值对进行解码。采用键值对可有效的区分出相应的二进制数据表示的含义,以便于在解码过程,保证的数据的完整性。

在实际应用中,可根据预设的解压比例对解码后的每一蒙版帧数据的显示比例进行放大,从而实现蒙版帧数据对应的蒙版区域与帧图像的主体区域的大小保持一致性,保证用户的观看效果。

具体地,可采用双线性拉伸的方式对所述蒙版帧数据的显示比例进行放大。

绘制单元23,用于将蒙版数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上,根据所述元信息和时间戳偏移量控制所述蒙版数据、相应的所述帧图像及弹幕信息同步播放。

在本实施例中,对解压后的蒙版帧数据进行渲染,将蒙版帧数据和弹幕信息绘制到帧图像中,当弹幕信息经过蒙版帧数据时,显示所述蒙版帧数据。

绘制单元23根据所述第二时间戳及所述蒙版数据的时间戳偏移量,调整所述蒙版数据的播放时刻,使蒙版帧数据的播放时刻与第二时间戳同步;对蒙版帧数据进行渲染,在所述第二时间戳对应的时刻,将所述蒙版帧数据和弹幕信息绘制到帧图像中,所述弹幕信息显示于除所述蒙版数据对应的区域以外的区域。

在实施例中,对所述蒙版数据对应的区域进行边缘羽化处理,提高蒙版帧边缘的光滑度,使蒙版帧数据的边缘更加柔和自然,从而提升视觉效果。在播放视频数据时,根据第二时间戳及时间戳偏移量调整蒙版帧数据的播放时刻,将经处理后的蒙版帧数据和弹幕信息绘制到帧图像中。从而保证蒙版区域、弹幕信息及视频的帧图像三者之间在时间上的一致性。

蒙版帧数据为透明通道,当弹幕信息经过所述蒙版帧数据时,将所述弹幕信息与所述蒙版帧数据的透明度相乘绘制到帧图像中。显示弹幕信息时,可在蒙版帧数据边缘,弹幕渐变地从完全不透明到完全透明,使蒙版显得更加柔和自然,同时有效规避了算法对画面主体边缘识别精度不高的问题。

如图10-图11所示,一种计算机设备3,所述计算机设备3包括:

存储器31,用于存储可执行程序代码;以及

处理器32,用于调用所述存储器31中的所述可执行程序代码,执行步骤包括上述的服务器端处理信息流的方法。

如图10-图11中以一个处理器32为例。

存储器31作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的服务器端处理信息流的方法或客户端显示弹幕信息的方法对应的程序指令/模块。处理器32通过运行存储在存储器31中的非易失性软件程序、指令以及模块,从而执行计算机设备3的各种功能应用以及数据处理,即实现上述方法实施例服务器端处理信息流的方法或客户端显示弹幕信息的方法。

存储器31可以包括存储程序区和存储数据区,其中,存储程序区可存储搡作系统、至少一个功能所需要的应用程序;存储数据区可存储用户在计算机设备3的播放信息。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器31可选包括相对于处理器32远程设置的存储器31,这些远程存储器31可以通过网络连接至客户端或服务器端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器31中,当被所述一个或者多个处理器32执行时,执行上述任意方法实施例中的服务器端处理信息流的方法,例如,执行以上描述的图2-图4中的方法步骤,实现图8-图9所示的服务器端1的功能。

所述一个或者多个模块存储在所述存储器31中,当被所述一个或者多个处理器32执行时,执行上述任意方法实施例中的客户端显示弹幕信息的方法,例如,执行以上描述的图5-图7中的方法步骤,实现图8-图9所示的客户端2的功能。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的计算机设备3以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图10中的一个处理器32,可使得上述一个或多个处理器32可执行上述任意方法实施例中的服务器端处理信息流的方法,例如,执行以上描述的图2-图4中的方法步骤,实现图8-图9所示的服务器端的功能。

本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图11中的一个处理器32,可使得上述一个或多个处理器32可执行上述任意方法实施例中的服务器端处理信息流的方法,例如,执行以上描述的图5-图7中的方法步骤,实现图8-图9所示的客户端的功能。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

实施例一、

参考图12所示,以信息流处理系统应用于直播场景为例:用户通过推流端C在11:00-12:00期间进行直播,推流端C从11:00开始将信息流发送至服务器端D,服务器端D对接收到信息流进行解析,识别信息流中每一个第一数据单元的类型,其中,第一数据单元可以是视频单元,也可以是音频单元,若第一数据单元为视频单元,则对视频单元进行解码,获取视频单元中的帧图像、第一时间戳t1以及元信息,提取元信息中的第二时间戳t2,对帧图像进行识别生成蒙版帧数据,根据第一时间戳t1和第二时间戳t2获取蒙版帧数据相对于第二时间戳的时间戳偏移量,将该时间戳偏移量添加到蒙版帧数据中,将蒙版帧数以及相应的帧数据进行编码生成第二数据单元,根据原信息流的顺序将第二数据单元以及音频单元进行排序组合生成新的信息流,服务器端D将新的信息流以及弹幕信息推送至CDN节点,CDN节点对该信息流中的第二时间戳t2进行修改(例如:第二时间戳修改为t3);当客户端F在11:30时,向CDN节点请求直播信息流,CDN节点将经修改后的信息流及弹幕信息发送至客户端F,客户端F对信息流进行解析,提取音频信息、帧图像、蒙版帧数据和弹幕信息,根据时间戳偏移量及修改后的第二时间戳t3调整蒙版帧数据的显示时刻,以使帧图像、相应的蒙版帧数据和相应的弹幕信息在第二时间戳t3对应的时刻同时展示于显示屏幕中进行播放,其中弹幕信息经过蒙版帧数据时,显示蒙版帧数据对应的区域,避免弹幕信息遮挡帧图像中的主要内容,提升用户的视觉体验。

实施例二、

参考图12所示,以信息流处理系统应用于直播场景为例:用户通过推流端C在11:00-12:00期间进行直播,推流端C从11:00开始将信息流发送至服务器端D,服务器端D对接收到信息流进行解析,识别信息流中每一个第一数据单元的类型,其中,第一数据单元可以是视频单元,也可以是音频单元,若第一数据单元为视频单元,则对视频单元进行解码,获取视频单元中的帧图像、第一时间戳t1以及元信息,提取元信息中的第二时间戳t2,对帧图像进行识别生成蒙版帧数据,根据第一时间戳t1和第二时间戳t2获取蒙版帧数据相对于第二时间戳的时间戳偏移量,将该时间戳偏移量添加到蒙版帧数据中,将蒙版帧数以及相应的帧数据进行编码生成第二数据单元,根据原信息流的顺序将第二数据单元以及音频单元进行排序组合生成新的信息流,服务器端D将新的信息流以及弹幕信息推送至CDN节点;当客户端F在11:00时,向CDN节点请求直播信息流,CDN节点将经信息流及弹幕信息发送至客户端F,客户端F对信息流进行解析,提取音频信息、帧图像、蒙版帧数据和弹幕信息,根据时间戳偏移量及第二时间戳t2调整蒙版帧数据的显示时刻,以使帧图像、相应的蒙版帧数据和相应的弹幕信息在第二时间戳t2对应的时刻同时展示于显示屏幕中进行播放,其中弹幕信息经过蒙版帧数据时,显示蒙版帧数据对应的区域,避免弹幕信息遮挡帧图像中的主要内容,提升用户的视觉体验。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号