版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.02.09 |
前言
直播中的连麦可以增加主播和观众的互动,增强直播类APP的趣味性,增加用户量以及DAU,所以很多直播平台会加入连麦的功能,接下来几篇我们就一起看一下连麦。
连麦直播流程
先看一下直播的连麦流程。
- 主播正常开始直播,普通观众看到主播的单人直播画面;
- 需要连麦的观众发起连麦请求,进入连麦申请列表;
- 主播从连麦申请列表中选择一名或多名观众进行连麦操作,主播与连麦观众进行实时音视频互动,同时互动直播系统生成“合成画面”;
- 普通观众看到直播画面为包含主播与连麦观众的“合成画面”;
- 连麦结束,恢复主播单人直播模式。
连麦直播方案
1. 多路RTMP流的实现
实现原理
主播和连麦者都有一路RTMP格式的流推到CDN,CDN再讲这两路流发给观众端,观众端将这两路流合成一个画面,其中包括音频和视频的混合,原理图我就直接盗图了。
优缺点
- 优点:实现起来简单,主播端压力不大
- 缺点:
- 主播与连麦者如果要进行交互,考虑到网络丢包,网络延时和网络抖动的情况,会增大延时,不利于实时交互。
- 对于观众端需要将两路流进行解码和合成,对于带宽流量消耗很大,同时解码浪费很多硬件资源。
评价
这种如果是手机配置很高,网络很好的情况,还可以,但是对于移动直播来说,网络不好是经常出现的事情,这样就会出现互动无法实时进行的尴尬,所以这种方案一般是不可取的。
2. 主播与连麦者P2P
实现原理
主播端与连麦者之间使用P2P方式进行交互,然后主播端将自己和连麦者的视频进行合并,再推到CDN上,CDN再发送给观众端。
优缺点
-
优点:
- 主播和连麦者之间使用P2P,网络质量较好,延迟较小,保证了两者之间交互不会有非常大的延时;
- 解决声音的干扰问题,消除回声
- 减小了方案1中的观众端的压力
-
缺点:
- P2P在某些网络下无法穿透,有些观众根本无法与主播端进行交互;
- 主播端需要上传两路视频:一路P2P与连麦者进行交互,一路使用RTMP推到CDN。还要下载一路视频:连麦者P2P发送过来的交互数据。所以主播端要求带宽需要较高,
- 网络较差时无法进行主播 主播端要进行多路视频的编码、解码,要求主播端设备配置比较高,较差的设备也无法进行主播;
- 只能支持一个连麦者,不能支持多个连麦者;
- 由于主播端和连麦者经过CDN合并成一路,因此,不能实现主播端和连麦者视频大小窗口切换。
评价
P2P方式在一定程度上可以解决连麦的问题,但不是最优的。
3. 服务器合成流方案
实现原理
主播和连麦者都将视频推送到CDN中,然后CDN内部对这几路视频进行合图,再将其发送给观众端。
优缺点
-
优点:
- 主播和连麦者各路视频都使用RTMP推送到CDN,可以保证延时较小;
- 由于CDN进行视频合图和发送,所以主播不需要很高的带宽;
- 由于CDN进行视频合图,所以主播的设备不需要配置非常高;
- 没有声音干扰问题;
- 可以支持多个连麦者连麦
-
缺点:
- CDN需要进行视频的合图,需要额外开发工作,并且逻辑比较复杂;
- CDN需要进行视频的合图,需要消耗较高服务器资源;
- CDN合图后的布局难控制;
评价
不知道有没有CDN支持这种方案。
参考文章
1. 到处都在说直播连麦技术
2. 寻找直播功能差异化,连麦互动直播是如何实现的?
后记
本篇已结束,后面更精彩~~~~