NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

QCon 实时音视频专场:实时互动的最佳实践与未来展望

  • 2021-06-02
  • 本文字数:3819 字

    阅读完需:约 13 分钟

QCon 实时音视频专场:实时互动的最佳实践与未来展望


互动直播、线上会议、在线医疗和在线教育是实时音视频技术应用的重要场景,而这些场景对高可用、高可靠、低延时有着苛刻的要求,很多团队在音视频产品开发过程中会遇到各种各样的问题。例如:流畅性,如果在视频过程中频繁卡顿,基本上就很难有良好的互动;回声消除,经过环境反射被麦克风重新采集并传输,这也会影响互动效果;国内外互通,越来越多的产品选择出海,海内外互通也是技术上需要解决的点;海量并发,这对音视频产品的抗压能力而言是很大的挑战。


5 月 29 日,在 「QCon 北京全球软件开发大会」上,由声网 Agora 技术 VP 冯越作为专题出品人发起的「实时音视频专场」,邀请到了来自新东方、伴鱼英语、声网 Agora 的技术专家,与大家分享了下一代视频引擎架构、大规模实施音视频系统的难点与跳转、语音测评及本地化实践、前端音视频播放器的研究与实践等话题。

1 声网下一代视频引擎架构探索

随着音视频技术快速发展,音视频实时互动在多个领域(社交娱乐、在线直播、医疗等)中都得到了广泛的应用。同时伴随着 AI 技术在图象处理中的快速发展,融合了 AI 算法的高级视频前处理功能也得到了越来越多的应用。场景的丰富多变对下一代视频灵活可扩展功能提出了很高的要求。


声网 Agora 负责下一代视频引擎架构设计的架构师李雅琪首先为大家带来了关于《声网下一代视频引擎架构探索与实践》的分享。



为了能更好地满足对于视频体验的场景丰富性、用户差异性以及对直播体验的需求,声网将下一代视频处理引擎设计原则和目标总结为以下四个方面:


1、要满足不同的用户对集成的差异化需求;


2、要做到灵活可扩展,可以快速的支撑各种新业务和新技术场景落地;


3、要做到快速可靠,对于视频处理引擎核心系统要提供丰富强大的可能,且能够极大地降低开发人员心智负担。


4、要做到性能优越可监控,要持续优化视频直播处理引擎性能,同时提高监控手段,实现质量数据透明。


针对上述四个设计目标,声网具体采用了哪些软件设计的方法呢?


由于引擎的使用者是天然分层的,一部分使用者要求低代码快速上线,需要引擎尽可能提供贴近他业务的功能的 API;而另外一部分用户,希望引擎可以为他们提供更多的核心视频处理能力,在这之上可以按照自己的需求定制视频处理业务。因此,根据这个用户形态声网也采取了业务组合加核心功能的分层业务设计,High Level API 面向业务提供易用性,Low Level API 提供核心功能和灵活性。为了把灵活编排能力作为视频处理引擎的能力开放给开发者,让开发者可以通过灵活自由的 API 组合,根据不同的业务需求进行灵活编排,声网的视频处理引擎核心架构采用了 Microkernel Architecture 的架构模式,分离了整个引擎的变量和不变量。通过微内核的架构模式实现灵活可扩展的目标: 各个模块功能可以快速扩展,视频处理管线也可以通过搭积木式的组合来实现业务的灵活编排。



如果我们没有一个稳定可靠的核心系统,一个开发人员要从零开始在视频处理管线上开发一个美颜插件,需要考虑其自身业务逻辑以外的很多问题: 模块的位置、数据格式转换、线程模型、内存管理、属性配置等问题,针对这一系列工程相关的集成问题声网将解决方案固化到底层核心系统当中,为用户提供了丰富强大的基础功能。这套视频引擎核心系统包括了基础视频处理单元、管线搭建和控制、视频基础格式算法支持以及系统基础设施等功能。有了这个核心系统,集成就会变得非常简单,插件只要按照核心系统接口协议约定,实现相关的封装接口就可以了。丰富强大的核心系统功能极大地降低了模块开发者的心智负担,从而帮助开发者提升整体的研发效能


在性能优越可监控部分,声网优化了移动端数据处理链路,分离了控制面和数据面,提升了整体数据视频的传输效率。另外还构建了视频处理特性相关的内存池来降低系统资源消耗。最终实现了全链路视频质量监控机制,使视频优化性能达到闭环反馈的效果。

2 自研大规模实时音视频系统的难点与挑战

来自声网 Agora 的行业架构师董海冰作为 RTC 领域的长期深耕者在大会中为大家普及了 RTC 相关的基础概念,同时也详细分析了 RTC 的场景特点以及在自研过程中的架构设计和难点。最后,对于 RTC 未来的发展方向也分享了他自己的看法。


相较于传统互联网应对大规模、高并发已经较为成熟的解决方案:缓存、异步、分布式,实时音视频领域所面临的挑战其实会更为复杂。“实时”要控制在 1 秒以内才能叫做“实时”。比如做缓存,其时间都是秒级别的,或者分钟级别的,很少出现毫秒级别。实时音视频(RTC)在应对大规模、高并发场景时,需要考虑到音视频质量、流畅性、低时延、可伸缩以及可用性等问题,这是做实时音视频和传统互联网很不一样的地方,也意味着其解决方案也会更为复杂。



在开发过程中,用户常见的挑战有开发成本、网络搭建、质量监控、音频处理和最后测试等问题。在分享中,董海冰就举了一个音频自研的例子。首先,音频传输最关键要解决的问题有 3 个:无声 / 声音小、回声、噪声 / 杂音。其次,弱网对抗能力也非常重要,在网络发生变化的时候,怎么通过码率和帧率调整能够缓解变化,同时要解决在智能路由算法里面实现最优路径的选择与传输等问题。另一个挑战就是多维度的质量评估,而且要做到实时化的评估,同时和动态调整形成一个闭环,这样才是最好的方式,能够在弱网对抗里面起到比较好的作用。而对于使用开源服务端的难点,董海冰也对几个常见的方案(Jitsi/Jitsi VideoBridge、Kurento、Licode/Erizo、Pion、Janus)进行了探讨与分享。


除了服务端的开发,实时音视频的运维及质量监控也与传统的互联网方式有些不同。比如在运维方面,除了常见的容灾规划、容器化部署、自动化运维、性能分析及日志系统外,实时音视频中的运维还需要面对全球网络(跨区域、跨运营商)、Lastmile 策略等挑战。


如果用户选择了自研的方式,可能还会面对大规模连麦、RTC 录制 / 回放方案、运营成本的控制等问题。但即便我们需要面对和解决如此多的困难和挑战,不能忽略的是实时音视频技术正在被应用在越来越多的场景下,也拥有着越来越多的可能性。


MetaVerse 译作元宇宙,是近期比较热的一个概念。在现实生活中我们可以把它理解为是一种角色转换,在虚拟世界中是另一种全新体验,实现多种虚拟世界角色的切换。VRCHAT 也是类似的,通过 VR 来做社交或者娱乐,帮助大家进行更好的线上交互,这很可能是未来互联网的发展和探索的方向。董海冰提到,作为自研团队不能闭门造车,要紧跟时代脉搏和行业发展趋势,尽可能把自己的力量投入在自己核心业务和擅长的方面,大家一起把实时音视频这个领域做得更好

3 新东方云教室 Web 端音视频播放器实践

线上教育应该是近两年大家最为熟悉的实时音视频应用场景之一,此次专场,我们邀请到了来自新东方云教室前端交互架构师李便茹为大家分享新东方是如何实现线下到线上快速迁移的最佳实践



新东方在 18 年底开始做自己的云教室,2020 年过年期间一个礼拜,做到了从支撑万级的并发跃进到了支撑 30 万并发。


新东方云教室是一套完整的在线上课解决方案,提供 saas 服务,其显著的一个特点就是更新迭代的节奏非常快。如果在端上做原生开发,比如与 PC、Windows、移动端与安卓和 iOS,那么更新迭代一定是赶不上节奏的,因此他们将策略定为客户端内嵌 H5 页面,除实时音视频外,交互功能基本由 H5 实现。Web 适配到各个端,这就是最快的开发模式。


实时音视频(RTC)延时是百毫秒级,最多不会超过 500 毫秒,人耳是基本感知不到的。在线上教育中会有小班课和大班课两种不同的场景。小班课对于低延时的实时互动要求就会比较高,但对于一些大学的课程和讲座,或是名师公开演讲的大班课场景如果用 RTC 的话,成本其实相对就会较高一些了。针对大班课,新东方云课堂采用了 H5 超大班型的方法,支持百万人同时上课,老师端用 RTMP 推流,学生端依然走 HTTP 拉流。



Web 直播播放器架构图


对于未来可扩展部分,如果云教室的视频编码采用 H.265 的标准,那么压缩就会比 H.264 小一半,网络压力就减少了很多。H5 拥有应用范围广泛且支持跨平台的优势,能够实现同一套方案适配不同客户端,快速开发一套产品,就能够快速上线。自研通用播放器可以更改输入源流,定制化或者快开发。

4 语音测评和本地化

为了可以更好地提供教育服务,近两年在线教育平台也结合深度学习实现了许多新的功能,语音测评就是其中一项,尤其在英语教育中少儿口语的测评次数需求量巨大。如何降低测评时延,提升评测服务的体验,同时降低服务器压力和成本?来自伴鱼技术中台 AI 算法负责人黄智超分享了《语音测评和本地化》



语音评测是通过机器替代人工,为少儿口语发音进行智能打分的一项功能。语音测评在伴鱼的实践,主要包括算法和框架选择、声学模型训练、效果和速度的优化。算法方面,伴鱼选择的是用深度神经网络和隐马儿可夫,主要原因是深度学习框架目前非常成熟。而框架选择是 kaldi,语音界使用人数最多,而且资料齐全。



深度神经网络和隐马尔可夫算法 (dnn + hmm) 的测评过程如上图所示。首先要训练一个 dnn 声学模型,训练 hmm 拓扑参数,训练完之后,我们会对输入的文本进行构图,对音频进行特征提取,然后经过声学模型。经过一个打分模型后,得出句子得分。


在这个过程中,数据筛选、声学模型的训练、评测准确率的优化都是关键。黄智超在之后的分享中还详细分享了伴鱼的语音评测在本地化的过程中模型体积优化、测评服务鲁棒性,以及如何解决异常 Case 分析困难等问题与经验。


原文链接


QCon 实时音视频专场:实时互动的最佳实践与未来展望

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-06-02 14:402400

评论 1 条评论

发布
暂无评论
发现更多内容

漏洞检测方法如何选?详解源代码与二进制SCA检测原理

华为云开发者联盟

安全 漏洞 软件成分分析 源代码SCA检测 二进制SCA检测

【架构实战营】模块六

衣谷

架构实战营

实用机器学习笔记六:数据清理

打工人!

机器学习 算法 学习笔记 12月日更 实用机器学习

6.《重学JAVA》--数据类型

杨鹏Geek

Java 25 周年 28天写作 12月日更

浪潮云跻身中国政务大数据管理平台市场领导者位置

浪潮云

云计算 云计算运维

TypeScript 之模板字面量类型

冴羽

JavaScript typescript 翻译 大前端

青藤:一招制敌!微隔离,让勒索软件不再横行

青藤云安全

低代码实现探索(四)前端组件核心模型

零道云-混合式低代码平台

选课排课软件原生开发选课排课小程序模式源码开发

风行无疆

清空数组的几个方式

CRMEB

7个连环问揭开java多线程背后的弯弯绕

华为云开发者联盟

Java 多线程 工作内存 主内存

拆分电商系统为微服务

Beyond Ryan

低代码实现探索(五)前端组件图形化脚本

零道云-混合式低代码平台

风口之下,音视频应用出海的三大机遇

融云 RongCloud

音视频 通信 出海

基于云的技术架构设计实践 - 第3篇

hackstoic

签约计划第二季 业务安全

低代码平台是伪需求?不好意思,你的同行已经靠它完成转型升级了!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 低代码平台

视镜:华为云媒体质量管理最新实践

华为云开发者联盟

音视频 华为云 媒体质量 视镜

如何建成有效的前端效能度量体系

benyasin

大前端 研发效能 研发度量 研发提效

低代码实现探索(三)后台模型执行设计

零道云-混合式低代码平台

谈谈创业感想

wood

创业 28天写作

前端领域的数据状态统一管理机制

鲸品堂

大前端

基于RPA的自动化优先,正在成为广大组织的主流管理思维

王吉伟频道

RPA 机器人流程自动化 业务流程管理 自动化优先 业务流程自动化

如何处理工作与生活之间的冲突?

石云升

28天写作 职场经验 12月日更

华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

华为云开发者联盟

数据库 时序数据库 GaussDB(for Influx) 时序数据 数据压缩

架构实战营:模块一作业

Geek_93ffb0

「架构实战营」

安全第二话

张老蔫

28天写作

网络安全之SQL注入深入分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 SQL注入

焱融 YRCloudFile 连获两项重量级认证,展现强劲存储实力!

焱融科技

云计算 分布式 云原生 高性能 文件存储

如何对Android 11进行网络状态监听

Changing Lin

12月日更

架构训练营-模块一作业

zhongwy

架构实战营

愿当传播通信技术火种的普罗米修斯

融云 RongCloud

通信云 技术大会

QCon 实时音视频专场:实时互动的最佳实践与未来展望_架构_声网_InfoQ精选文章