一种直播交互方法及装置与流程

文档序号:24387836发布日期:2021-03-23 11:22阅读:65来源:国知局
一种直播交互方法及装置与流程

本申请涉及视频处理领域,尤其涉及一种直播交互方法及装置。



背景技术:

在直播互动中,用户可以与直播进行互动。例如,用户给主播赠送礼物。

目前,用户的客户端、主播的客户端和服务端之间实现互动的过程可以包括:主播的客户端将直播视频流通过服务端发送给用户的客户端,用户的客户端将事先配置的交互元素渲染到直播视频流,得到渲染后的视频流,并对渲染后的视频流进行显示。用户的客户端在接收到互动指令(例如,赠送礼物)的情况下,从预设数据(以赠送礼物为例,预设数据可以包括赠送指令和礼物编码)与互动指令间的预设对应关系中,确定交互指令对应的数据,并将确定出的数据发送给服务端。服务端调用对应的业务接口,对接收的数据进行响应,并将响应结果数据分别发送给主播和用户的客户端。用户的客户端将响应结果数据渲染到直播视频流中进行显示。

但是,在用户与主播间的互动操作增加的情况下,需要调整用户的客户端与服务端间的约定的互动指令与互动对象编码,从而,需要对用户客户端与服务端都进行升级,从而,降低升级效率。



技术实现要素:

本申请提供了一种直播交互方法及装置,目的在于解决升级效率低的问题。

为了实现上述目的,本申请提供了以下技术方案:

本申请提供了一种直播交互方法,应用于服务端,包括:

将主播客户端发送的直播视频流与互动渲染流合成为一路视频流,得到合成视频流;所述互动渲染流是所述服务端对至少包括预设交互元素的交互界面编码得到;

将所述合成视频流发送给用户客户端;

在接收到任一用户客户端发送的触控数据的情况下,确定所述触控数据指示的交互操作;所述触控数据包括:用户在该用户客户端上触发的动作和区域;

对所述交互操作进行响应,得到结果数据;

将所述结果数据渲染到所述交互渲染流,得到目标渲染流;

将所述目标渲染流与在得到所述目标渲染流时接收到的直播视频流合成后的视频流,发送给所述用户客户端。

可选的,所述确定所述触控数据指示的交互操作,包括:

依据交互操作、触发动作和触发区域间的预设对应关系,确定所述用户在该用户客户端上触发的动作和区域,对应的交互操作。

可选的,在所述将所述直播视频流与互动渲染流合成为一路视频流,得到合成视频流之前,还包括:

判断是否满足目标交互操作的预设触发条件;

在未满足所述目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:仅包括预设交互元素的交互界面。

可选的,在满足目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:包括所述目标交互操作对应的交互元素和所述预设交互元素的交互界面。

本申请还提供了一种直播交互方法,应用于用户客户端,包括:

在接收到由直播视频流与交互渲染流合成的视频流的情况下,对所述视频流进行解码并显示;

在接收到表征用户触发交互操作的触发指令的情况下,将至少由所述触发指令指示的触发动作和触发区域构成的触发数据,发送给所述服务端;

在接收到服务端发送的目标渲染流的情况下,对所述目标渲染流进行解码并显示;所述目标渲染流是所述服务端将结果数据渲染到所述交互渲染流得到;所述结果数据是所述服务端通过对所述触发数据指示的交互操作进行响应得到。

本申请还提供了一种直播交互装置,应用于服务端,包括:

合成模块,用于将主播客户端发送的直播视频流与互动渲染流合成为一路视频流,得到合成视频流;所述互动渲染流是所述服务端对至少包括预设交互元素的交互界面编码得到;

第一发送模块,用于将所述合成视频流发送给用户客户端;

确定模块,用于在接收到任一用户客户端发送的触控数据的情况下,确定所述触控数据指示的交互操作;所述触控数据包括:用户在该用户客户端上触发的动作和区域;

响应模块,用于对所述交互操作进行响应,得到结果数据;

渲染模块,用于将所述结果数据渲染到所述交互渲染流,得到目标渲染流;

第二发送模块,用于将所述目标渲染流与在得到所述目标渲染流时接收到的直播视频流合成后的视频流,发送给所述用户客户端。

可选的,所述确定模块,用于确定所述触控数据指示的交互操作,包括:

所述确定模块,具体用于依据交互操作、触发动作和触发区域间的预设对应关系,确定所述用户在该用户客户端上触发的动作和区域,对应的交互操作。

可选的,该装置还包括:

判断模块,用于在所述合成模块将所述直播视频流与互动渲染流合成为一路视频流,得到合成视频流之前,判断是否满足目标交互操作的预设触发条件;

在未满足所述目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:仅包括预设交互元素的交互界面。

可选的,在满足目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:包括所述目标交互操作对应的交互元素和所述预设交互元素的交互界面。

本申请还提供了一种直播交互装置,应用于用户客户端,包括:

第一解码显示模块,用于在接收到由直播视频流与交互渲染流合成的视频流的情况下,对所述视频流进行解码并显示;

第三发送模块,用于在接收到表征用户触发交互操作的触发指令的情况下,将至少由所述触发指令指示的触发动作和触发区域构成的触发数据,发送给所述服务端;

第二加密显示模块,用于在接收到服务端发送的目标渲染流的情况下,对所述目标渲染流进行解码并显示;所述目标渲染流是所述服务端将结果数据渲染到所述交互渲染流得到;所述结果数据是所述服务端通过对所述触发数据指示的交互操作进行响应得到。

本申请所述的直播交互方法及装置,服务端在接收到主播客户端发送的直播视频流的情况下,将直播视频流与互动渲染流合成为一路视频流,得到合成视频流;将合成视频流发送给用户客户端;在接收到任一用户客户端发送的触控数据的情况下,确定触控数据指示的交互操作;对交互操作进行响应,得到结果数据;将结果数据渲染到交互渲染流,得到目标渲染流;将目标渲染流与在得到目标渲染流时接收到的直播视频流合成后的视频流,发送给用户客户端。

可以看出,在本申请中,交互渲染流是服务端生成的,并且,在用户触发交互操作后,用户客户端仅需发送触控数据,由服务端依据触控数据确定触控数据指示的交互操作,并对确定的交互操作进行响应,将响应得到的结果数据渲染到交互渲染流中,得到目标渲染流,并将目标渲染流发送给用户客户端。即对交互操作的处理过程中,客户端只需发送触控数据,因此,在需要增加交互操作时,客户端所需执行的流程不会改变,即客户端无需升级,仅需升级服务端即可,因此,本申请可以提高升级效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种直播交互方法的流程图;

图2为本申请实施例公开的又一种直播交互方法的流程图;

图3为本申请实施例公开的一种直播交互装置的结构示意图;

图4为本申请实施例公开的又一种直播交互装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的一种直播交互方法,可以包括以下步骤:

s101、主播客户端将录制的直播视频流发送给服务端。

在本实施例中,主播客户端实时对主播录制视频,得到直播视频流,并将生成的直播视频流发送给服务端。即在本实施例中,主播客户端是一直向服务端发送直播视频流的。

s102、服务端判断是否满足目标交互操作的预设触发条件,如果否,则执行s103,如果是,则执行s112。

在本申请实施例中,用户与主播间的交互操作可以分为两类,第一类是在满足一定的触发条件的情况下,用户与直播间才需要进行交互的操作,例如,投票。在本实施例中,为了描述方便,将该类交互操作称为目标交互操作。第二类是用户与主播间一直都可能发生的交互操作,例如,赠送礼物。

在本实施例中,对于目标交互操作对应有预设的触发条件,其中,每个目标交互操作对应的触发条件的内容,需要根据实际情况确定,本实施例不作限定。

在本步骤中,服务端判断是否满足目标交互操作的预设触发条件,如果否,则执行s103的动作,如果是,则执行s112的动作。

以目标交互操作为投票为例,在本实际中,如果需要开启投票,管理员从后台启动投票程序,即投票程序在服务端启动。在本步骤中,投票对应的预设触发条件为投票程序是否启动。如果未检测到投票程序启动,则执行s103,否则,执行s112。

s103、服务端将接收到的主播客户端发送的直播视频流与第一互动渲染流合成为一路视频流,得到第一合成视频流。

在不满足目标交互操作的预设触发条件的情况下,执行本步骤的操作。在本步骤中,将当前接收到的直播视频流与第一互动渲染流合成为一路视频流,为了描述方便,称为第一合成视频流。其中,第一互动渲染流是服务端对仅包括预设交互元素的交互界面编码得到,其中,预设交互元素指上述第二类交互操作的交互元素。即第一互动渲染流是服务端对仅包括第二类交互操作的交互元素的交互界面编码得到。

在本步骤中,服务端将第一互动渲染流与得到第一互动渲染流时接收到的直播视频流进行合成,其中,合成的具体实现方式为现有技术,这里不再赘述。

s104、服务端将第一合成视频流发送给用户客户端。

s105、用户客户端对第一合成视频流进行解码并显示。

在本步骤中,客户端对第一合成视频流进行解码,并将解码后的数据流进行显示,其中,解码与显示的具体实现方式为现有技术,这里不再赘述。

在本实施例中,用户客户端解码后的数据流显示在屏幕后,具体显示的图像包括第二类交互操作的交互元素,例如,表征赠送礼物的图标。

s106、用户客户端在接收到表征用户触发交互操作的触发指令的情况下,将至少由触发动作和触发区域构成的触发数据,发送给服务端。

用户如果想给主播赠送礼物,则可以触发客户端上表征赠送礼物的图标。在该情况下,用户客户端可以接收到表征用户触发交互操作的触发指令,并且,用户客户端可以获取到用户触发该交互操作的触发动作、触发位置的坐标,以及依据触发位置的坐标生成的坐标区域。为了描述方便,将用户客户端获取到的触发动作和触发区域,称为触控数据。可选,触控数据还可以包括触发位置的坐标。

例如,用户客户端接收到触发赠送礼物的指令,用户客户端可以获取到触发赠送礼物的动作(例如,点击、双击或比手势等)、在屏幕上触发赠送礼物的图片的位置的坐标,以及由坐标生成的触发区域。

s107、服务端在接收到任一用户客户端发送的触控数据的情况下,确定触控数据指示的交互操作。

在本步骤中,服务端在接收到任一用户客户端发送的触发数据的情况下,确定触控数据指示的交互操作。

可选的,服务端中事先配置有触发动作、触发区域与交互操作间的预设对应关系,在本步骤中,服务端依据该对应关系,确定接收到的触控数据中触发动作与触发区域对应的交互操作。

s108、服务端对交互操作进行响应,得到结果数据。

在本步骤中,服务端可以调用交互操作对应的接口,实现对交互操作的响应,得到结果数据。以交互操作为赠送礼物为例,本步骤得到的结果数据可以为“xx赠送了xx礼物”。

s109、服务端将结果数据渲染到第一交互渲染流,得到第一目标渲染流。

在本步骤中,服务端将结果数据渲染到第一交互渲染流中,为了描述方便,将渲染后的结果称为第一目标渲染流。其中,渲染的具体实现方式为现有技术,这里不再赘述。

s110、服务端将第一目标渲染流与在得到第一目标渲染流时接收到的直播视频流合成后的视频流,发送给用户客户端。

在本步骤中,服务端将得到第一目标渲染流时接收到的直播视频流与第一目标渲染流进行合成,并将合成后的视频流发送给每个用户客户端。

需要说明的是,在本实施例中,服务端在执行完本步骤后,在接收到直播视频流的情况下,还是将直播视频流与第一交互渲染流进行合成。

s111、客户端在接收到服务端发送的第一目标渲染流的情况下,对第一目标渲染流进行解码并显示。

在本步骤中,对第一目标渲染流进行解码,并对解码后的数据流进行显示,其中,解码和显示的具体实现方式为现有技术,这里不再赘述。

s112、服务端将直播视频流与第二互动渲染流合成为一路视频流,得到第二合成视频流。

在满足目标交互操作对应的预设触发条件的情况下,执行本步骤的操作。

在本步骤中,第二互动渲染流为对包括目标交互操作对应的交互元素和预设交互元素的交互界面进行编码得到,即对第一类交互操作的交互元素和第二类交互操作的交互元素的交互界面进行编码,得到第二互动渲染流。例如,第一类交互操作包括投票,第二类交互操作包括赠送礼物,在本步骤中,对包含投票和赠送礼物分别对应的交互元素(例如,图标)的交互界面进行编码。

s113、服务端将第二合成视频流发送给用户客户端。

s114、用户客户端对第二合成视频流进行解码并显示。

在本步骤中,对第二合成视频流进行解码,得到解码后的数据流,并对解码后的数据流进行显示,其中,解码和显示的具体实现方式为现有技术,这里不再赘述。

s115、用户客户端在接收到表征用户触发交互操作的触发指令的情况下,将至少由触发动作和触发区域构成的触发数据,发送给服务端。

在本步骤中,触控数据包括:用户在该用户客户端上触发的动作和区域。

本步骤的含义和具体实现原理,可以参考s106,这里不再赘述。

s116、服务端在接收到任一用户客户端发送的触控数据的情况下,确定触控数据指示的交互操作。

本步骤的含义和具体实现原理,可以参考s107,这里不再赘述。

s117、服务端对交互操作进行响应,得到结果数据。

本步骤的含义和具体实现原理,可以参考s108,这里不再赘述。

s118、服务端将结果数据渲染到第二交互渲染流,得到第二目标渲染流。

本步骤的含义和具体实现原理,可以参考s109,这里不再赘述。

s119、服务端将第二目标渲染流与在得到第二目标渲染流时接收到的直播视频流合成后的视频流,发送给用户客户端。

本步骤的含义和具体实现原理,可以参考s110,这里不再赘述。

s120、用户客户端在接收到服务端发送的第二目标渲染流的情况下,对第二目标渲染流进行解码并显示。

本步骤的含义和具体实现原理,可以参考s111,这里不再赘述。

图2为本申请实施例提供的又一种直播交互方法,可以包括以下步骤:

s201、主播客户端将录制的直播视频流发送给服务端。

本步骤的含义以及具体实现方式,可以参考s101,这里不再赘述。

s202、服务端将主播客户端发送的直播视频流与互动渲染流合成为一路视频流,得到合成视频流。

在本实施例中,互动渲染流是服务端对至少包括预设交互元素的交互界面编码得到。

其中,在未满足目标交互操作的预设触发条件的情况下,至少包括预设交互元素的交互界面具体为:仅包括预设交互元素的交互界面。

在满足目标交互操作的预设触发条件的情况下,至少包括预设交互元素的交互界面具体为:包括目标交互操作对应的交互元素和预设交互元素的交互界面。

s203、服务端将合成视频流发送给用户客户端。

s204、用户客户端在接收到由直播视频流与交互渲染流合成的视频流的情况下,对视频流进行解码并显示。

在本步骤中,对接收的视频流进行解码,并将解码后的数据流进行显示。其中,解码和显示的具体实现方式为现有技术,这里不再赘述。

s205、用户客户端在接收到表征用户触发交互操作的触发指令的情况下,将至少由触发动作和触发区域构成的触发数据,发送给服务端。

在本实施例中,触控数据包括:用户在该用户客户端上触发的动作和区域。可选的,在实际中,触控数据还可以包括用户在屏幕上触发交互操作的位置的坐标。

本步骤的含义以及具体实现原理可以参考s106,这里不再赘述。

s206、服务端在接收到任一用户客户端发送的触控数据的情况下,确定触控数据指示的交互操作。

本步骤的含义以及具体实现原理,可以参考s107,这里不再赘述。

s207、服务端对交互操作进行响应,得到结果数据。

本步骤的含义以及具体实现原理,可以参考s108,这里不再赘述。

s208、服务端将结果数据渲染到交互渲染流,得到目标渲染流。

本步骤的含义以及具体实现原理,可以参考s109,这里不再赘述。

s209、服务端将目标渲染流与在得到目标渲染流时接收到的直播视频流合成后的视频流,发送给用户客户端。

本步骤的含义以及具体实现原理,可以参考s110,这里不再赘述。

s210、用户客户端在接收到视频流后,对接收的视频流进行解码和显示。

在本步骤中,用户客户端对接收的视频流进行解码,并对解码后的视频流进行显示。其中,解码和显示的具体实现方式为现有技术,这里不再赘述。

本实施例具有以下有益效果:

有益效果一:

在本实施例中,服务端将直播视频流与交互渲染流进行合成,并将合成后的视频流发送给用户客户端,由于发送的是一路视频流,因此,可以节省带宽。

有益效果二:

在本实施例中,渲染操作是服务端执行的,因此,服务端可以使用高质量的素材,并且,还可以进行复杂的3d计算,从而达到现有技术的客户端无法达到的渲染效果。

有益效果三:

在本实施例中,用户客户端发送触控数据,对服务端发送的视频流进行解码和显示,因此,用户客户端不需要下载脚本或者加载程序,因此,能够快速适应不同直播互动的需要。

图3为本申请实施例提供的一种直播交互装置,应用于服务端,可以包括:合成模块301、第一发送模块302、确定模块303、响应模块304、渲染模块305和第二发送模块306,其中,

合成模块301,用于将主播客户端发送的直播视频流与互动渲染流合成为一路视频流,得到合成视频流;所述互动渲染流是所述服务端对至少包括预设交互元素的交互界面编码得到;

第一发送模块302,用于将所述合成视频流发送给用户客户端;

确定模块303,用于在接收到任一用户客户端发送的触控数据的情况下,确定所述触控数据指示的交互操作;所述触控数据包括:用户在该用户客户端上触发的动作和区域;

响应模块304,用于对所述交互操作进行响应,得到结果数据;

渲染模块305,用于将所述结果数据渲染到所述交互渲染流,得到目标渲染流;

第二发送模块306,用于将所述目标渲染流与在得到所述目标渲染流时接收到的直播视频流合成后的视频流,发送给所述用户客户端。

可选的,确定模块303,用于确定所述触控数据指示的交互操作,包括:

确定模块303,具体用于依据交互操作、触发动作和触发区域间的预设对应关系,确定所述用户在该用户客户端上触发的动作和区域,对应的交互操作。

可选的,还可以包括执行模块,用于在所述将所述直播视频流与互动渲染流合成为一路视频流,得到合成视频流之前,判断是否满足目标交互操作的预设触发条件;在未满足所述目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:仅包括预设交互元素的交互界面。

可选的,在满足目标交互操作的预设触发条件的情况下,所述至少包括预设交互元素的交互界面为:包括所述目标交互操作对应的交互元素和所述预设交互元素的交互界面。

图4为本申请实施例提供的一种直播交互装置,应用于用户客户端,可以包括:第一解码显示模块401、第三发送模块402和第二加密显示模块403,其中,

第一解码显示模块401,用于在接收到由直播视频流与交互渲染流合成的视频流的情况下,对视频流进行解码并显示。

第三发送模块402,用于在接收到表征用户触发交互操作的触发指令的情况下,将至少由触发指令指示的触发动作和触发区域构成的触发数据,发送给服务端;

第二加密显示模块403,用于在接收到服务端发送的目标渲染流的情况下,对目标渲染流进行解码并显示;目标渲染流是服务端将结果数据渲染到交互渲染流得到;结果数据是服务端通过对触发数据指示的交互操作进行响应得到。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1