华为云如何使用一套系统解决低时延传输等相关问题?

描述

本文整理自华为云视频云架构师武杰线上分享的演讲,他详细介绍华为云从直播到实时音视频的网络架构演进、低时延传输技术,分享华为云实时音视频的应用场景实践。实时音视频业务将逐步成为云基础设施,使能千行百业。面对直播,实时音视频爆发式增长,华为云如何使用一套系统解决直播,实时音视频业务融合以及低时延传输等相关问题?

大家好,我叫武杰,是华为云视频云架构师。从2006年开始参加工作,曾在通信行业负责IMS核心网业务系统产品研发。曾主管直播CDN、弹性转码系统架构、研发和运维。2019年加入华为,曾负责华为云直播服务,实时音视频服务产品规划和架构,现负责华为云视频云服务整体技术架构和可靠性设计工作。有着10年以上大规模分布式系统研发、运维和架构经验,在CDN网络架构,音视频传输,拥塞控制,通信协议等领域与有着多年经验积累。 本次我分享主题是华为云RTC服务架构及应用实践。 1 对音视频技术发展的回顾和展望 1.1 视频业务走向实时互动,RTC成为视频基础能力

华为

从3G、4G一直到5G,随着网络的发展,网络技术不断跃迁,这也带来了更快的传输速率、更低的延迟和更低的成本。从最原始的IM到点播+评论,再到直播+弹幕。我们预测未来随着5G的发展,网络会带来更低的时延,如云渲染、虚拟空间码率的业务以及AI、IoT业务会随着网络技术的演进逐步成熟。 1.2 实时音视频RTC应用场景将继续深化

华为

从4G到5G技术的迭代,我们看到整个RTC从普通的娱乐视频、教育视频,到结合行业逐步适配更广泛的应用,例如智慧办公、应急指挥、远程医疗等。未来随着万物互联的时代到来,实时音视频业务会继续深入,连接物与物、人与物,成为实时交互的连接网络,如智能家庭终端、智能汽车、智能手表等音视频交互、操控。现在音视频还处于井喷的起始阶段,未来人与物、物与物的协作还将继续爆发,并且和生活密切相关。 2 传 统 直 播 2.1 传统直播架构——时延和卡顿二选一

华为

上图的系统架构是直播系统比较通用的架构,一般分为3层架构,分别是单线的CDN边缘、多线的CDN中心和承载一些增值服务的源站。从这个架构中可以看出以下问题:

上、下行流均需要通过两层网络到直播源站,并在直播源站关联汇聚,成本较高;

属于静态路由规划,无法保证端到端最优路径,质量优化空间有限;

全链路TCP,特别是第一公里和最后一公里不确定网络条件,一旦产生丢包,质量迅速下降。

所以在整个直播过程中,CDN会给3-5s左右的时延,让终端有buffer抗抖动。这里的痛点是时延和卡顿,这是需要进行二选一的过程,如果要追求较低的卡顿率,时延就需要加大。现在的一些超低时延直播引入了WebRTC技术或者用SRT、QUIC解决第一公里或最后一公里的问题,这样做能带来一些好处,但它的时延最多只能做到1s左右。 2.2 割裂的网络

华为

随着直播业务不断地发展,直播的交互性从2016年主播和观众通过文字或弹幕交互,逐步演进成实时连麦的交互,整个RTC最初比较火的业务也是连麦——主播在上播过程中可以申请权限与主播连麦,分享至很多人。对于一些直播平台,它们需要对接两套系统——实时音视频系统与直播系统。当主播开始连麦时,从直播系统切至实时音视频系统,主播与观众间有几百毫秒的时延,对于普通观众在合流块引入1到2s的延时,直播块引入3-5s的延时,整个时延变得非常大。而当观众退麦时,他会在直播中看到几秒前的自己,对于这种传统直播的实现方式是割裂的网络。 3 华为云RTC

3.1 RTC原生架构

华为

华为RTC云的理念是打造统一资源架构和技术架构以支持当前直播+RTC场景,华为云希望将多个网络变成统一网络、多个系统变成统一系统、SDK尽量做到统一去解决交互和直播的融合场景,实现会议、直播、连麦以及后续其他继续深入的场景支撑。 3.2 华为云RTC整体架构 华为云RTC基于华为云构建,在整个环境中分为5层架构:

最上层是Global区,承载了数据、内容管理、调度等相关的能力;

Region区,部署在广州、北京、上海,配置的是RTC的增值能力,例如截图、审核、转码、RTR等;

中心与边缘位于华为云整个CDN节点上,有相应与RTC配套的服务,包括转码、实时渲染等;

最下层为用户层。我将在下文针对以上内容做详细说明。

3.3 实时音视频分发网络

从结构来看,华为云RTC不再是树状架构,通过调度和内部路径选优的方式尽量找到主播和普通观众之间的最短路径,可能会将观众与主播调至同一节点、或进行节点与节点之间的互通、又或者节点间通过中转接点互通,从而确保端到端路径最短、时延最优。这中间一旦出现问题,可以进行相应的中转节点或链路的调换。与此同时,部分增值业务节点可下沉到接入节点,支持超低时延(100ms) 转码,租户可按需合流。

3.4 实时音视频传输协议栈

华为实时音视频传输协议栈,以UDP和TCP网络以及华为自研的ADN——四层RPN的网络为传输层的基础,打造实时传输协议栈,在协议栈中支持HWRTC协议、WebRTC,用以上协议支持上层RTC业务、超低时延直播业务、标准直播业务,未来将整合GB28181扩展性摄像头相关的业务。

3.5 计算资源的边缘下层——边缘媒体+AI计算架构

边缘媒体+AI计算架构依托于华为云边缘节点,通过IEF对整个边缘节点找了边缘函数框架,在上方构建实施媒体+AI的能力。也就是说这里不仅具备编解码能力,还可以集成第三方EI的算法镜像。这种方法可以将端侧的美颜替换能力下放到云的边缘。

3.6 华为云RTC技术 智能编解码+网络自适应双轮驱动

在整个RTC过程中,从采集端到播放端的过程,第一步通过设备采集音视频,在编解码层采用智能编码技术,如SVC可伸缩分层编码,它包括时域和空域的编解码,时域是直播播放端降帧的能力,空域能把主播的流变成大小流,被叫端根据网络状况选择播高码率或是低码率的流,如此当被叫端网络不好时可以通过降码的方式达到播放流畅的效果。后续是通过实时超分和ROI优化对编解码方面做更低码率的压缩,得到更好的传输和低时延的效果。 第二步是智能调速,主要涉及网络层和编解码层的互动,通过网络层的网络探测和带宽预分析判断端侧的带宽,也就是传输的码率最大可以支持多少带宽。通过此种方式控制编码的码率,使得主播端能够有更好的流畅度。

最后一步是私有抗网损算法,采用FEC前向纠错算法、自动重传HARQ——华为自研的算法、接收端的AJB自适应抗抖动Buffer做一些网络重传的抗抖。以上算法相互配合,在保证直播流畅的情况下达到最低时延的效果。以上就是华为云RTC的智能编解码和网络自适应双轮驱动的内容。 语言增强技术+丢包补偿 华为云在语音方面的技术,主要分为语言增强技术和语音丢包补偿技术两大部分。 语音增强技术包括语音降噪、回声消除。降噪主要采取AI降噪与传统降噪结合的方式。现如今存在很多不同的场景需要降噪的适配,例如主播场景要求背景音清晰、教育场景需要降背景音,还有一些敲键盘或相应声音去除等不同场景适配。回音消除指单向通话时因为回音消除不完全产生回声,另外在交互过程中,不会产生双讲或丢字。我们通过Mos值评分确定语音效果。 语音丢包补偿技术应用于当前网络产生丢包的情况,如上图所示,产生丢包时,中间信号是空的,如果完全依赖于重传,时延不能达到很好的效果,这部分会采用一些传统与AI结合的方式将丢的包补齐,从而达到语音流畅的效果。上图是在不同丢包率下做到的音频Mos值,音频的核心竞争力是高音质——比较主流的是48k赫兹Mos值达到4.0以上、低延时——延时要达到小于300ms、回音消除——不漏回声,双讲不去字。以上就是语音增强方面相关技术介绍。

4 实时音视频RTC体验优化

4.1 监控QoE/QoS全局实时监控 在成千上万的流量中,如何保证系统能够及时发现问题呢?我们通过服务端和客户端的埋点采集,对整个全网的节点进行监控——包括全网维度、APP维度、Room维度、节点维度等。根据不同的监控数据,通过数据聚合的方式发现网络层面、客户端层面出现的问题,通过以上这些数据,运维可以及时发现链路中的问题并着手解决。

4.2 一键式用户个例通话QoS行为调查能力 当接到客户说某个用户有卡顿时,判断的方法是一键式用户个例通话QoS行为调查能力。首先通过房间维度的监控进到用户维度监控,再通过用户数据的帧率、码率、时延、抖动、丢包率判断网络状况,如发现与设备终端有关联,比如用户终端CPU跑高或内存跑高,是由于用户其他应用开启造成的问题,需要定位具体原因;如果是用户操作行为导致的问题,例如做了关麦的操作却反馈“没有声音”,可以通过用户操作行为事件判断用户在使用过程中产生的相应问题。

4.3 实时音视频体验自动诊断 对于单用户的分析我们还做了相应的自我诊断功能。根据关键指标的监控,通过监控模型分析是否有聚集性的问题,比如CPU高或某一区域、节点有问题,在得到这些异常事件后,用它来分析用户端可能会发生的一些问题,比如进房满、视频音频卡顿等。另外可以反馈至运维,判断聚集性问题和网络端出现的问题,通过切换节点、链路等方式解决网络侧问题。以上是整个运维监控系统的内容。

5 实时音视频主打场景

5.1 企业会议:直播互动视频会议,涵盖内外沟通场景,适应业务发展需求 RTC技术和华为云会议系统进行对接,最终目标是打造千人会议,可以让会场支持千人级互动与万人级观众参与,让观众和发言者可以进行自由切换,同时支持云端低于100ms超低时延合流,降低纯观众播放的带宽和成本。

5.2 在线教育:学生随时举手上台,支持子母课,万人大课堂 在教育模块我们经过深入研究,发现传统的在线教育是老师在上面讲课,许多学生听老师讲课,学生可以通过举手的方式上台与老师互动,但很多情况是老师会将学生分组,组内可以进行交流互动,再将互动结果分享。在教育方面我们做了更多的适配场景,可以让多个终端加入同个会场、同个子母课的方式去支持教育行业应用。通过上述方式,观看端学生与老师之间的互动时延均低于300ms,学生切换流畅,并不像传统连麦中学生互动结束后可以听到几秒前与老师的互动。

5.3 电商直播:面对面的沟通体验,提升转换率 传统的电商直播受限于原有网络问题,观众只能通过弹幕的方式和主播进行交流,导致转化率比较低,而传统的连麦架构会导致从互动切换到直播的过程,时延变大,会看到几秒前的自己,用户体验度很差,此外买家与卖家互动是单向的,只能通过文字沟通。通过实时音视频的引入,保证了互动端和观众端时延在300ms以内,整个过程中,观众可以随时切麦和主播进行互动,做到全场景低时延,从而提高电商直播场景中转化率。

原文标题:华为云RTC服务架构及应用实践

文章出处:【微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分