2016年陌陌、映客等直播平台陆续上线连麦,如今连麦已经成为主流直播平台标配。声网于2016年全球率先推出的多人连麦、纯语音连麦等多种玩法,半年时间内,就与几乎所有全球主流直播平台达成深度合作,如陌陌、花椒、触手、视吧、KK、荔枝FM、咸蛋家,Meetme,Flurry Live,Livestar,Yalla等等。

从技术架构上来说,目前市场上存在的连麦方案有三种:

三种连麦方案

SD-RTN™

这是声网的连麦架构,直播连麦的鼻祖。基于UDP,主播端、连麦端、观众端都在基于SD-RTN™进行实时通信,大大降低延时。主播端和连麦端也可以转码到CDN推流。

RTMP改进方案

基于TCP协议,基本思路是:主播接受连麦嘉宾的视频,在本地合图;主播和连麦嘉宾的视频同时传到服务端合图,然后通过CDN推到观众端。

WebRTC改进

 


主播和连麦嘉宾,基于WebRTC进行“视频会议”,将“视频会议”在服务端合图后推到CDN进行分发。

三种不同的架构,在连麦表现上,有独特指标来区隔

1. 低延时

连麦中,最重要的元素,就是低延时。连麦的本质是视频通话,而视频通话最重要的指标就是延时。只有低延时,主播和连麦嘉宾之间,才可以较好的互动、交流。根据ITU-TG.114标准,单向通话延时大于150ms就可受到通话连续性受到影响,最大可容忍时延为400ms。

  • SD-RTN™方案,基于UDP。SD-RTN™包含了编解码方案和服务端的传输方案。声网的私有专利编解码是面向互联网传输的编解码,能够保证高清晰度、低码率,并且会根据网络状况,自动调节码率。服务架构SD-RTN™是全球部署,全球部署有近100个数据中心。客户端均通过UDP连接SD-RTN™,通过就近接入策略,让使用者就近接入质量最好的数据节点;通过智能路由,经过传输延迟和质量优化的最优路径,自动避免网络拥塞,并规避骨干网络故障的影响。所以,SD-RTN™在跨国传输、海量并发、高可用方面有独特优势。
  • RTMP改进方案,基于TCP,由于TCP的传输机制导致天然的延时不可控。全球最大的CDN服务商,Akamai前几天就在GMIC会议上表示,要基于WebRTC技术来来升级现有CDN技术。显然Akamai意识到CDN方案在突破低延时方面的瓶颈。
  • WebRTC改进方案,基于UDP。WebRTC对Chrome浏览器有极好的支持,但在Native支持方面先天不足。WebRTC方案最大的不足是,只包含编解码方案,缺乏服务端解决方案。因此,选择此方案的同学注意了,一定要重点考察此方案在海量架构、高并发、弱网环境下的表现。

2. 音画同步

由于音频和视频不同采集、传输处理,会有很大程度上存在音画不同步的问题出现,这是一个比较严重的问题,观众端看到主播的动作,才听到声音;或者先听到声音,才看到动作,或者说话口型对不上,会感到很奇怪。

3. 卡顿率

卡顿是指两帧视频间隔超过一定时长,观众的直观感受就是画面卡顿。一般情况下,视频连麦中,比较常用的是把两帧之间的间隔大于400ms-600ms的看作一次卡顿 。如果卡顿次数过多,是非常影响正常连麦体验的。

4. 画质

直播中,主播都希望自己美美的,画面清晰是基本要求。

在给定的码率下,清晰度和分辨率有关系。如分辨率过低,则画面模糊,细节丢失;如分辨率过高,则失真明显。在分辨率够用的前提下,分辨率和清晰度成反比。在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。

声网的私有专利编解码能够在低码率下保证高清晰度,并且会根据网络状况,自动调节分辨率和码率,使编码器运行在最佳分辨率下。开发者也可以通过接口,选择清晰度优先还是流畅度优先。

5. 延展性

直播是一个高度竞争的行业,玩法在不断的改变。从声网全球首个推出多人互动连麦,到现在连麦成为直播的标配,只用了不到1年的时间。更多的玩法和功能的出现,是市场在推动技术进步,同时也是技术进步在推动市场发展。声网现在在连麦的玩法上又拓展了一个新功能,跨直播间连麦。不同房间的主播可以进行连麦,穿透了之前一个房间就是一个频道的屏障。

要实现丰富的延展性,必须从底层架构设计上就有高度灵活性,类似声网的创新架构SD-RTN™。RTMP改进方案是基于存在了十多年的CDN方案进行改进,很难有大的突破。WebRTC在Native方面和服务端架构方面的短板,也造成了改进成本非常高。

基于以上几个指标,接下来讲如何测试连麦的效果。

如何测试连麦的效果

连麦的效果指的是:延时如何,卡顿频率如何,画质是否清晰。不能接受的是:卡屏、绿屏、花屏、断线。

设置视频属性

主播A设置:选择640x360,15fps,800kbps,其他设置选择默认

辅播B设置:选择320x240,15fps,300kbps,其他设置选择默认

设置丢包率和带宽

在用户的实际使用场景中,常常会有网络卡顿的情形,背后的原因可能是网络的丢包率高和带宽不足。通常,测试连麦需要用到网损仪来设定不同的丢包率模拟真实网络环境。但是,如果没有专业的网损环境,iOS自带网损模拟器也可以做简单的丢包和限带宽测试。设置方法见《WebRTC音视频方案自测教程》

测试流程

1台iPhone6作为主播,1台iPhone6作为辅播,主播的前置摄像头尽量接近以获取相同的摄像头输入。如果同时测试两种连麦方案,那么就是2台iPhone6作为主播,2台iPhone6作为辅播。

4台iPhone6的屏幕输出通过Blackmagic Multiview拼接为一路4k信号,送入4k显示器显示且录制。录制出来的成品,就像下面这个视频,这是声网和行业其它连麦方案的对比。通过观看录像,可以直观的观察到首帧出图时间、成像质量、卡顿、延时。

直播连麦对比测试—在线播放—优酷网

 

左侧是声网,右侧是行业其它方案。第一排是主播端,第二排是连麦端。通过秒表可以直观的看到延时。通过地球仪的转动,可以看到卡顿情况。整体观看,可以看出清晰度的差异。

测试结果

这是一个报告模板,其中,卡顿指的是:视频两帧间隔>600ms,次数是按5分钟总时长来统计。按照上述步骤,你自己也可以出一份这样的报告。

【本文作者】

单辉 声网Agora.io 高级开发工程师。欢迎访问 RTC 开发者社区,与我们的工程师及更多开发者交流。