本篇文章中,吴桐将向大家介绍网易云信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融合架构设计》系列第三篇,也是最后一篇。

邀请好友使用网易云信,好友下单成功即可获得500元京东/严选无门槛现金券,点击立即推荐>>

低延时直播与RTC融合架构设计③:RTC融合架构设计相关推荐

  1. 低延时直播与RTC融合架构设计②:直播与RTC低延时方案

    本文整理自网易云信多媒体资深技术架构师吴桐在 QCon 全球软件开发大会上海站的演讲内容<超高清4K视频低延时直播与RTC融合架构设计>,为该系列的第二篇文章. 回顾该系列第一篇文章< ...

  2. 腾讯云低延时直播系统架构设计与弱网优化实践

    "直播带货"可能是2020年最具代表性的词汇之一,那么传统电商该如何融合直播系统,直播过程如何保障用户的最佳观看体验?本文由腾讯云资深架构师何书照在LiveVideoStack线上 ...

  3. 低延时直播技术优化实践,画质增强技术应用实践,云剪辑架构设计与演进,Web端音视频通话技术探索...

    快直播,低延时直播技术优化实践 Topic <腾讯云快直播低延时播放质量优化实践> 费伟  腾讯云 专家工程师 随着直播行业的快速发展,特别是在疫情的影响下,各种低延时直播需求得到了爆发性 ...

  4. 直播报名 | 超低延时直播架构解析

    超低延时直播架构解析|百度智能视频云3.0全场景音视频技术解析第 4 期 直播详情 第4期:超低延时直播架构解析 时至今日,互联网直播经历了 4 年的高速期发展,用户对体验的要求也越来越高,传统的 5 ...

  5. 低延时直播系统开发技术方案

    直播系统开发 背景和需求 在直播系统开发刚刚兴起时,直播中的互动环节较少,主播单方面控场,因此延迟十几秒对用户体验影响较小.常见的直播大部分采用RTMP.HLS.FLV协议,技术成熟.兼容性较好.支持 ...

  6. 基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

    photo from Ready Player One 随着5G技术的发展,其高带宽.超低延时的特性为高分辨率全景视频的实现带来了更多的可能.本文来自Open WebRTC Toolkit (OWT) ...

  7. 如何构建低延时直播体验,让互动更实时?

    QuestMobile<2020中国移动直播行业"战疫"专题报告>数据显示, 疫情期间,看直播成为休闲娱乐.获取资讯.上课学习的主要方式,一些高度依赖线下场景的行业也纷 ...

  8. 引领高并发直播场景进入毫秒时代,阿里云发布超低延时直播服务

    近日,阿里云上线超低延时直播服务RTS(Real-time Streaming),该服务在视频直播产品的基础上,进行全链路延时监控.传输协议改造等底层技术优化,支持千万级并发场景下的毫秒级延迟直播能力 ...

  9. 《超低延时直播白皮书》已发布,推动直播延时降低90%以上

    点击上方"LiveVideoStack"关注我们 直播行业的蓬勃发展,推动直播技术快速演进,超低延时直播技术也应运而生. 2月22日,腾讯云携手信通院联合发布<超低延时直播白 ...

最新文章

  1. 猜数游戏python_Hello,Python!小鲸教你学Python(九)之文件操作
  2. ae中心点重置工具_不懂这些知识,你的AE白学了!
  3. ajax headers 参数有什么用_动态爬虫(ajax)-爬取bilibili热门视频信息
  4. Taro+react开发(43)重新渲染置空
  5. 昇腾AI计算,无惧618冲动消费
  6. 根据各工序时间画aoe网_灯饰画的优点以及定制要求
  7. Linux操作Oracle(4)——查看oracle后台进程的方法【windows系统/Linux系统】
  8. vijos-1003等价表达式
  9. 舆情监测系统成为网络利器
  10. vue的视图化创建项目_vuecli 创建项目的方法,以及图像化操作【23】
  11. 【扫描线】【POJ-1177】Picture【周长并】
  12. 研磨设计模式之简单工厂
  13. 【智能制造】推进智能制造,他山之石可以攻玉!
  14. QT qml ListView 分页/翻页
  15. 微信公众号一次群发多个推文
  16. 用Python制作我的核酸检测日历
  17. ISO七层模型与TCP/IP四层参考模型逐层解析
  18. 南卡NEO骨传导首发新机,超前无线充设计,树立行业标杆!!!
  19. MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯
  20. 微信公众号的纯文本链接设置

热门文章

  1. 利用ueditor保存到mysql数据库时出现乱码
  2. ubuntu安装SSH2
  3. jsp中session 和 cookies区别
  4. 如何采集病变脏器照片和处理图像?
  5. AWS Ubuntu安装可视化操作桌面和VS Code,Code Server
  6. JDBC(二)——使用IDEA连接数据库、数据库连接池
  7. php nginx实现负载均衡,使用Nginx简单实现负载均衡
  8. 不用数组 java输出杨辉三角_不用数组实现杨辉三角(巴斯卡三角形)
  9. Linux要学git吗,git学习一 基于linux ubuntu git安装与配置
  10. python之pygame安装教程_Python中pygame安装方法图文详解