本发明涉及互联网技术领域,尤其涉及数据处理方法及系统。
背景技术:
用户在观看直播的过程中,会通过发送弹幕或礼物的方式来增加用户和用户之间,以及用户和主播之间的互动,当用户发送弹幕或礼物后,弹幕文字和礼物横幅会以滚动的方式在直播画面上呈现,以便于被其它用户所查看。而对于直播平台中某些人气较大的主播,其直播间中弹幕和礼物的数量较多,因而其直播间直播画面上的弹幕文字和礼物横幅量较大,对直播画面进行遮挡,为了不影响对直播的观看,大多数用户会通过选择开关屏蔽直播画面上的弹幕文字和礼物横幅,但用户选择屏蔽弹幕和礼物的方式,使得直播画面上无法呈现用于进行互动的弹幕和礼物,降低直播间的互动性。
技术实现要素:
针对直播场景下弹幕过多影响观看效果的问题,现提供一种旨在可保证直播互动性的前提下不影响观看直播画面效果的数据处理方法及系统。
本发明提供了一种服务器端数据处理方法,包括下述步骤:
服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据;
所述服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端。
优选的,所述第一信息流包括至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息。
优选的,所述服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据的步骤,包括:
所述服务器端获取所述第一信息流中至少一个第一数据单元;
所述服务器端对所述第一数据信息进行解码,获取帧图像;
所述服务器端识别所述帧图像内的主体区域;
所述服务器端根据所述帧图像内的主体区域生成与所述帧图像对应的蒙版帧数据。
优选的,所述服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端的步骤,包括:
所述服务器端将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;
所述服务器端将所述第二数据信息与所述元信息结合生成所述第二数据单元;
所述服务器端将多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至客户端。
优选的,所述第一信息流采用实时消息传输协议。
优选的,所述第二信息流采用实时消息传输协议。
本发明还提供了一种客户端数据处理方法,包括下述步骤:
客户端获取服务器端发送的第二信息流和弹幕信息;
所述客户端对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据;
所述客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
优选的,所述客户端对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据的步骤,包括:
所述客户端获取所述第二信息流中的所述第二数据单元,所述第二数据单元包括元信息和第二数据信息;
所述客户端对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版帧数据。
优选的,所述客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示的步骤,包括:
所述客户端根据所述蒙版帧数据对应的元信息,调整所述蒙版帧数据的显示时刻,使所述帧图像及与所述帧图像对应的所述蒙版帧数据及相应的弹幕信息进行同步显示。
本发明还提供了一种数据处理系统,包括服务器端和客户端;其中,
服务器端用于识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据,将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至所述客户端;
所述客户端用于获取服务器端发送的第二信息流和弹幕信息,对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据,将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述服务器端数据处理方法的步骤。
本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述客户端数据处理方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述服务器端数据处理方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述客户端数据处理方法的步骤。
上述技术方案的有益效果:
本技术方案中,通过服务器端识别第一信息流中帧图像的主体区域,生成蒙版帧数据,将帧图像与蒙版帧数据合并,生成第二信息流,并将第二信息流发送至客户端;客户端获取对服务器端发送的第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据,将蒙版帧数据对应的区域、弹幕信息及帧图像绘制到屏幕上进行同步显示,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证直播互动性的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。
附图说明
图1为本发明所述的数据处理系统的一种应用场景的框架图;
图2为本发明所述的服务器端数据处理方法的一种实施例的方法流程图;
图3为生成蒙版帧数据的一种实施例的方法流程图;
图4为生成第二信息流的一种实施例的方法流程图;
图5为本发明所述的客户端数据处理方法的一种实施例的方法流程图;
图6为对第二数据单元解析的一种实施例的方法流程图;
图7为本发明所述的数据处理系统的一种实施例的流程图;
图8为本发明所述数据处理系统的一种实施例的模块图;
图9为本发明生成单元的一种实施例的模块图;
图10为本发明计算机设备的一个实施例的硬件架构图;
图11为本发明计算机设备的另一个实施例的硬件架构图;
图12为本发明所述的数据处理系统的一种实施例的示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
本申请实施例的视频可以呈现于大型视频播放设备、游戏机、台式计算机、智能手机、平板电脑、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压縮标准音频层)播放器、mp4(movingpictureexpertsgroupaudiolayerlv,动态影像专家压縮标准音频层面)播放器、膝上型便携计算机、电子书阅读器以及其它显示终端等客户端。
本申请实施例的数据处理系统可以应用在直播场景中,比如说,可以应用在电商直播、培训直播、赛事直播、新闻发布直播、观众与主播/视放送方的互动视频、互动游戏的播放(例如:业界的《黑镜》或《隐形的守护者》等)等在线业务中。本申请实施例以数据处理系统应用于直播视频为例子,但是并不局限于此。
本申请实施例中,参考图1所示,数据处理系统中服务器端由视频云源站、蒙版集群、蒙版调度端、蒙版控制端及配置后台等组成。推流端(直播端或主播端)向视频云源站发送直播视频流,视频云源站向蒙版控制端发送转码请求,蒙版控制端向蒙版调度端发送转码请求,蒙版调度端接收到转码请求后,向蒙版集群发送任务分配请求,查询蒙版集群中是否有空闲的ai机器,其中,ai机器为蒙版识别实例,每一个ai机器为一个直播间服务;若没有空闲的ai机器则向蒙版控制端反馈异常状态回调,若有空闲的ai机器,则向视频云源站拉取rtmp(realtimemessagingprotocol,实时消息传输协议)视频流,通过ai机器对视频流中的每一个帧图像进行识别生成蒙版帧数据,并将蒙版帧数据推流至视频云源站,视频云源站根据将蒙版帧数据与源视频流中的帧图像进行合成,生成携带有蒙版帧数据的视频流并推送至cdn(contentdeliverynetwork,即内容分发网络)节点中。用户观看直播视频时,通过客户端(播放端或拉流端)向配置后台请求播放链接,配置后台接收到播放链接请求后,向蒙版控制端查询开启状态请求,蒙版控制端查询数据库(db),获取直播间是否允许开启蒙版服务,并将获取的反馈通知,若用户访问的直播间允许开启蒙版服务,则用户的客户端可通过cdn拉取携带有蒙版帧数据的视频流,客户端对该视频流进行解析,通过播放器播放视频信息,对蒙版弹幕进行渲染,从而在客户端的显示屏幕上显示视频图像、蒙版帧及弹幕信息,使弹幕显示于蒙版帧以外的区域,从而提升用户的观看效果。此处只给出两个配置后台、一个客户端和一个推流端,此处的应用场景还可以包括多个配置后台、多个客户端,以及多个推流端。视频云源站可以是云端服务器,还可以是本地服务器。客户端和推流端的设备可以是移动设备,或其他可以进行上传视频的智能终端均可适用。
本发明为解决直播场景下弹幕过多影响观看效果的缺陷,提出了一种可保证直播互动性的前提下不影响观看直播画面效果的服务器端数据处理方法。参阅图2,其为一符合本发明一优选实施例的服务器端数据处理方法流程示意图,从图中可以看出,本实施例中所提供的服务器端数据处理方法主要包括以下步骤:
a1.服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据;
在本步骤中,所述第一信息流可包括至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息。所述元信息可包括:确定所述第一数据信息中帧图像显示时刻的第二时间戳,第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。
需要说明的是:所述第一数据单元采用实时消息传输协议。第一数据单元可采用avpacket数据结构。第一数据信息可以是待解码的视频图像信息。
在本实施例中,服务器端数据处理方法应用于服务器端,服务器端对推流端上传的第一信息流中的每一个第一数据单元进行处理。推流端的第一信息流通过实时消息传输协议上传至服务器端。其中,推流端可以采用安卓系统、ios系统、windows系统或macosx系统等。
进一步地,步骤a1的具体过程为(参考图3):
a11.所述服务器端获取所述第一信息流中至少一个第一数据单元;
a12.所述服务器端对所述第一数据信息进行解码,获取帧图像;
于本步骤中,可通过解码器对第一数据信息进行解码,获取帧图像及与所述帧图像对应的第一时间戳;
需要说明的是:在本步骤中的第一时间戳不同于第二时间戳,第一时间戳为蒙版帧数据的显示时间戳。
a13.所述服务器端识别所述帧图像内的主体区域;
需要说明的是,所述主体区域可选自以下至少一种:
人物区域范围、动物区域范围、风景区域范围、建筑区域范围、艺术品区域范围、文字区域范围,以及区别于人物、动物、建筑、艺术的背景区域范围。
作为举例而非限定,可采用语义分割模型(例如:fcn、dilatednet、deeplab等模型)识别帧图像内的主体区域;
作为较为优选的实施例,语义分割模型可采用deeplab模型。deeplab模型具有效果好、速度快的优点。deeplab模型主要包括用于提取特征图的网络骨干(backbone)、用于增强特征减少特征图尺寸影响的特征增强层和用于预测每一像素对应的类别的分类层(0类通常是背景(background),用的比较多的类别是coco数据集的91类,包含人物、一些动物、一些常见物体等)。
a14.所述服务器端根据所述帧图像内的主体区域生成与所述帧图像对应的蒙版帧数据。
具体地,在步骤a14的具体过程包括:
根据所述帧图像内的主体区域生成与所述帧图像对应图像数据,对所述图像数据进行编码生成蒙版帧数据。
在实际应用中,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,提高数据的压缩率,节省数据的存储空间,便于数据的传输。
需要说明的是:所述可缩放矢量图形文件采用可扩展标记语言格式。目标数据为svg图形,svg图形是可伸缩的,可以在改变尺寸的情况下保持其图形质量。svg可以使用一些预定义的形状元素来描述图形,例如:矩形、线、路径等。
具体地,在步骤a14还可包括:根据所述第一时间戳及第二时间戳获取所述蒙版帧数据的时间戳偏移量,将所述时间戳偏移量存储于所述蒙版帧数据中,以便于定位蒙版帧数据与相应的帧图像之间的时间差。
于本步骤中,将第一时间戳及第二时间戳相减获取时间戳偏移量,该时间戳偏移量表示蒙版帧数据的时间戳与第二时间戳之间的时间戳偏移量。
a2.所述服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端。
需要说明的是:所述第二信息流采用实时消息传输协议。
于本步骤中,通过将解码后的帧图像、获取的蒙版帧数据以及元信息合成,进而生成携带蒙版帧数据的第二数据单元,根据元信息将多个第二数据单元有序排列进而生成第二信息流,服务器端可将该第二信息流发生至客户端,供客户端观看配置有蒙版弹幕的视频图像。
步骤a2的具体过程为(参考图4):
a21.所述服务器端将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;
作为举例而非限定,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,可提高数据的压缩率,节省数据的存储空间,便于数据的传输。
在对蒙版帧数据进行编码的同时对帧图像进行压缩编码以减少数据的传输。
a22.所述服务器端将所述第二数据信息与所述元信息结合生成所述第二数据单元;
a23.所述服务器端将多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至客户端。
在本实施例中,服务器端通过服务器端识别第一信息流中帧图像的主体区域,生成蒙版帧数据,将帧图像与蒙版帧数据合并,生成第二信息流,并将第二信息流发送至客户端,以便于客户端在显示第二数据单元中的帧图像及蒙版帧数据时,使蒙版帧数据与帧图像同时显示,保证用户观看流畅度的同时,提升观看体验。
上述服务器端数据处理方法主要描述的是在服务器端对数据处理的方法流程,在客户端对数据处理时,客户端数据处理方法包括下述步骤(参考图5):
b1.客户端获取服务器端发送的第二信息流和弹幕信息;
需要说明的是:所述第二信息流采用实时消息传输协议。
b2.所述客户端对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据;
在本实施例中,客户端数据处理方法应用于客户端,客户端对服务器端发送的第二信息流中的每一个第二数据单元进行解析处理,以获取相应的帧图像及蒙版帧数据。
步骤b2具体的过程为(参考图6):
b21.所述客户端获取所述第二信息流中的所述第二数据单元,所述第二数据单元包括元信息和第二数据信息;
需要说明的是:第二数据单元采用avpacket数据结构。第二数据信息为待解码的视频图像信息。
所述元信息可包括:确定所述第二数据信息中帧图像显示时刻的第二时间戳,第二时间戳为帧图像在客户端播放的时间戳;元信息还可包括索引、数据时长等其他信息。其中,客户端可以采用安卓系统、ios系统、windows系统或macosx系统等。
b22.所述客户端对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版帧数据。
于本实施例中,第二数据信息中的蒙版帧数据为二进制文件,在进行解码时,对二进制文件中的每一键值对进行解码。采用键值对可有效的区分出相应的二进制数据表示的含义,以便于在解码过程,保证的数据的完整性。
b3.所述客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
步骤b3的具体过程为:
所述客户端根据所述蒙版帧数据对应的元信息,调整所述蒙版帧数据的显示时刻,使所述帧图像及与所述帧图像对应的所述蒙版帧数据及相应的弹幕信息进行同步显示。
在本步骤中,客户端可根据蒙版帧数据的时间戳偏移量及元信息中的第二时间戳,调整蒙版帧数据的显示时刻,使蒙版帧数据的显示时刻与第二时间戳同步;在第二时间戳对应的时刻显示帧图像、弹幕信息及与帧图像对应的蒙版帧数据。
需要说明的是:在第二时间戳对应的时刻显示所述帧图像及与所述帧图像对应的所述蒙版帧数据的步骤之前,还可对蒙版帧数据进行边缘羽化处理,提高蒙版帧边缘的光滑度,从而提升视觉效果。
在实际应用中,客户端对接收到的视频及弹幕进行显示时,当蒙版帧数据对应的区域为人物区域时,弹幕信息不在人物区域范围显示,显示于除人物区域范围以外的区域;当蒙版帧数据对应的区域为文字区域范围时,弹幕信息不在文字区域范围显示,显示于除文字区域范围以外的区域;当蒙版帧数据对应的区域为区别于人物、动物、建筑、艺术的背景区域范围时,弹幕信息不在背景区域范围显示,显示于除背景区域范围以外的区域。
在本实施例中,客户端对第二信息流进行解析,获取帧图像及相应的携带时间戳偏移量的蒙版帧数据,从而实现在显示第二数据单元中的帧图像及蒙版帧数据时,可根据时间戳偏移量调整的蒙版帧数据的显示时刻,使蒙版帧数据与帧图像同时显示,保证用户观看流畅度的同时,提升观看体验。
如图7-图9所示,本发明还提供一种数据处理系统,包括服务器端1和客户端2;其中,
服务器端1用于识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据,将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至所述客户端2;
所述客户端2用于获取服务器端1发送的第二信息流和弹幕信息,对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据,将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
数据处理系统具体流程如下(参考图7):
s1.服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据;
s2.服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流;
s3.服务器端将所述第二信息流发送至所述客户端;
s4.服务器端将弹幕信息发送至所述客户端;
s5.客户端对服务器端发送的所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据;
s6.客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
如图8所示,服务器端1可包括生成单元11和合并单元12;其中:
生成单元11,用于识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据;
所述第一信息流可包括至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息。所述元信息可包括:确定所述第一数据信息中帧图像显示时刻的第二时间戳,第二时间戳为帧图像在客户端2播放的时间戳;元信息还可包括索引、数据时长等其他信息。
需要说明的是:所述第一数据单元采用实时消息传输协议。第一数据单元可采用avpacket数据结构。第一数据信息可以是待解码的视频图像信息。
参考图9所示,生成单元11可包括:获取模块111、解码模块112、识别模块113和生成模块114;其中:
获取模块111,用于获取所述第一信息流中至少一个第一数据单元;
解码模块112,用于对所述第一数据信息进行解码,获取帧图像。解码模块112可通过解码器对第一数据信息进行解码,获取帧图像及与所述帧图像对应的第一时间戳;
识别模块113,用于识别所述帧图像内的主体区域;
需要说明的是,所述主体区域可选自以下至少一种:
人物区域范围、动物区域范围、风景区域范围、建筑区域范围、艺术品区域范围、文字区域范围,以及区别于人物、动物、建筑、艺术的背景区域范围。
作为举例而非限定,可采用语义分割模型(例如:fcn、dilatednet、deeplab等模型)识别帧图像内的主体区域;
作为较为优选的实施例,语义分割模型可采用deeplab模型。deeplab模型具有效果好、速度快的优点。deeplab模型主要包括用于提取特征图的网络骨干(backbone)、用于增强特征减少特征图尺寸影响的特征增强层和用于预测每一像素对应的类别的分类层。
生成模块114,用于根据所述帧图像内的主体区域生成与所述帧图像对应的蒙版帧数据。生成模块114根据帧图像内的主体区域生成与帧图像对应图像数据,对图像数据进行编码生成蒙版帧数据。
在实际应用中,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,提高数据的压缩率,节省数据的存储空间,便于数据的传输。
需要说明的是:可缩放矢量图形文件采用可扩展标记语言格式。目标数据为svg图形,svg图形是可伸缩的,可以在改变尺寸的情况下保持其图形质量。svg可以使用一些预定义的形状元素来描述图形,例如:矩形、线、路径等。
具体地,生成模块114可根据所述第一时间戳及第二时间戳获取所述蒙版帧数据的时间戳偏移量,将所述时间戳偏移量存储于所述蒙版帧数据中,以便于定位蒙版帧数据与相应的帧图像之间的时间差。将第一时间戳及第二时间戳相减获取时间戳偏移量,该时间戳偏移量表示蒙版帧数据的时间戳与第二时间戳之间的时间戳偏移量。合并单元12,用于将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端2。
需要说明的是:所述第二信息流采用实时消息传输协议。
合并单元12通过将解码后的帧图像、获取的蒙版帧数据以及元信息合成,进而生成携带蒙版帧数据的第二数据单元,根据元信息将多个第二数据单元有序排列进而生成第二信息流,服务器端1可将该第二信息流发生至客户端2,供客户端2观看配置有蒙版弹幕的视频图像。
合并单元12将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;将所述第二数据信息与所述元信息结合生成所述第二数据单元;将多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至客户端2。
作为举例而非限定,蒙版帧数据可采用可缩放矢量图形文件,根据可缩放矢量图形文件中的目标数据及其对应的类型,对每一目标数据及相应的类型进行编码,生成标识有目标数据类型的二进制文件,可提高数据的压缩率,节省数据的存储空间,便于数据的传输。
在对蒙版帧数据进行编码的同时对帧图像进行压缩编码以减少数据的传输。
参考图8所示,客户端2可包括:接收单元21、解析单元22和绘制单元23,其中:
接收单元21,用于获取服务器端1发送的第二信息流和弹幕信息;
需要说明的是:所述第二信息流采用实时消息传输协议。
解析单元22,用于对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据;
解析单元22获取第二信息流中的第二数据单元,对第二数据信息进行解码,获取帧图像及与帧图像对应的蒙版帧数据将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示
其中,第二数据单元包括元信息和第二数据信息。
需要说明的是:第二数据单元采用avpacket数据结构。第二数据信息为待解码的视频图像信息。元信息包括:确定第二数据信息中帧图像显示时刻的第二时间戳,第二时间戳为帧图像在客户端2播放的时间戳;元信息还可包括索引、数据时长等其他信息。其中,客户端2可以采用安卓系统、ios系统、windows系统或macosx系统等。
第二数据信息中的蒙版帧数据为二进制文件,在进行解码时,对二进制文件中的每一键值对进行解码。采用键值对可有效的区分出相应的二进制数据表示的含义,以便于在解码过程,保证的数据的完整性。
绘制单元23,用于将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
在本实施例中,绘制单元23根据所述蒙版帧数据对应的元信息,调整所述蒙版帧数据的显示时刻,使所述帧图像及与所述帧图像对应的所述蒙版帧数据及相应的弹幕信息进行同步显示。绘制单元23根据蒙版帧数据的时间戳偏移量及元信息中的第二时间戳,调整蒙版帧数据的显示时刻,使蒙版帧数据的显示时刻与第二时间戳同步;在第二时间戳对应的时刻显示帧图像、弹幕信息及与帧图像对应的蒙版帧数据。
需要说明的是:在第二时间戳对应的时刻显示所述帧图像及与所述帧图像对应的所述蒙版帧数据的步骤之前,还可对蒙版帧数据进行边缘羽化处理,提高蒙版帧边缘的光滑度,从而提升视觉效果。
在本实施例中,通过服务器端1识别第一信息流中帧图像的主体区域,生成蒙版帧数据,将帧图像与蒙版帧数据合并,生成第二信息流,并将第二信息流发送至客户端2;客户端2获取对服务器端1发送的第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据,将蒙版帧数据对应的区域、弹幕信息及帧图像绘制到屏幕上进行同步显示,使蒙版帧数据与帧图像及相应的弹幕信息同时显示,保证直播互动性的同时,使弹幕信息显示于除蒙版帧数据对应的区域以外的区域,避免弹幕对帧图像中主要内容的遮挡,提升用户观看体验。
如图10-图11所示,一种计算机设备2,所述计算机设备3包括:
存储器31,用于存储可执行程序代码;以及
处理器32,用于调用所述存储器31中的所述可执行程序代码,执行步骤包括上述的服务器端数据处理方法或客户端数据处理方法。
图10中以一个处理器32为例。
存储器31作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的服务器端数据处理方法或客户端数据处理方法对应的程序指令/模块。处理器32通过运行存储在存储器31中的非易失性软件程序、指令以及模块,从而执行计算机设备3的各种功能应用以及数据处理,即实现上述方法实施例服务器端数据处理方法或客户端数据处理方法。
存储器31可以包括存储程序区和存储数据区,其中,存储程序区可存储搡作系统、至少一个功能所需要的应用程序;存储数据区可存储用户在计算机设备3的播放信息。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器31可选包括相对于处理器32远程设置的存储器31,这些远程存储器31可以通过网络连接至服务器端或客户端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器31中,当被所述一个或者多个处理器32执行时,执行上述任意方法实施例中的服务器端数据处理方法,例如,执行以上描述的图2-图4中的方法步骤,实现图8所示的数据处理系统中服务器端的功能。
所述一个或者多个模块存储在所述存储器31中,当被所述一个或者多个处理器32执行时,执行上述任意方法实施例中的服务器端数据处理方法,例如,执行以上描述的图5-图6中的方法步骤,实现图8所示的数据处理系统中客户端的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的计算机设备3以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图10中的一个处理器32,可使得上述一个或多个处理器32可执行上述任意方法实施例中的服务器端数据处理方法,例如,执行以上描述的图2-图4中的方法步骤,实现图8所示的服务器端的功能。
本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图11中的一个处理器32,可使得上述一个或多个处理器32可执行上述任意方法实施例中的客户端数据处理方法,例如,执行以上描述的图5-图6中的方法步骤,实现图8所示的客户端的功能。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(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对应的时刻同时展示于显示屏幕中进行播放,其中弹幕信息经过蒙版帧数据时,显示蒙版帧数据对应的区域,避免弹幕信息遮挡帧图像中的主要内容,提升用户的视觉体验。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
1.一种服务器端数据处理方法,其特征在于,包括下述步骤:
服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据;
所述服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端。
2.根据权利要求1所述的服务器端数据处理方法,其特征在于,所述第一信息流包括至少一个第一数据单元,所述第一数据单元包括元信息和第一数据信息。
3.根据权利要求2所述的服务器端数据处理方法,其特征在于,所述服务器端识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据的步骤,包括:
所述服务器端获取所述第一信息流中至少一个第一数据单元;
所述服务器端对所述第一数据信息进行解码,获取帧图像;
所述服务器端识别所述帧图像内的主体区域;
所述服务器端根据所述帧图像内的主体区域生成与所述帧图像对应的蒙版帧数据。
4.根据权利要求2所述的服务器端数据处理方法,其特征在于,所述服务器端将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至客户端的步骤,包括:
所述服务器端将所述帧图像与相应的蒙版帧数据进行编码,获取第二数据信息;
所述服务器端将所述第二数据信息与所述元信息结合生成所述第二数据单元;
所述服务器端将多个所述第二数据单元组合生成所述第二信息流,并将所述第二信息流发送至客户端。
5.根据权利要求1所述的服务器端数据处理方法,其特征在于,所述第一信息流采用实时消息传输协议。
6.根据权利要求1所述的服务器端数据处理方法,其特征在于,所述第二信息流采用实时消息传输协议。
7.一种客户端数据处理方法,其特征在于,包括下述步骤:
客户端获取服务器端发送的第二信息流和弹幕信息;
所述客户端对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据;
所述客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
8.根据权利要求7所述的客户端数据处理方法,其特征在于,所述客户端对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据的步骤,包括:
所述客户端获取所述第二信息流中的所述第二数据单元,所述第二数据单元包括元信息和第二数据信息;
所述客户端对所述第二数据信息进行解码,获取帧图像及与所述帧图像对应的所述蒙版帧数据。
9.根据权利要求8所述的客户端数据处理方法,其特征在于,所述客户端将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示的步骤,包括:
所述客户端根据所述蒙版帧数据对应的元信息,调整所述蒙版帧数据的显示时刻,使所述帧图像及与所述帧图像对应的所述蒙版帧数据及相应的弹幕信息进行同步显示。
10.一种数据处理系统,其特征在于,包括服务器端和客户端;其中,
服务器端用于识别第一信息流中至少一帧图像的主体区域,生成蒙版帧数据,将所述帧图像与所述蒙版帧数据合并,生成第二信息流,并将所述第二信息流发送至所述客户端;
所述客户端用于获取服务器端发送的第二信息流和弹幕信息,对所述第二信息流中的第二数据单元进行解析,获取至少一个帧图像及相应的蒙版帧数据,将蒙版帧数据对应的区域、弹幕信息及所述帧图像绘制到屏幕上进行同步显示。
11.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
12.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求7至9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求7至9任一项所述方法的步骤。
技术总结