直播带货开发,实现主播和用户连麦的方式

什么是连麦?
了解移动直播带货开发连麦的实现架构,需要定义一下参与的角色,首先介绍客户端(如图1),按用户在连麦直播中的角色差异分别定义为:主播、连麦者(粉丝)、观众。


主播,指当前正在直播的主播,相当于主持人,可以主动邀请用户连麦或批准当前观众的连麦请求,也可以关闭某个连麦者的连麦;主播端视频一般都是全屏显示。

连麦者(粉丝),指参与当前连麦的观众,可以向主播申请连麦,或接受主播的连麦邀请,进行音视频连麦,当不想连麦后,连麦者可以主动断开;连麦者的视频一般只在右侧的某个区域显示,视频尺寸较小,以不影响主播视频显示为好。

观众,是移动直播的观众。

下面介绍下直播带货开发的结构,为简化模型不考虑数据存储及各类型服务器集群的情况,仅描述移动直播连麦所需要的最简单服务器类型,如图2:

图片描述
服务器集群,用于管理主播和主播、主播和连麦者的连线会话,实现音视频云端的调度和计算能力,具体会包括信令服务器,流媒体服务器集群等。

CDN网络,接收主播和连麦者发送过来的媒体数据,提供缓冲,存储和转发的能力,分发直播内容给观众。

下面介绍其特点,与主播的单向直播相比,连麦实现的技术难点增大很多,具体如下:

音频混流,主播将自己的声音与连麦者的声音做混音。

视频混流,主播将自己的画面与连麦者的画面做视频合成。

降噪,在直播带货开发去除直播环境中的噪音,啸叫。

回声消除,消除扬声器和麦克风的近端回声。

低延迟互动,延迟抖动500ms~800ms之间,直播带货开发中保证主播和连麦者之间能够实时音视频互动。

主播与粉丝间的连麦互动场景

参与移动直播连麦的架构中共涉及4个角色,分别是主播、连麦者、观众和服务器。从移动直播连麦互动场景中的角色来分析,包含2种角色间的连麦:

主播与粉丝连麦
主播与连麦者连麦,主播可以与其中的一位粉丝或多位粉丝互动,并且其他粉丝可以观看这个互动的过程。连麦互动这个功能瞬间可以提高直播平台普通用户的参与感与幸福感,增加用户粘性。

主播与其他主播连麦
主播与其他主播之间连麦,主播之间需要连麦互动拉人气,互相增加粉丝,带动主播间的粉丝、经济双赢。

理论上来说,这4个角色都可以在直播带货开发中,负责音频视频的混流,即实现连麦的合成功能,从而确保每个观众看到连麦后的视频和听到音频。从成本角度考虑,在服务器端混流观众端延迟大,成本比较高,不具优势。我们只讨论主播端混流和观众端混流的两种方案。


主播与粉丝间连麦互动的解决方案:

主播端混流
该实现思路要求主播分别把自己的视频数据与连麦粉丝的视频数据合成,然后把合成好的视频流、主播自己的的音频数据、连麦粉丝的音频数据推给CDN网络,并经由CDN分发给所有观众。故主播端手机负担的任务更重,对手机性能和网络性能要求也比普通直播时更高一些。主播与粉丝连麦,主播端混流部分的基本流程如图3所示:

·图片描述
主播、粉丝建立连麦会话后,均向CDN网络推原始音视频流。主播、连麦者从CDN网络获取对方的媒体数据。 

主播从CDN网络拉取连麦者的音视频数据后,在主播端进行相应的混流工作。一方面用于自己的视频显示和声音播放,另一方面发给CDN网络,用于观众端拉流观看;连麦粉丝拿到主播视频、音频,进行回声消除、降噪等工作,用于自己的视频显示和声音播放。

主播把自己的视频数据、连麦粉丝的视频数据进行画面合成,替代主播原始流的视频画面,并将主播自己的音频数据、连麦粉丝的音频数据推到CDN网络,用于观众端拉流观看。主播进行的混流工作包括:画面合成、回声消除、降噪、混音。

观众端拉取主播端混合好的1路视频数据、2路音频数据后,观看合成画面。观看到的混流画面:A大窗、B小窗,如下图:

图片描述
主播与粉丝连麦,主播端混流方案的优劣势:

劣势:主播端压力大,主播端需要视频混流以及面对计算压力,对手机性能和网络性能要求也比普通直播时更高一些,不适合多人连麦。

优势:解决上行带宽瓶颈,推1路视频流,不存在主播端上行带宽瓶颈;成本低,它在两个方面降低成本:计算资源和网络带宽;

观众端混流
该实现思路要求观众分别拉主播、连麦者的音视频数据,然后在观众端进行混流工作。主播与粉丝进行连麦,观众端混流的部分的基本流程如图4所示:

图片描述
主播、粉丝建立连麦会话后,均向CDN网络推原始音视频流。 

主播、连麦者从CDN网络使获取对方的媒体数据,在自己端进行回声消除、降噪等工作,用于自己的视频显示和声音播放,并发送自己的音视频数据给CDN网络以便观众端拉流并进行响应的混流工作。

观众端拉取2路视频数据、2路音频数据,并进行相应的混流工作。其混流工作包括:画面合成、回声消除、降噪、混音。

观众端混流后,观看到的混流画面:A大窗、B小窗显示。

主播与粉丝连麦,直播带货开发在观众端混流方案的优劣势:

劣势:观众端压力大,观众需拉多路流进行混流,观众端的下行带宽压力大; 解码压力大,观众需解码多路流,开销比较高;

优势:简单易实现,可以快速搭建;支持多人连麦;

主播与主播间的连麦互动解决方案

观众端混流
该实现思路要求观众分别把拉取所有连麦主播的音视频数据,然后在观众端进行混流工作。主播与主播连麦,观众端进行混流的基本流程如图5所示:

图片描述
主播与主播建立连麦会话后,主播均向CDN网络推原始音视频流。 

主播均从CDN网络使获取对方的媒体数据,在自己端进行回声消除、降噪等工作,用于自己的视频显示和声音播放,并发送自己的音视频数据给CDN网络以便观众端拉流并进行响应的混流工作。

观众端拉取2路视频数据、2路音频数据后,进行相应的混流工作。其混流工作包括:画面合成、回声消除、降噪、混音。

观众端混流后,观看合成画面。如果A主播与B主播在连麦前,C1作为A主播的观众,C2作为B主播的观众,连麦后,C1观看到的混流画面:A大窗、B小窗,C2观看到的混流画面:B大窗、A小窗。

主播与主播连麦,观众端混流方案的优劣势:

劣势:观众端压力大,观众需拉多路流进行混流,观众端的下行带宽压力大;解码压力大,观众需解码多路流,开销比较高;

优势:用于直播带货开发,简单易实现,可以快速搭建;支持多人连麦。

声明:本文由云豹科技转发自科技峰行者博客,如有侵权请联系作者删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值