直播多人连麦技术简介

前言

随着直播行业的发展,平台玩法越来越多。其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用。在此衍生出来的如PK,付费问答,语音连麦等玩法成为各大直播平台的标配。

本篇文章将分享直播移动端直播连麦的技术实现架构,仅为抛砖引玉,为各位在技术选型时提供一定的思路。欢迎交流。

技术架构

首先从技术架构的角度来说,直播连麦的实现方案大体可以分为三种。这三种方案都是前辈大佬们实践总结出来的经验。在此感谢。

传统直播形式如图所示,是一个主播推流,广播给直播间所有的观众。而所有的观众进入直播间时,去拉去当前直播间主播的流。这里的特征是,一个直播间对应一个主播,并且仅有一路推拉流。

连麦的直播形式如图所示,是两个主播(另一个主播可能是观众)推流,广播给直播间所有观众。而所有的观众进入直播间,并不一定是拉取一个流,一个直播间也并不一定对应的是一个主播,这些区别会在下文展开。这里的特征是两个或以上主播。

1. 基于RTMP协议优化方案

此方案是在原有直播基础上衍生出来的实现方案。主播A和主播B之间通过原有的推拉流路径去拉取对方的流内容。也就是说,主播A在推流同时,拉取主播B的流,主播B推流的同时拉取主播A的流。对于两个主播来说互为对方的观众。此时对于直播间内的其他观众而言,是分别拉取主播A和主播B的流,并展示出来。

可以看出,主播A和主播B之间并无直接连接,而是通过拉取对方流来实现连麦。此方案优点是技术实现相对简单,服务端和客户端可在原有的直播基础上开发,兼容性好。但是缺点也是明显的:理想情况RTMP下的直播延迟大概需要3秒,主播AB之间的互动可能超过6秒,这在实际连麦体验中是相当差的,另外观众需要同时拉取两路流,对于网络要求,流量消耗,性能消耗,时间对齐都是不小的问题。有人提出优化CDN连接方式,优化主播间的节点,增加BGP,在一定程度上可以降低延迟。

在方案1的基础上,我们可以总结出连麦的技术关键点:连麦的主播之间如何保证较低的延迟,提高实时性;主播之间的画面如何进行对齐,合成再统一广播给观众。 在此之上我们需要准备的是两套系统:多人视频交互系统和标准CDN直播系统。

2. 基于P2P协议方案

此方案的实现方式是,主播A和主播B之间通过P2P协议进行音视频连接,正常情况下能够保证较低的延迟,保证主播A和主播B之间的互动。主播A在自己的流内容基础上加入主播B的流内容,统一推向服务端。此时直播间内仅有一路流,并且其他观众也只需要拉取这一路流内容。

此方案的优点是显而易见的,主播AB之间的延迟降低,交互体验好,观众保持原有逻辑不变,拉取直播间固定流地址。 但是缺点是:主播A在连麦过程中需要承担两路推流一路拉流的压力,即拉取主播B的流内容,将自己的流内容推给主播B,将主播A和主播B的流内容推给服务端;主播A的网速压力和性能压力将会巨大,同时主播AB之间一对一的连接也导致扩展性较差,无法满足2人以上的业务场景需求。

3. 基于多人视频通话系统方案

此方案的实现方式是将主播A和主播B的视频交互交由第三方处理,目前比较成熟的技术有视频会议系统和Google开源的WebRTC系统。在此架构下,主播A与主播B的流合成处理上传都是由这个交互系统完成。此方案对于方案2来说减轻了主播端的压力,并且采用UDP协议传输方式降低延迟。同时也兼容多人连接交互。 此方案缺点是对服务端开发量大,要求高。

总结

目前主流实现方案多是基于方案3实现。同时有人提出SD-RTN的实现方案,在我看来此方案是方案3的优化升级版本,采用此方案确实能够降低开发量,但同时也需要付出运营成本,收费与开源选择哪一个还是要看具体的业务场景具体例子具体分析。

多人连麦技术还有许多需要改善的地方。随着技术的发展,未来会出现更优的实现方式,我们拭目以待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值