低延时直播与RTC融合架构设计③:RTC融合架构设计网易云信

本文整理自网易云信多媒体资深技术架构师吴桐在 QCon 全球软件开发大会上海站的演讲内容《超高清4K视频低延时直播与RTC融合架构设计》,为该系列的第三篇文章。
回顾该系列文章:
本篇文章中,吴桐将向你们介绍网易云信NRTC融合架构、RTC视频会议场景优化方案以及他我的一些前瞻性的思考和展望。

网易云信NRTC融合架构

NRTC是NetEase Real-Time Communication的简写,是网易云信自主设计研发的全功能工业级音视频技术框架,它可提供如下功能:
(1)NRTC提供实时音视频与低延时直播功能,这一方案是基于UDP的,低时延流畅,这一能力能够用于音视频交友、在线教学、多人视频会议等多种场景;
(2)NRTC同时也提供传统直播功能,这一方案是基于TCP的,能够提供高品质的直播能力,这一能力能够用于秀场直播、游戏直播、大班教学等场景;
(3)NRTC也能够将(1)和(2)的能力结合,提供旁路直播功能,经过上麦下麦控制用户在连麦和观众模式间切换;
(4)NRTC提供点播与转码功能,经过融合CDN实现海量分发;
(5)NRTC提供短视频功能,提供了短视频SDK;
(6)NRTC同时使用小程序网关和WebRTC网关来接入微信小程序音视频和WebRTC。
综上,NRTC可以提供的能力是很是全的,相关的功能也很是成熟稳定,NRTC支撑了网易内外部各个客户的海量应用,譬如网易云音乐、网易新闻、有道、云课堂等等。
那么咱们是如何将低延时与CDN分发网络结合的?
低延时部分不管是否有上行数据,都采用UDP协议接入咱们上面提到的低延时网络中,由低延时分发网络来保证全部参与方的低延时体验,若是须要和CDN分发网络融合,会由其中的一个Mesh节点,将全部上行数据发送给旁路MCU服务器,旁路MCU服务器会向融合CDN控制中心请求调度融合CDN源站节点,旁路MCU服务器作音频与视频的混合后,转发给咱们的融合CDN源站,由融合CDN源站根据融合CDN的配置状况向一个或者多个CDN推流。
用户能够根据本身的需求以及对费用状况,选择定制是否要旁路到CDN,选择融合CDN状况。

RTC视频会议场景优化

在融合架构的最后,我想和你们就RTC视频会议场景作一些交流。
RTC视频会议场景的需求和复杂度比单向直播要大的多,视频会议中各个终端的观看需求不一样、网络状况也各不相同。所以为了作好视频会议,咱们须要有一个完善的发布订阅系统,同时配合好服务端的智能选择,这依赖于服务器上的一套智能码率分配以及码流选择算法;另外一个核心功能是要实现服务器的分段QoS,所谓分段QoS就是在服务器上须要分别针对用户到服务器的上行链路和服务器到用户的下行链路作好QoS保障,固然对于服务器来讲核心是要作好下行的带宽估计、拥塞控制和丢包对抗。
一套发布订阅系统的基础功能,其实很好理解。
有A、B、C、D、E、F,每一个人均可以发布本身的视频,这些发布消息会在媒体服务器上作汇总,而后分发给每个与会者。如图E选择订阅B/C/D,那么媒体服务器就会根据E的订阅请求将B/C/D的媒体包转发给E,同理F能够作出不一样订阅,他订阅A/B/C,那媒体服务器就只会将A/B/C三个用户的媒体包转发给F。
这就是订阅系统的基础功能,知足不一样用户的不一样需求。有了订阅系统,咱们就能够继续来看看一些进阶用户需求。
咱们知道每一个参会用户对于不一样人的清晰度需求是不一样的,同时每一个用户的网络的下行带宽是不一样的。举个例子,发布者发布了最大能力是720p 1.5Mbps,用户A下行带宽大于1.5Mbps,他在界面上须要看发布者的大画面,因此他订阅720p 1.5Mbps;用户B的下行带宽只有700Kbps,他在界面上也须要看发布者的大画面,因此他也订阅的是720p 1.5Mbps;用户C的下行带宽 大于 1.5Mbps,可是他因为界面上只须要发布者的一个小画面,所以他只须要订阅发布者的360p 600Kbps。
此时A/B/C的订阅请求到达服务器后,服务器综合:发布、订阅以及下行带宽估计三个因素,发现没法获得最优分配以知足和匹配全部人需求,有一种可行作法是匹配最低订阅,这样全部人都看到的是360p 600Kbps的视频。这时候对A来讲,他看到发布者的画面就会不清晰,可是他的下行带宽其实足够的。为了解决这个问题,当前的方案已经没法知足了,须要引入新的能力。
为了解决这个问题,咱们提出多流的方案,也就是让发布者发送多条流给服务器,关于多流业界有一个专有名词叫simulcast。发布者开启多流能力,服务器经过智能决策,能够得到最佳匹配。
这个方案的要点是,服务器须要有各个分辨率的码率范围,同时下行带宽须要估计准确,在服务器上根据各个下行的带宽和用户的具体订阅需求进行分配。同时服务器须要兼容上行网络变差时,发布者将多流切为单流的状况,此时在传输协议设计时须要考虑如何能够方便服务器作出正常的选路,这也是咱们前面谈到的传输协议须要能够描述多流能力的缘由。
那是否还有其它方案呢?固然有。
咱们还能够保持发布者一路流上行,若是发布者上行是高分辨率,只须要按照下行用户的需求,转码出所需的分辨率便可;而若是发布者上行的是低分辨率,对于订阅他高分辨率的下行用户,能够采用“超分”方案(下文有简要介绍)。可是不管是转码仍是超分,对服务器的性能负载要求都不小,所以须要谨慎选择,毕竟全部方案都要考虑性价比。

进阶与展望

  • 窄带高清与超分
所谓窄带高清,其实就是传输低带宽,观看高清视觉。
不让马儿吃草,还让马儿跑,大家以为有这么便宜的事吗?还真有,因此说科学技术才是第一辈子产力。
由深度学习发展,人工神经网络能够作到将低分辨率超分为高分辨率。咱们在工程中采用ESPCN网络作的超分Demo在旗舰机型上已经能够实现540p->1080p的超分。不过因为低分辨率的意义不大,而高分辨率对性能要求实在是很高,因此咱们暂时没有将这个功能作上线。
我认为当前超分技术仍是更适合用于点播场景,而实时或者低延时场景还不适用,固然随着机器性能和算法性能提升,将来仍是可期的。
  • 基于机器学习的拥塞控制-PCC
这个演讲中,咱们谈了不少拥塞控制(回顾 《低延时直播与RTC融合架构设计②: 直播与RTC低延时方案》),不管是GCC和BBR都是一种依赖一种Hardwired Mapping 来控制发送速率的,其实本质上都是对网络的一种假设。如今有论文提出一种基于机器学习思路的拥塞控制算法,其中PCC是其中的佼佼者。
PCC相似于机器学习,设置一个目标函数,而后不断地尝试各类发送速率,最终使得目标函数达到最优,逼近最优解,不过最困难的也是如何设计这个这个目标函数了。PCC如今已经有了第二版本 Vivace在算法和设计上作了进一步的优化,我认为这是一个很是有意思的方向,建议你们保持关注。
  • 展 望
AI人工智能、机器学习和深度学习就不用说了,在将来确定会在各个领域发光发亮。VR也是能够大大改变和变革用户体验的一个手段,随着5G和芯片性能提升,我相信将来VR眼镜会变得像手机同样被普遍使用。伴随着5G和IPv6的普及,万物互联IoT,你能够和全部设备进行音视频沟通,想一想就有些期待。
最后,我以为最快落地的就是5G边缘计算,正如我在 《低延时直播与RTC融合架构设计①: 5G与将来的网络格局》举的例子,5G边缘计算将改变IDC、CDN乃至云产商的现有格局。
以上是网易云信多媒体资深技术架构师吴桐在 QCon 全球软件开发大会上海站的演讲实录《超高清4K视频低延时直播与RTC融合架构设计》系列第三篇,也是最后一篇。
欢迎留下评论,与吴桐老师一对一交流。
相关文章
相关标签/搜索