发明内容
本申请提供一种直播交互方法、直播系统、电子设备及存储介质,以解决现有技术中直播交互互动方式单一的问题。
为解决上述技术问题,本申请采用的一个技术方案是提供一种直播交互方法,所述直播交互方法应用于直播系统,所述直播系统包括主播端、观众端以及服务器;
所述直播交互方法包括:
所述主播端采集轮廓信息和直播视频,将所述轮廓信息编码到视频码流的网络提取层,将所述直播视频编码到所述视频码流的视频编码层,并将编码后的所述视频码流上传到所述服务器;
所述服务器将编码后的所述视频码流发送给所述观众端;
所述主播端和/或所述观众端进一步获取所述服务器生成的触发指令,并基于所述触发指令获取对应的特效信息;
所述主播端和/或所述观众端从编码后的所述视频码流解码出所述轮廓信息和所述直播视频,并基于所述轮廓信息将所述特效信息渲染到所述直播视频。
为解决上述技术问题,本申请采用的另一个技术方案是提供一种直播系统,所述直播系统至少包括主播端、观众端以及服务器;
所述主播端,用于采集轮廓信息和直播视频,将所述轮廓信息编码到视频码流的网络提取层,将所述直播视频编码到所述视频码流的视频编码层,并将编码后的所述视频码流上传到所述服务器;
所述服务器,用于将编码后的所述视频码流发送给所述观众端;
所述主播端和/或所述观众端,用于进一步获取所述服务器生成的触发指令,并基于所述触发指令获取对应的特效信息;
所述主播端和/或所述观众端,还用于从编码后的所述视频码流解码出所述轮廓信息和所述直播视频,并基于所述轮廓信息将所述特效信息渲染到所述直播视频。
为解决上述技术问题,本申请采用的另一个技术方案是提供另一种直播交互方法,所述直播交互方法应用于一种电子设备,所述直播交互方法包括:
采集轮廓信息和直播视频,将所述轮廓信息编码到视频码流的网络提取层,将所述直播视频编码到所述视频码流的视频编码层,并将编码后的所述视频码流上传到所述服务器,以使所述服务器将编码后的所述视频码流发送给所述观众端;
进一步获取触发指令,并基于所述触发指令获取对应的特效信息;
从编码后的所述视频码流解码出所述轮廓信息和所述直播视频,并基于所述轮廓信息将所述特效信息渲染到所述直播视频。
为解决上述技术问题,本申请采用的另一个技术方案是提供一种电子设备,所述电子设备包括存储器以及与所述存储器耦接的处理器;
其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的直播交互方法。
为解决上述技术问题,本申请采用的另一个技术方案是提供一种计算机存储介质,其中存储有计算机程序,计算机程序被执行时实现上述直播交互方法的步骤。
区别于现有技术,本申请的有益效果是:主播端采集轮廓信息和直播视频,将轮廓信息编码到视频码流的网络提取层,将直播视频编码到视频码流的视频编码层,并将编码后的视频码流上传到服务器;服务器将编码后的视频码流发送给观众端;主播端和/或观众端进一步获取服务器生成的触发指令,并基于触发指令获取对应的特效信息;主播端和/或观众端从编码后的视频码流解码出轮廓信息和直播视频,并基于轮廓信息将特效信息渲染到直播视频。通过本申请的直播交互方法,可以在直播过程中,将人物和特效渲染在一起展示,能够有效增强连麦互动的趣味性,使得直播内容更加丰富,从而提高网络直播的互动性。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请首先提出了一种直播交互方法,可以应用于直播系统。其中,本实施例应用的直播系统至少包括主播端、观众端以及服务器。
在直播交互过程中,主播端和观众端分别与服务器建立通信连接,以使主播端可以通过服务器进行直播交互,观众端可以通过服务器观看主播端的直播内容。
与主播端对应的电子设备均可以为例如智能手机、平板电脑、笔记本电脑、台式电脑或者可穿戴设备等电子设备,与观众端对应的电子设备也可以是例如智能手机、平板电脑、笔记本电脑、台式电脑或者可穿戴设备等电子设备。
多个观众端对应的设备类型与主播端对应的设备类型可以相同或不同。
主播端以及观众端均可以与服务器建立例如WIFI、蓝牙或者ZigBee等无线连接。
请继续参阅图1,图1是本申请提供的直播交互方法第一实施例的流程示意图。本实施例的直播交互方法可以应用于上述的直播系统,直播系统的具体结构在此不再赘述。
具体地,本实施例的直播交互方法具体包括以下步骤:
S101:主播端采集轮廓信息和直播视频,将轮廓信息编码到视频码流的网络提取层,将直播视频编码到视频码流的视频编码层,并将编码后的视频码流上传到服务器。
其中,主播端将AI数据,即轮廓信息与直播视频通过视频码流一同上传到服务器。具体流程结合图1和图2进行描述,其中,图2是本申请提供的主播端上行逻辑的流程示意图。
具体地,主播端采集的轮廓信息可以为主播的人体轮廓信息,也可以是其它预先设置的标的轮廓信息,例如,预设的标的轮廓可以是直播视频中常出现的物体轮廓。在下述实施例的描述中,本申请以人体轮廓信息为例进行描述。
具体地,主播端对摄像头录制的直播视频进行视频采集,以获取视频的颜色数据,即YUV数据。其中YUV是一种颜色编码方法,常常被用在各个视频处理组件中。YUV在对照片或视频编码时,会考虑到人类的感知能力,允许降低色度的带宽。YUV是编译true-color颜色空间(colorspace)的种类,其中,“Y”表示明亮度(Luminance、Luma),“U”表示色度(Chrominance),“V”表示浓度(Chroma)。
主播端获取视频的颜色数据后,进行AI处理,以得到直播视频中的人体轮廓信息,其中,人体轮廓至少包括脸部轮廓以及肢体轮廓。主播端采用H.264/H.265等视频压缩标准将人体轮廓信息编码到视频码流的网络提取层中,具体地,主播端将人体轮廓信息压缩并编码到视频码流网络提取层中的SEI中,SEI即补充增强信息(Supplemental EnhancementInformation),属于码流范畴,SEI提供了向视频码流中加入额外信息的方法。SEI的基本特征包括:1.并未解码过程的必须选项;2.可能对解码过程(容错、纠错)有帮助;3.集成在视频码流中。
在本实施例中,主播端将人体轮廓信息编码到SEI,使得人体轮廓信息能够与直播视频通过视频码流一起传输到服务器,即图2中的主播网络。
进一步地,主播端由于应用程序版本没有及时更新或者设备性能不满足展示AI特效的要求时,主播端将及时告知服务器以及对应的观众端。例如,主播端开播时检测设备性能能否支持展示AI特效,若能,则在进行人体轮廓信息采集时主动上报服务器该主播端目前能够支持AI特效礼物;若服务器没有接收到主播端关于AI特效的上报协议,则认为该主播端不支持AI特效。
此处的上报协议的意义包括:
(1)当主播端在不支持AI特效礼物的老版本应用程序开播时,观众端在支持AI特效礼物的新版本应用程序送礼时会有对应的提示,用以提示观众即系给主播赠送AI特效礼物,主播端也无法展示该AI特效礼物。
(2)当主播端的终端设备性能较差,不支持实时采集人体轮廓信息的功能时,则当观众端赠送对应的AI特效礼物时,也会有对应的反馈提示。
若在直播过程中出现异常情况,例如观众赠送了一种AI特效礼物,但是主播端的应用程序版本不支持或者主播端的终端设备性能不支持时,向观众发送对应的提示:这时可以播放默认的特效动画,但是这种特效动画不结合主播的人脸或人体轮廓。
S102:服务器将编码后的视频码流发送给观众端。
其中,服务器将编码后的视频码流发送给观众端,其中,编码后的视频码流的SEI信息中携带有主播的人体轮廓信息。
S103:主播端和/或观众端进一步获取服务器生成的触发指令,并基于触发指令获取对应的特效信息。
其中,在直播交互的过程中,服务器会通过赠送礼物触发或者识别人体动作触发的方式生成对应的触发指令,用以指示主播端和观众端基于该触发指令下载对应的特效信息。
生成触发指令的方式主要有以下两种:
(1)服务器获取观众端发送的礼物信息时,判断该礼物信息的种类是普通礼物信息还是AI特效礼物信息。当观众端发送的是AI特效礼物信息时,服务器基于该AI特效礼物信息生出触发指令。
(2)服务器预设有多种动作指令,当接收到主播端编码后的视频码流时,服务器识别直播视频中主播的动作,例如手势等。当在直播视频中主播做出服务器预设的动作时,服务器基于该动作生成对应触发指令。例如,服务器识别到主播做出手势比行的动作时,触发天使围绕该主播头像飞三圈,然后亲吻主播的脸蛋的触发指令。
进一步地,由于在直播过程中,很多AI特效礼物都是重复展示,对应的特效信息主播端和/或观众端在第一次下载时可以缓存在本地,以供下一次触发相同AI特效礼物时使用。因此,主播端和/或观众端接收到触发指令时,先在本地缓存区搜索是否存在该触发指令对应的特效信息。若存在,主播端和/或观众端直接提取缓存区的特效信息;若不存在,主播端和/或观众端基于该触发指令向服务器发送请求信息,以使服务器发送请求信息对应的特效信息。
进一步地,主播端和/或观众端在较短时间内接收到多条AI特效礼物的触发指令时,按照接收时间顺序将多条AI特效礼物的触发指令放到队列中,从而按照时间顺序播放对应的AI特效礼物。
S104:主播端和/或观众端从编码后的视频码流解码出人体轮廓信息和直播视频,并基于人体轮廓信息将特效信息渲染到直播视频,以显示对应的直播界面。
其中,当主播端和/或观众端接收到服务器的触发指令时,主播端和/或观众端会从编码后的视频码流的网络提取层中解码出SEI信息,从而获取SEI信息中的人体轮廓信息。主播端和/或观众端将解码的人体轮廓信息输入动画渲染器进行渲染,动画渲染器根据对应的礼物类型,获取到对应礼物类型的动画播放资源,即S103中的特效信息后,会将动画播放资源根据人体轮廓信息进行渲染绘制。
例如,动画播放资源为围绕人体飞三圈,然后翅膀跌落到视频外部时,渲染器则结合人体轮廓信息展示在人体轮廓做围绕三圈的绘制,并将其翅膀掉落绘制在直播视频区域的外部的画面。
通过动画渲染器的渲染,主播端和/或观众端能够基于人体轮廓信息将特效信息渲染到直播视频,并显示对应的直播界面。直播界面的具体示意图请参阅图3,图3是本申请提供的AI特效动画的示意图。直播界面上包括主播的人体轮廓11以及特效动画12。其中,特效动画12围绕人体轮廓11展示,可以产生特效动画12挡人效果,或者特效动画12在人体上的部分透明效果。例如,飞机特效围绕人体飞一周,飞到人体背后时消失;或者从直播视频区域产生特效效果开始,飞到视频区域人体的某个部分。
在本实施例中,主播端采集轮廓信息和直播视频,将轮廓信息编码到视频码流的网络提取层,将直播视频编码到视频码流的视频编码层,并将编码后的视频码流上传到服务器;服务器将编码后的视频码流发送给观众端;主播端和/或观众端进一步获取服务器生成的触发指令,并基于触发指令获取对应的特效信息;主播端和/或观众端从编码后的视频码流解码出轮廓信息和直播视频,并基于轮廓信息将特效信息渲染到直播视频。通过本申请的直播交互方法,可以在直播过程中,将人物和特效渲染在一起展示,能够有效增强连麦互动的趣味性,使得直播内容更加丰富,从而提高网络直播的互动性。
在上述S104中,由于人体轮廓信息是来自于主播端的直播视频,当主播端从编码后的视频码流的SEI信息中获取人体轮廓信息后,主播端可以直接使用动画渲染器对人体轮廓信息和特效信息渲染到直播视频。但在其它实施例中,当观众端从编码后的直播视频的SEI信息中获取人体轮廓信息后,若观众端的视频分辨率与主播端的视频分辨率不同时,观众端可能无法直接基于人体轮廓信息对特效信息进行动画渲染。因此,本申请提出了另一种直播交互方法,具体请参阅图4,图4是本申请提供的直播交互方法第二实施例的流程示意图。
如图4所示,本实施例的直播交互方法具体包括以下步骤:
S201:观众端基于轮廓信息获取主播端的视频分辨率。
其中,观众端一方面获取自身的视频分辨率,一方面根据解码出的人体轮廓信息或者直播视频获取主播端的视频分辨率。
S202:在观众端的视频分辨率与主播端的视频分辨率不同的情况下,观众端基于主播端的视频分辨率对轮廓信息进行坐标的等比转换。
其中,当观众端的视频分辨率与主播端的视频分辨率相同时,观众端不需求对人体轮廓信息进行转换。当观众端的视频分辨率与主播端的视频分辨率不同时,观众端需要对人体轮廓的坐标信息进行等比转换。
例如,主播端是在视频分辨率为1920*1680的终端设备上进行开播,主播端采集到的人体轮廓信息的坐标系是在该分辨率下的,观众端是在视频分辨率为1080*720的终端设备上进行观看;此时,观众端需要按照观众端与主播端的视频分辨率的比例对人体轮廓信息进行坐标系的等比转换,以使经过动画渲染器对人体轮廓信息和特效信息渲染的直播视频能够在观众端上正常显示。
在本实施例中,针对主播端的视频分辨率和观众端的视频分辨率不同的情况,观众端可以根据两个客户端的视频分辨率关系对人体轮廓信息进行坐标系的等比转换,以使本申请的直播交互方法能够适应于不同的终端设备。
对于上述实施例的S101,本申请提出了另一种具体的直播交互方法,具体请参阅图5,图5是本申请提供的直播交互方法第三实施例的流程示意图。
如图5所示,本实施例的直播交互方法具体包括以下步骤:
S301:主播端基于业务需求以及传输的带宽要求确定轮廓信息的采集点数量,并基于采集点数量采集轮廓信息。
其中,主播端在开播过程中实时采集主播的人体轮廓信息,采集人体轮廓信息的采集点数量取决于对应业务以及传输的带宽要求。
例如,如果需要实现全身人体的特效效果,此时可以通过相对较多的采集点用来表示采集的人体轮廓信息,如通过256个采集点表示整个人体的轮廓。如果需要实现人脸的特效效果,此时可以通过相对较少的采集点用来表示人脸的轮廓信息,如通过68个点表示人脸的轮廓信息。
S302:主播端判断编码后的视频码流的所需要的带宽是否大于或等于预设带宽。
其中,主播端采集人体轮廓信息后,将人体轮廓信息压缩并编码到视频码流。如图2所示,主播端在传输编码后的视频码流之前,需要检测传输的内容是否符合要求。
S303:主播端丢弃人体轮廓信息。
检测的内容至少可以包括以下两个方面:
(1)主播端可以判断编码后的视频码流的所需要的带宽是否大于或等于上行带宽;若是,为了保证直播的流程性,主播端需要在上行带宽不足的情况下丢弃人体轮廓信息。
(2)主播端也可以判断人体轮廓信息的大小是否大于预设字节;若是,为了保证直播的流程性,主播端需要在上行带宽不足的情况下丢弃人体轮廓信息。例如,当人体轮廓信息大于400Bytes时,主播端需要将人体轮廓信息丢弃,再传输视频码流。
进一步地,主播端丢弃全部或部分人体轮廓信息的情况下,主播端在下个时序采集人体轮廓信息时可以基于丢弃的人体轮廓信息大小适应性减少采集人体轮廓信息所需要的采集点,进而减少后续传输的人体轮廓信息的大小。
在上述实施例中,直播交互方法可以应用于单一主播端,即单人特效玩法。在其它实施例中,本申请的直播交互方法也可以应用于多主播的情况,即多人特效玩法。
具体请参阅图6,图6是本申请提供的直播交互方法第四实施例的流程示意图。其中,上述实施例中的主播端可以包括第一主播端和第二主播端。
如图6所示,本实施例的直播交互方法具体包括以下步骤:
S401:第一主播端采集第一轮廓信息和第一直播视频,将第一轮廓信息编码到第一视频码流的网络提取层,将第一直播视频编码到第一视频码流的视频编码层,并将编码后的第一视频码流上传到服务器。
S402:第二主播端采集第二轮廓信息和第二直播视频,将第二轮廓信息编码到第二视频码流的网络提取层,将第二直播视频编码到第二视频码流的视频编码层,并将编码后的第二视频码流上传到服务器。
其中,在S401和S402中,第一主播端和第二主播端分别进行人体轮廓信息采集以及编码,具体过程与上述实施例中的S101相同,在此不再赘述。
S403:服务器将编码后的第一视频码流和编码后的第二视频码流发送给观众端,将编码后的第一视频码流发送给第二主播端,将编码后的第二视频码流发送给第一主播端。
S404:第一主播端、第二主播端和/或观众端进一步获取服务器生成的触发指令,并基于触发指令获取对应的特效信息。
S405:第一主播端从编码后的第二视频码流解码出第二轮廓信息和第二直播视频,第二主播端从编码后的第一视频码流解码出第一轮廓信息和第一直播视频,观众端从编码后的第一视频码流和编码后的第二视频码流解码出第一轮廓信息、第二轮廓信息、第一直播视频以及第二直播视频。
其中,请结合图7,图7是本申请提供的主播端下行逻辑的流程示意图。以第二主播端从编码后的第一视频码流解码出第一人体轮廓信息为例进行描述,具体地,主播网络,即服务器将编码后的第一视频码流传输给第二主播端。第二主播端将编码后的第一视频码流中的SEI信息剥除,从而解码出第一人体轮廓信息。
S406:第一主播端、第二主播端和观众端将第一直播视频和第二直播视频进行视频混画,获得交互视频,并基于第一轮廓信息、第二轮廓信息将特效信息渲染到交互视频。
其中,请结合图8和图9对本步骤进行解读。主播网络在获取第一直播视频和第二直播视频后,将两个直播视频进行视频混画,从而得到交互视频。其中,交互视频中包括第一人体轮廓信息、第二人体轮廓信息以及第一直播视频和第二直播视频的混画布局。
进一步地,主播网络还可以对交互视频进行视频转码,并传输到CDN网络(ContentDelivery Network,内容分发网络),以适应不同的网络带宽、不同的终端处理能力和不同的用户需求,其中,转码后的交互视频包括转码参数。
请参阅图9的观众端下行逻辑的流程示意图,CDN网络将转码后的交互视频发送给观众端,观众端将转码后的交互视频中的SEI信息剥除,从而解码出第一人体轮廓信息、第二人体轮廓信息、混画布局以及转码参数。
为了实现上述实施例的直播交互方法,本申请提出了一种直播系统,具体请参阅图10,图10是本申请提供的直播系统一实施例的结构示意图。
本实施例的直播系统200至少包括主播端21、观众端22以及服务器23。其中,主播端21、观众端22分别与服务器23实现通信连接。
主播端21,用于采集轮廓信息,将轮廓信息编码到视频码流的网络提取层,将所述直播视频编码到所述视频码流的视频编码层,并将编码后的视频码流上传到服务器23。
服务器23,用于将编码后的视频码流发送给观众端22。
主播端21和/或观众端22,用于进一步获取服务器23生成的触发指令,并基于触发指令获取对应的特效信息。
主播端21和/或观众端22,还用于从编码后的视频码流解码出轮廓信息和直播视频,并基于轮廓信息将特效信息渲染到直播视频。
为了解决上述技术问题,本申请还提出了另一种直播交互方法,具体请参阅图11,图11是本申请提供的直播交互方法第五实施例的流程示意图。本实施例的直播交互方法应用于一种电子设备,具体可以为上述直播系统200中的主播端21,在此不再赘述。
如图11所示,本实施例的直播交互方法具体包括以下步骤:
S501:采集轮廓信息和直播视频,将轮廓信息编码到视频码流的网络提取层,将直播视频编码到视频码流的视频编码层,并将编码后的视频码流上传到服务器,以使服务器将编码后的视频码流发送给观众端。
S502:进一步获取触发指令,并基于触发指令获取对应的特效信息。
S503:从编码后的视频码流解码出轮廓信息和直播视频,并基于轮廓信息将特效信息渲染到直播视频。
为了实现上述实施例的直播交互方法,本申请提出了一种电子设备,具体请参阅图12,图12是本申请提供的电子设备一实施例的结构示意图。
本实施例的电子设备300包括存储器31和处理器32,其中,存储器31与处理器32耦接。
其中,存储器31用于存储程序数据,处理器32用于执行程序数据以实现上述实施例的直播交互方法。
在本实施例中,处理器32还可以称为CPU(Central Processing Unit,中央处理单元)。处理器32可能是一种集成电路芯片,具有信号的处理能力。处理器32还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器32也可以是任何常规的处理器等。
本申请还提供一种计算机存储介质,请继续参阅图13,图13是本申请提供的计算机存储介质一实施例的结构示意图,该计算机存储介质400中存储有程序数据41,该程序数据41在被处理器执行时,用以实现上述实施例的直播交互方法。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。