互动直播(Interactive Live Streaming)凭借在视频业务领域长期技术积累,快速敏捷为行业提供高并发、低延迟、高清流畅、安全可靠的一站式“音视频互动”解决方案,集成包括多人连麦、消息互动、动态贴纸、美颜等多种互动能力,实现各种直播场景玩法。
播放端SDK:提供从CDN拉流播放的能力。
直播SDK:提供美颜、推流到CDN的能力。
互动直播SDK:提供连麦和实时音视频流传输(收发双向)的能力。设置最基本的连麦、画面布局等。
App主播:集成直播SDK和互动直播SDK。纯直播时,调用直播SDK的接口推流到CDN,有连麦请求时,调用互动直播SDK进行实时音视频的交互。
App连麦用户:集成互动直播SDK和播放端SDK。普通观众发起连麦请求成功后,控制互动直播SDK进行实时音视频的传输(收发双向)。
App观众:集成播放端SDK,从CDN拉流观看。
直播管理服务器:接受连麦请求、指示连麦用户加入到实时音视频流的房间中。
互动直播的核心其实就在于连麦技术,比文字会更有魅力的交流形式,在视频直播互动软件开发实现过程中,和连麦技术有着不可分开的密切关系。
互动直播中连麦的实现流程
众所周知,主播开启直播间,用户端看到的是主播直播画面,此时我们可以定义为“单向直播”,意思是主播单方面向观众输出内容。但如果有用户向主播发起了互动连麦,主播接受了连麦请求,意义就变了,因为连麦操作的导向是主播与用户间的音视频互动,此刻对于用户而言,接收到的内容则为主播和连麦观众的混流画面。发起连麦通常有两种方式,一种是主播主动向观众定向发起连麦,另一种则是用户向主播发起连麦请求。而互动直播发展至今,不再是单一的主播与用户间的连麦,主播与主播之间也可以进行连麦送礼PK。
互动直播中的“旁路直播”概念
旁路直播是基于互动直播高并发场景下的解决方案。主播与用户进行互动连麦的混流音视频内容,需要借助于CDN实现分发业务,通过CDN分发的直播内容,用户在进行观看时则可以看作是“旁路直播”。这也是互动直播平台搭建部署时用到CDN的一个重要原因。对于互动直播这种面向众多用户群体的公共服务,必须能够让处在不同地区的用户在同一时间接收到相同的直播内容,低延时是关键因素,CDN的多节点恰恰可以降低互动直播延时。
基于RTMP与CDN的互动直播方案
现如今在互动直播软件开发中,RTMP协议的使用较为广泛,绝大多数互动直播平台也是基于RTMP协议和CDN技术前提下实现连麦的。当主播与用户进行连麦时,会基于RTMP协议,分别将主播端和连麦用户端的流推到CDN,通过CDN将两路视频流推送到观众端,观众端将两路视频流混合后形成一个画面进行播放。这个方案实施起来非常方便简单,接入成本也较低,因此广泛适用,但这一方案也有其缺点。
1.虽然RTMP协议可以将直播延时控制在5s以内,对于观众端来讲基本感觉不到延时问题的存在,但对于连麦的双方而言,在进行互动时会明显感觉到延时,互动直播体验欠佳。
2.主播在与连麦者进行互动时,会有回声,这也是比较常见的问题,目前来看这一问题还是很难解决的。
3.我们常常听到互动直播平台运营者抱怨,说带宽、流量费支出高,本身通过CDN进行分发就消耗很大的流量了,何况是占用两条视频流的互动连麦直播呢?
当然,我们讨论这些问题的最终目的,还是为了能够提供一个互动直播软件开发中关于连麦实现的合理解决方案。基于上面提到的RTMP协议与CDN技术下的互动直播方案,我们可以结合私有UDP协议下的解决方案,用于不同场景下的互动直播实现。
如果已有庞大的用户基数,必须要适应高并发,那么采用RTMP与CDN技术下的解决方案,想必是最佳选择,毕竟我们还是要兼顾大多数观众端用户的观看体验的。但如果对并发要求没那么高,反而对直播连麦要求较高或是对直播延时要求较低,例如一对一视频聊天交友,内部会议培训等应用场景,则可以采用私有UDP协议解决方案。像依靠语音连麦起家的YY,则是在直播业务中使用UDP传输协议。