直播视频连麦的实现方法、装置、终端和存储介质转让专利

申请号 : CN201910105552.1

文献号 : CN109729379B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑伟成廖津津

申请人 : 广州虎牙信息科技有限公司

摘要 :

本发明实施例公开了一种直播视频连麦的实现方法、装置、终端和存储介质。其中,方法包括:获取本地视频的信息和连麦方视频的信息;根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;拉取连麦方发送的连麦方视频流,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;将所述连麦视频流和所述显示分辨率推送至观众侧设备。本发明实施例使得不同视频信息的角色之间能够实现视频连麦,不受分辨率和设备的影响。

权利要求 :

1.一种直播视频连麦的实现方法,其特征在于,包括:

获取本地视频的信息和连麦方视频的信息;

根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;

拉取连麦方发送的连麦方视频流,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;

分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;

将所述连麦视频流和所述显示分辨率推送至观众侧设备;

其中,所述视频的信息至少包括视频显示在的设备类型、视频的品类、视频的横竖屏、期望的连麦视频的分辨率中的一种。

2.根据权利要求1所述的方法,其特征在于,

所述根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率,包括以下操作中的任一种:根据与本地视频的品类和连麦方视频的品类所需的视觉效果,确定与所述视觉效果对应的本地视频的分辨率、连麦方视频的分辨率和显示分辨率;

根据本地视频的横竖屏和/或连麦方视频的横竖屏,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率;

根据移动端视频的信息,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率,所述移动端包括本地或者连麦方;

根据本地期望的连麦视频的分辨率和/或连麦方期望的连麦视频的分辨率,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率。

3.根据权利要求1所述的方法,其特征在于,所述获取本地视频的信息和连麦方视频的信息,包括:响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息;以及,接收连麦方发送的连麦方视频的信息。

4.根据权利要求3所述的方法,其特征在于,在所述响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息之前,还包括:生成本地的连麦接受指令或者向连麦方发送连麦邀请指令;

启动网络包心跳,并通过网络包心跳同步本地和服务端的连麦状态;

所述响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息,包括:响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并通过网络包心跳将本地视频的信息同步至服务端,以供服务端将本地视频的信息发送至连麦方。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流,包括:按照本地视频的分辨率,将本地视频数据渲染至符合显示分辨率的显示区域的第一预设区域;

对连麦方视频流解码后,将解码后的视频数据,按照连麦方视频的分辨率渲染至所述显示区域的第二预设区域;

分别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流。

6.根据权利要求5所述的方法,其特征在于,所述分别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流,包括:将第一预设区域内的各图像与第二预设区域内的各图像分别进行拼接;

将拼接后的各图像与所述显示区域的第三预设区域内的各连麦互动信息分别进行叠加;

对叠加后的各图像按照显示分辨率进行编码,生成连麦视频流。

7.一种直播视频连麦的实现方法,其特征在于,包括:

接收主播侧设备发送的显示分辨率,并存储所述显示分辨率,所述显示分辨率根据主播视频的信息和连麦方视频的信息得到;

拉取主播侧设备发送的连麦视频流,所述连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,所述主播视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;

如果所述连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用所述显示分辨率对所述连麦视频流进行解码并渲染至所述显示界面。

8.一种直播视频连麦的实现装置,其特征在于,包括:

信息获取模块,用于获取本地视频的信息和连麦方视频的信息;

分辨率获取模块,用于根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;

视频流拉取模块,用于拉取连麦方发送的连麦方视频流,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;

视频流生成模块,用于分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;

推送模块,用于将所述连麦视频流和所述显示分辨率推送至观众侧设备;

其中,所述视频的信息至少包括视频显示在的设备类型、视频的品类、视频的横竖屏、期望的连麦视频的分辨率中的一种。

9.一种直播视频连麦的实现装置,其特征在于,包括:

分辨率接收模块,用于接收主播侧设备发送的显示分辨率,并存储所述显示分辨率,所述显示分辨率根据主播视频的信息和连麦方视频的信息得到;

视频流拉取模块,用于拉取主播侧设备发送的连麦视频流,所述连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,所述主播视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;

视频流渲染模块,用于如果所述连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用所述显示分辨率对所述连麦视频流进行解码并渲染至所述显示界面。

10.一种终端,其特征在于,所述终端包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的直播视频连麦的实现方法。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的直播视频连麦的实现方法。

说明书 :

直播视频连麦的实现方法、装置、终端和存储介质

技术领域

[0001] 本发明实施例涉及直播技术,尤其涉及一种直播视频连麦的实现方法、装置、终端和存储介质。

背景技术

[0002] 在网络直播平台的直播视频连麦架构中,参与的角色包括连麦发起者、连麦接受者和观众,参与角色之间通过服务端进行视频交互。连麦发起者与连麦接受者视频连麦成功后,观众可在观众侧设备上同时看到连麦发起者与连麦接受者的视频。
[0003] 现有技术中,分辨率相同或相近的视频流才能进行连麦,而在大多数网络直播平台中,不同品类或者不同开播设备的视频流的分辨率往往相差较大,导致不同品类或者使用不同开播设备的角色之间不能实现视频连麦。

发明内容

[0004] 本发明实施例提供一种直播视频连麦的实现方法、装置、终端和存储介质,以使得不同视频信息的角色之间能够实现视频连麦,不受分辨率和设备的影响。
[0005] 第一方面,本发明实施例提供了一种直播视频连麦的实现方法,包括:
[0006] 获取本地视频的信息和连麦方视频的信息;
[0007] 根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;
[0008] 拉取连麦方发送的连麦方视频流,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;
[0009] 分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;
[0010] 将所述连麦视频流和所述显示分辨率推送至观众侧设备。
[0011] 第二方面,本发明实施例还提供了一种直播视频连麦的实现方法,包括:
[0012] 接收主播侧设备发送的显示分辨率,并存储所述显示分辨率,所述显示分辨率根据主播视频的信息和连麦方视频的信息得到;
[0013] 拉取主播侧设备发送的连麦视频流,所述连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,所述本地视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;
[0014] 如果所述连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用所述显示分辨率对所述连麦视频流进行解码并渲染至所述显示界面。
[0015] 第三方面,本发明实施例还提供了一种直播视频连麦的实现装置,包括:
[0016] 信息获取模块,用于获取本地视频的信息和连麦方视频的信息;
[0017] 分辨率获取模块,用于根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;
[0018] 视频流拉取模块,用于拉取连麦方发送的连麦方视频流,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;
[0019] 视频流生成模块,用于分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;
[0020] 推送模块,用于将所述连麦视频流和所述显示分辨率推送至观众侧设备。
[0021] 第四方面,本发明实施例还提供了一种直播视频连麦的实现装置,包括:
[0022] 分辨率接收模块,用于接收主播侧设备发送的显示分辨率,并存储所述显示分辨率,所述显示分辨率根据主播视频的信息和连麦方视频的信息得到;
[0023] 视频流拉取模块,用于拉取主播侧设备发送的连麦视频流,所述连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,所述本地视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,所述连麦方视频流采用所述连麦方视频的分辨率进行编码;
[0024] 视频流渲染模块,用于如果所述连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用所述显示分辨率对所述连麦视频流进行解码并渲染至所述显示界面。
[0025] 第五方面,本发明实施例还提供了一种终端,所述终端包括:
[0026] 一个或多个处理器;
[0027] 存储器,用于存储一个或多个程序,
[0028] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的直播视频连麦的实现方法。
[0029] 第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的直播视频连麦的实现方法。
[0030] 本发明实施例中,通过获取本地视频的信息和连麦方视频的信息;根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率,从而按照视频的信息,约定合适的分辨率;通过拉取连麦方发送的连麦方视频流,并分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流,并将连麦视频流和所述显示分辨率推送至观众侧设备,从而使得不同视频信息的视频能够进行拼接,进而不同视频信息的角色之间能够实现视频连麦,不受分辨率和设备的影响。

附图说明

[0031] 图1a是本发明实施例一提供的一种直播视频连麦的实现方法的流程图;
[0032] 图1b是本发明实施例一提供的一种本地视频连麦方视频和连麦视频的示意图;
[0033] 图1c是本发明实施例一提供的另一种本地视频连麦方视频和连麦视频的示意图;
[0034] 图1d是本发明实施例一提供的视频连麦中各角色的视频流交互信令图;
[0035] 图2是本发明实施例二提供的一种直播视频连麦的实现方法的流程图;
[0036] 图3是本发明实施例三提供的一种直播视频连麦的实现方法的流程图;
[0037] 图4是本发明实施例一提供的一种直播视频连麦的实现方法的流程图;
[0038] 图5是本发明实施例五提供的一种直播视频连麦的实现装置的结构示意图;
[0039] 图6是本发明实施例六提供的一种终端的结构示意图;
[0040] 图7是本发明实施例七提供的一种直播视频连麦的实现装置的结构示意图;
[0041] 图8是本发明实施例八提供的一种终端的结构示意图。

具体实施方式

[0042] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0043] 实施例一
[0044] 图1a是本发明实施例一提供的一种直播视频连麦的实现方法的流程图,本实施例可适用于在网络直播平台中,主播侧设备进行视频连麦的情况,该方法可以由直播视频连麦的实现装置来执行,该装置可以由硬件和/或软件构成,并一般集成在终端,此终端是主播侧设备。由于主播既可以发起视频连麦又可以接受视频连麦,为了方面描述和区分,本实施例中的“本地”指一主播侧设备,“连麦方”指另一主播侧设备,本地或者连麦方均可以发起连麦邀请,并接受对方的连麦邀请。结合图1a,本发明实施例提供的方法具体包括如下操作:
[0045] S110、获取本地视频的信息和连麦方视频的信息。
[0046] 本地视频的信息至少包括本地视频显示在的设备类型、本地视频的品类、本地视频的横竖屏和本地期望的连麦视频的分辨率中的一种。连麦方视频的分辨率至少包括连麦方视频显示在的设备类型、连麦方视频的品类、连麦方视频的横竖屏和连麦方期望的连麦视频的分辨率中的一种。
[0047] 具体地,在网络直播平台中,视频的品类包括户外、游戏、美食、二次元等。如果视频的宽大于高,则视频为横屏;如果视频的宽小于高,则视频为竖屏。本地或者连麦方期望的连麦视频的分辨率指本地或者连麦方想要与对方合成的连麦视频的分辨率。
[0048] 可选地,连麦方的数量为至少一个。当连麦方的数量为两个以上时,应获取每个连麦方视频的信息。
[0049] S120、根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0050] 图1b是本发明实施例一提供的一种本地视频连麦方视频和连麦视频的示意图。结合图1b,本实施例中,将本地视频和连麦方视频拼接为连麦视频流,以供观众侧设备对连麦视频流进行显示。
[0051] 其中,本地视频的分辨率指本地视频在连麦视频中的分辨率,连麦方视频的分辨率指连麦方视频在连麦视频中的分辨率。优选地,本地视频的分辨率与连麦方视频的分辨率相同。
[0052] 连麦视频的分辨率为连麦视频流在观众侧设备进行显示时的显示分辨率,显示分辨率大于等于本地视频的分辨率和连麦方视频的分辨率之和。图1b中,本地视频的分辨率为A*B,连麦方视频的分辨率为A*B,显示分辨率为(2A)*B。
[0053] 可选地,根据本地视频的信息和连麦视频的信息,按照预设规则,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。下面,分别针对至少一种视频的信息,详细说明本地视频的分辨率、连麦方视频的分辨率和显示分辨率的获得方法。
[0054] (1)本地视频和连麦方视频的信息包括品类,则根据品类所需的视觉效果,预设与品类对应的至少一组本地视频的分辨率、连麦方视频的分辨率和显示分辨率。例如在美食品类中,预设本地视频和连麦方视频的分辨率均为A*B,A小于B,显示分辨率为2A*B,使得本地视频和连麦视频以竖屏形式显示,提高观众的观看舒适度和视频的美观性。基于此,根据前述预设的分辨率,得到品类所需的视觉效果对应的本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0055] (2)本地视频和连麦方视频的信息包括横竖屏,则根据其中一方的横竖屏或者双方横竖屏,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。一种情况下,本地视频和连麦方视频均是横屏或者竖屏,且原始分辨率相同。其中,原始分辨率指仅播放本地视频或者连麦方视频的场景下,视频的分辨率。为了使拼接后的视频具有视觉效果上的一致性,则将本地视频和连麦方视频的分辨率均设置为原始分辨率,将显示分辨率设置为本地视频的分辨率和连麦方视频的分辨率之和,如图1b所示。另一种情况下,本地视频和连麦方视频均是横屏、竖屏或者一个是横屏一个是竖屏,且原始分辨率不同,则将较小的原始分辨率的宽,确定为本地视频和连麦方视频的宽;将较小的原始分辨率的高,确定为本地视频和连麦方视频的高。如图1c所示,本地视频的原始分辨率为A*B(竖屏),连麦方视频的原始分辨率为B*A(横屏),则本地视频和连麦方视频的分辨率均为A*A,显示分辨率为2A*A(横屏)或者A*2A(竖屏)。进一步,可以根据品类确定横屏还是竖屏。
[0056] (3)本地视频和连麦方视频的信息包括视频显示在的设备类型,设备类型包括移动设备(例如手机、掌上电脑等)和非移动设备(例如PC终端)。一般情况下,非移动设备的设备性能和网络质量优于移动设备。基于此,如果本地和连麦方一个是移动端,另一个是非移动端,则根据移动端视频的信息,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率。例如,根据移动端期望的连麦视频的分辨率,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率;又例如,根据移动端的品类和/或横竖屏,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率。如果本地和连麦方均是移动端或者均是非移动端,则根据视频的品类、横竖屏和期望的连麦视频的分辨率中的至少一种,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0057] (4)本地视频和连麦方视频的信息包括期望的连麦视频的分辨率,则根据其中一个期望的连麦视频的分辨率或者两个期望的连麦视频的分辨率,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。例如,根据本地(或者连麦方)期望的连麦视频的分辨率2A*A,得到本地视频的分辨率A*A、连麦方视频的分辨率A*A和显示分辨率2A*A;又例如,根据本地期望的连麦视频的分辨率A*B和连麦方期望的连麦视频的分辨率B*A,得到本地视频的分辨率A*A、连麦方视频的分辨率A*A和显示分辨率2A*A,如图1c所示。进一步可选地,参考视频的品类、横竖屏和设备类型,综合得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率,实现分辨率的多样化、个性化设置。
[0058] 值得说明的是,上述本地视频的分辨率、连麦方视频的分辨率和显示分辨率的获得方法仅是示例性的,任何根据视频的信息得到视频的分辨率和显示分辨率的方法均在本实施例的保护范围之内。S130、拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率进行编码。
[0059] 图1d是本发明实施例一提供的视频连麦中各角色的视频流交互信令图。结合图1d,本地与连麦方通过服务端进行视频流交互。本地视频数据采用本地视频的分辨率进行编码,生成本地视频流,并将本地视频流发送至服务端。连麦方从服务端拉取本地视频流。
相应地,连麦方也同样获取本地视频的信息和连麦方视频的信息,并根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。然后,连麦方采用连麦方视频的分辨率对视频数据进行编码,生成连麦方视频流,并将连麦方视频流发送至服务端。本地从服务端拉取连麦方发送的连麦方视频流。
[0060] S140、分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流。
[0061] 拼接后的视频包括本地视频和连麦方视频。本地视频的分辨率和连麦方视频的分辨率为S120中确定的分辨率。
[0062] 对于连麦方来说,同样地,按照本地视频的分辨率和连麦方视频的分辨率,将本地视频流和连麦方视频数据拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流。
[0063] S150、将连麦视频流和显示分辨率推送至观众侧设备。
[0064] 结合图1d,本地和连麦方分别将连麦视频流和显示分辨率发送至服务端,并通过服务端将连麦视频流和显示分辨率发送至各自对应的观众侧设备。
[0065] 观众侧设备接收到连麦视频流和显示分辨率后,按照显示分辨率对连麦视频流进行解码,从而按照显示分辨率显示连麦视频,进而观众可以同时看到本地视频和连麦方视频。
[0066] 在一可选实施方式中,本地视频和连麦方视频的信息还包括期望的连麦视频的码率。码率是对视频的清晰度影响较大的参数,如果双方的码率不同,合成的连麦视频流将会出现一个较清晰另一个较模糊的情况,因此,本地和连麦方除了约定分辨率之外,还需要约定码率。基于此,根据本地和连麦方期望的连麦视频的码率,得到本地视频的码率、连麦方视频的码率和显示码率。例如,本地期望的连麦视频的码率是M,连麦方期望的连麦视频的码率是N,则本地视频的码率、连麦方视频的码率和显示码率均设置为(M+N)/2。
[0067] 进一步地,拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率和码率进行编码。分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率和显示码率进行编码,生成连麦视频流;将所述连麦视频流、显示分辨率和显示码率推送至观众侧设备。观众侧设备接收到连麦视频流、显示分辨率和显示码率后,按照显示分辨率和显示码率对连麦视频流进行解码,从而按照显示分辨率和显示码率显示连麦视频,进而观众可以同时看到本地视频和连麦方视频。
[0068] 本发明实施例中,通过获取本地视频的信息和连麦方视频的信息;根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率,从而按照视频的信息,约定合适的分辨率;通过拉取连麦方发送的连麦方视频流,并分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流,并将连麦视频流和显示分辨率推送至观众侧设备,从而使得不同视频信息的视频能够进行拼接,进而不同视频信息的角色之间能够实现视频连麦,不受分辨率和设备的影响。
[0069] 实施例二
[0070] 图2是本发明实施例二提供的一种直播视频连麦的实现方法的流程图。本实施例在上述实施例的各可选实施方式基础上进一步优化。可选地,将上述实施例提供的方法应用在一具体的视频连麦场景中,通过网络传递视频的信息。具体地,将操作“获取本地视频的信息和连麦方视频的信息”细化为“响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息;以及,接收连麦方发送的连麦方视频的信息”。进一步,通过网络包心跳避免信息传递过程中的断网、丢包现象。
[0071] 结合图2,本实施例提供的方法包括以下操作:
[0072] S210、生成本地的连麦接受指令或者向连麦方发送连麦邀请指令。
[0073] 在具体的视频连麦场景中,本地和连麦方均可以作为连麦的邀请者和接受者。本地和连麦方实质是相同的主播端设备。本地和连麦方在作为连麦的邀请者时,操作相同;在作为连麦的接受者时,操作也相同。下面以本地的角度,描述连麦邀请的过程。
[0074] 本地可作为连麦的发起者,响应于主播对连麦邀请图标的触发操作,生成本地的连麦邀请指令,并向连麦方发送连麦邀请指令,或者,本地作为连麦的接受者,接收到连麦方发送的连麦邀请指令后,响应于主播对连麦接受图标的触发操作,生成本地的连麦接受操作。
[0075] S220、启动网络包心跳,并通过网络包心跳同步本地和服务端的连麦状态。
[0076] 在生成本地的连麦接受指令或者向连麦方发送连麦邀请指令的同时,启动网络包心跳。其中,连麦接受指令和连麦邀请指令均需要由服务端中转,
[0077] 一种情况下,本地向服务端发送连麦邀请指令时,启动网络包心跳,并通过网络包心跳同步本地和服务端的“邀请”状态。接着,服务端将连麦邀请指令发送至连麦方。连麦方生成连麦接受指令,同时,也启动一网络包心跳,将连麦接受指令发送至服务端,通过网络包心跳同步连麦方和服务端的“接受”状态。接着,服务端将连麦接受指令发送至本地。至此,完成状态同步。
[0078] 另一种情况下,连麦方向服务端发送邀请指令时,启动网络包心跳,并通过网络包心跳同步连麦方和服务端的“邀请”状态。接着,服务端将连麦邀请指令发送至本地。本地生成连麦接受指令,同时,也启动一网络包心跳,将连麦接受指令发送至服务端,通过网络包心跳同步本地和服务端的“接受”状态。接着,服务端将连麦接受指令发送至连麦方。至此,完成状态同步。
[0079] S230、响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息。
[0080] 对于本地来说,当本地作为连麦的发起者时,响应于连麦方的连麦接受指令,获取本地视频的信息并通过网络包心跳将本地视频的信息同步至服务端,以供服务端将本地视频的信息发送至连麦方。当本地作为连麦的接受者时,响应于本地的连麦接受指令,通过网络包心跳将本地视频的信息同步至服务端,以供服务端将本地视频的信息发送至连麦方。
[0081] 其中,连麦方的操作与本地的操作相同,此处不再赘述。
[0082] 可选地,由于网络故障或者主播离开等原因,会导致连麦失败。基于此,对于本地或者连麦方来说,如果网络心跳与服务端不同步;或者,连麦邀请指令超时未响应,清空本地或者连麦方,以及服务端的连麦状态,并向主播提示“连麦邀请指令超时未响应”。
[0083] S240、接收连麦方发送的连麦方视频的信息。
[0084] S250、根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0085] S260、拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率进行编码。
[0086] S270、分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流。
[0087] S280、将连麦视频流和显示分辨率推送至观众侧设备。
[0088] 本实施例中,通过启动网络包心跳,从而通过网络包心跳同步连麦状态,以及同步视频的信息,有效避免了网络丢包;而且,通过网络包心跳,减少了状态不同步或者错误的现象。
[0089] 实施例三
[0090] 图3是本发明实施例三提供的一种直播视频连麦的实现方法的流程图。本实施例对上述各实施例的各可选实施方式进一步优化,即,通过在显示区域的不同位置处渲染视频,实现视频的拼接,以及连麦视频流的生成。结合图3,本实施例提供的方法包括以下操作:
[0091] S310、获取本地视频的信息和连麦方视频的信息。
[0092] S320、根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0093] S330、拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率进行编码。
[0094] S340、按照本地视频的分辨率,将本地视频数据渲染至符合显示分辨率的显示区域的第一预设区域。
[0095] 其中,本地视频的分辨率是S320中得到的本地视频的分辨率。通过摄像头生成本地视频数据后,将本地视频数据按照本地视频的分辨率进行渲染。
[0096] 进一步,为了方便视频拼接。将本地视频数据渲染至显示区域的第一预设区域内。其中,第一预设区域的尺寸应大于等于本地视频的分辨率。在一示例中,本地视频的分辨率为A*B,显示区域的显示分辨率为2A*B,将本地视频数据渲染至显示区域的左半区域(第一预设区域)。
[0097] S350、对连麦方视频流解码后,将解码后的视频数据,按照连麦方视频的分辨率渲染至显示区域的第二预设区域。
[0098] 采用S320中得到的连麦方视频的分辨率对连麦方视频流进行解码,并将解码后的视频数据按照连麦方视频的分辨率进行渲染。
[0099] 进一步,为了方便视频拼接。将连麦方的视频数据渲染至显示区域的第二预设区域内。其中,第二预设区域的尺寸应大于等于连麦方视频的分辨率。可选地,第一预设区域与第二预设区域相邻接或者部分重叠。接着上述示例,连麦方视频的分辨率也为A*B,则将本地视频数据渲染至显示区域的右半区域(第二预设区域),从而第一预设区域与第二预设区域相邻接,本地视频和连麦方视频相邻接。
[0100] S360、分别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流。
[0101] 具体地,将第一预设区域内的各图像与第二预设区域内的各图像分别进行拼接;并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流。
[0102] 可选地,为了加强主播之间的连麦互动效果,提高直播间的活跃度,在连麦视频中,除了显示本地视频和连麦方视频之外,还可以显示连麦互动信息,例如主播之间进行连麦比赛的胜率,该胜率以Player Killing(pk)条,或者字符形式显示。
[0103] 在具体实现上,连麦互动信息会随着连麦的进行而变化,则实时生成连麦互动信息,并将连麦互动信息渲染至显示区域的第三预设区域内。其中,第三预设区域位于第一预设区域和第二预设区域的上层,可以同时叠加在第一预设区域和第二预设区域上。基于此,将第一预设区域内的各图像与第二预设区域内的各图像分别进行拼接;将拼接后的各图像与显示区域的第三预设区域内的各连麦互动信息分别进行叠加;对叠加后的各图像按照显示分辨率进行编码,生成连麦视频流。
[0104] S370、将连麦视频流和显示分辨率推送至观众侧设备。
[0105] 本实施例中,通过将本地视频和连麦方渲染至显示区域的不同预设区域,进而通过分别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,从而生成符合显示分辨率的连麦视频流;通过将拼接后的各图像与显示区域的第三预设区域内的各连麦互动信息分别进行叠加,从而将连麦互动信息与连麦视频流合为一体,在观众侧设备播放连麦视频流时,无需加载连麦互动信息的控件,不需要进行技术改进,即可同时显示本地视频、连麦方视频和连麦互动信息。
[0106] 实施例四
[0107] 图4是本发明实施例一提供的一种直播视频连麦的实现方法的流程图,本实施例可适用于在网络直播平台中,主播侧设备视频连麦成功后,观众侧设备播放连麦视频流的情况,该方法可以由直播视频连麦的实现装置来执行,该装置可以由硬件和/或软件构成,并一般集成在终端,此终端是观众侧设备。结合图4,本发明实施例提供的方法具体包括如下操作:
[0108] S410、接收主播侧设备发送的显示分辨率,并存储显示分辨率,显示分辨率根据主播视频的信息和连麦方视频的信息得到。
[0109] S420、拉取主播侧设备发送的连麦视频流,连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,本地视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,连麦方视频流采用连麦方视频的分辨率进行编码。
[0110] 主播侧设备将连麦视频流和显示分辨率推送至观众侧设备之后,由于连麦视频流的数据量大于显示分辨率,观众侧设备会首先接收到显示分辨率,再拉取到连麦视频流。其中,主播侧设备指观众所在直播间的主播所使用的主播侧设备,可以是上述实施例中的本地或者连麦方。
[0111] 观众侧设备存储显示分辨率,以便对后续拉取到的连麦视频流进行解码。
[0112] S430、如果连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面。
[0113] 在视频连麦之前,观众侧设备播放的是本地视频或者连麦方视频;在视频连麦之后,观众侧设备将会播放连麦视频。一般情况下,连麦视频流的分辨率与本地视频的分辨率和连麦方视频的分辨率不同,则观众侧设备需要加载连麦视频流模板,并采用连麦视频流模板刷新显示界面,在显示界面上渲染连麦视频流。
[0114] 本实施例中,在接收到显示分辨率时,由于尚未拉取到连麦视频流,不会立即采用连麦视频流模板刷新显示界面,而是监测到连麦视频流与历史拉取到的视频流的分辨率不同时,才采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面,从而视频播放流畅,不卡顿,而且实现了加载连麦视频流模板与连麦视频流的同步。
[0115] 可选地,观众侧设备提供多种显示界面尺寸,例如4:3,1:1等,观众可根据个人喜好选择显示界面尺寸。观众侧设备按照观众选择的显示界面尺寸对连麦视频流进行裁剪,并渲染至显示界面上。
[0116] 本发明实施例中,通过接收主播侧设备发送的显示分辨率,拉取主播侧设备发送的连麦视频流,如果连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面,从而在观众侧设备播放不同视频信息的视频;而且,通过连麦视频流与历史拉取到的视频流的分辨率不同时,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面,从而视频播放流畅,不卡顿,实现了加载连麦视频流模板与连麦视频流的同步。
[0117] 实施例五
[0118] 图5是本发明实施例五提供的一种直播视频连麦的实现装置的结构示意图。本实施例可适用于在网络直播平台中,主播侧设备进行视频连麦的情况。结合图5,本实施例提供的装置包括:信息获取模块51、分辨率获取模块52、视频流拉取模块53、视频流生成模块54和推送模块55。
[0119] 信息获取模块51,用于获取本地视频的信息和连麦方视频的信息;
[0120] 分辨率获取模块52,用于根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;
[0121] 视频流拉取模块53,用于拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率进行编码;
[0122] 视频流生成模块54,用于分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;
[0123] 推送模块55,用于将连麦视频流和显示分辨率推送至观众侧设备。
[0124] 本发明实施例中,通过获取本地视频的信息和连麦方视频的信息;根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率,从而按照视频的信息,约定合适的分辨率;通过拉取连麦方发送的连麦方视频流,并分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流,并将连麦视频流和显示分辨率推送至观众侧设备,从而使得不同视频信息的视频能够进行拼接,进而不同视频信息的角色之间能够实现视频连麦,不受分辨率和设备的影响。
[0125] 可选地,视频的信息至少包括视频显示在的设备类型、视频的品类、视频的横竖屏、期望的连麦视频的分辨率中的一种;相应地,分辨率获取模块52在根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率时,具体用于执行以下任一种操作:根据与本地视频的品类和连麦方视频的品类所需的视觉效果,确定与所述视觉效果对应的本地视频的分辨率、连麦方视频的分辨率和显示分辨率;根据本地视频的横竖屏和/或连麦方视频的横竖屏,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率;根据移动端视频的信息,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率,所述移动端包括本地或者连麦方;根据本地期望的连麦视频的分辨率和/或连麦方期望的连麦视频的分辨率,确定本地视频的分辨率、连麦方视频的分辨率和显示分辨率。
[0126] 可选地,信息获取模块51在获取本地视频的信息和连麦方视频的信息时,具体用于:响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息;以及,接收连麦方发送的连麦方视频的信息。
[0127] 可选地,该装置还包括启动模块,用于在响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息之前,生成本地的连麦接受指令或者向连麦方发送连麦邀请指令;启动网络包心跳,并通过网络包心跳同步本地和服务端的连麦状态。信息获取模块51在响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并向连麦方发送本地视频的信息时,具体用于响应于本地或者连麦方的连麦接受指令,获取本地视频的信息并通过网络包心跳将本地视频的信息同步至服务端,以供服务端将本地视频的信息发送至连麦方。
[0128] 可选地,视频流生成模块54在分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流时,具体用于:按照本地视频的分辨率,将本地视频数据渲染至符合显示分辨率的显示区域的第一预设区域;对连麦方视频流解码后,将解码后的视频数据,按照连麦方视频的分辨率渲染至显示区域的第二预设区域;分别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流。
[0129] 可选地,视频流生成模块54在别将显示区域内的各图像进行拼接,并对拼接后的各图像按照显示分辨率进行编码,生成连麦视频流时,具体用于:将第一预设区域内的各图像与第二预设区域内的各图像分别进行拼接;将拼接后的各图像与显示区域的第三预设区域内的各连麦互动信息分别进行叠加;对叠加后的各图像按照显示分辨率进行编码,生成连麦视频流。
[0130] 本发明实施例所提供的直播视频连麦的实现装置可执行本发明任意实施例所提供的直播视频连麦的实现方法,具备执行方法相应的功能模块和有益效果。
[0131] 实施例六
[0132] 图6是本发明实施例六提供的一种终端的结构示意图,如图6所示,该终端包括处理器60、存储器61、输入装置62和输出装置63;终端中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;终端中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
[0133] 存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的直播视频连麦的实现方法对应的程序指令/模块(例如,直播视频连麦的实现装置中的信息获取模块51、分辨率获取模块52、视频流拉取模块53、视频流生成模块54和推送模块55)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的直播视频连麦的实现方法。
[0134] 存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0135] 输入装置62可用于接收连麦方视频的信息和连麦方视频流,以及产生与终端的用户设置以及功能控制有关的键信号输入,例如本地或者连麦方的连麦接受指令和连麦邀请指令。输出装置63可包括显示屏等显示设备,用于显示连麦视频流。
[0136] 实施例七
[0137] 图7是本发明实施例七提供的一种直播视频连麦的实现装置的结构示意图。本实施例可适用于在网络直播平台中,主播侧设备视频连麦成功后,观众侧设备播放连麦视频流的情况。结合图7,本实施例提供的装置包括:分辨率接收模块71、视频流拉取模块72、视频流渲染模块73。
[0138] 分辨率接收模块71,用于接收主播侧设备发送的显示分辨率,并存储显示分辨率,显示分辨率根据主播视频的信息和连麦方视频的信息得到;
[0139] 视频流拉取模块72,用于拉取主播侧设备发送的连麦视频流,连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,本地视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,连麦方视频流采用连麦方视频的分辨率进行编码;
[0140] 视频流渲染模块73,用于如果连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面。
[0141] 本发明实施例中,通过接收主播侧设备发送的显示分辨率,拉取主播侧设备发送的连麦视频流,如果连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面,从而在观众侧设备播放不同视频信息的视频,不受分辨率和设备的影响;而且,通过连麦视频流与历史拉取到的视频流的分辨率不同时,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面,从而视频播放流畅,不卡顿,实现了加载连麦视频流模板与连麦视频流的同步。
[0142] 实施例八
[0143] 图8是本发明实施例八提供的一种终端的结构示意图,如图8所示,该终端包括处理器80、存储器81、输入装置82和输出装置83;终端中处理器80的数量可以是一个或多个,图8中以一个处理器80为例;终端中的处理器80、存储器81、输入装置82和输出装置83可以通过总线或其他方式连接,图8中以通过总线连接为例。
[0144] 对于存储器81和处理器80的描述详见实施例六,不同之处在于,存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的直播视频连麦的实现方法对应的程序指令/模块(例如,直播视频连麦的实现装置中的分辨率接收模块71、视频流拉取模块72、视频流渲染模块73)。
[0145] 输入装置82可用于接收显示分辨率并拉取连麦视频流,以及产生与终端的用户设置以及功能控制有关的键信号输入,例如显示界面尺寸。输出装置83可包括显示屏等显示设备,用于显示连麦视频流。
[0146] 实施例九
[0147] 本发明实施例九还提供一种其上存储有计算机程序的计算机可读存储介质,计算机程序在由计算机处理器执行时用于执行一种直播视频连麦的实现方法,该方法包括:
[0148] 获取本地视频的信息和连麦方视频的信息;
[0149] 根据本地视频的信息和连麦方视频的信息,得到本地视频的分辨率、连麦方视频的分辨率和显示分辨率;
[0150] 拉取连麦方发送的连麦方视频流,连麦方视频流采用连麦方视频的分辨率进行编码;
[0151] 分别按照本地视频的分辨率和连麦方视频的分辨率,将本地视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码,生成连麦视频流;
[0152] 将连麦视频流和显示分辨率推送至观众侧设备。
[0153] 或者,该直播视频连麦的实现方法,包括:
[0154] 接收主播侧设备发送的显示分辨率,并存储显示分辨率,显示分辨率根据主播视频的信息和连麦方视频的信息得到;
[0155] 拉取主播侧设备发送的连麦视频流,连麦视频流是分别按照主播视频的分辨率和连麦方视频的分辨率,将主播视频数据和连麦方视频流拼接,并将拼接后的视频按照显示分辨率进行编码生成的,本地视频的分辨率和连麦方视频的分辨率根据主播视频的信息和连麦方视频的信息得到,连麦方视频流采用连麦方视频的分辨率进行编码;
[0156] 如果连麦视频流与历史拉取到的视频流的分辨率不同,采用连麦视频流模板刷新显示界面,并采用显示分辨率对连麦视频流进行解码并渲染至显示界面。
[0157] 当然,本发明实施例所提供的一种其上存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的直播视频连麦的实现方法中的相关操作。
[0158] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行本发明各个实施例所述的方法。
[0159] 值得注意的是,上述直播视频连麦的实现装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0160] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。