阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

经历过亿级 DAU 的打磨检验,抖音同款 RTC 到底有何魔力

  • 2022-12-06
    北京
  • 本文字数:3859 字

    阅读完需:约 13 分钟

经历过亿级DAU的打磨检验,抖音同款RTC到底有何魔力

作为国内知名的短视频平台,拥有亿级活跃用户的抖音已经成为现代互联网用户日常生活的一部分。来自全球各地的音视频内容深刻影响了人们的生活、工作和娱乐方式,实时音视频交互也已演变成互联网的主要交流模式。


熟悉音视频技术的开发者都能意识到,抖音亿级日活的背后必然有着极为强大的技术支撑体系。在这一体系中,占据最关键地位的就是字节跳动于 2021 年向行业公开的火山引擎 RTC。经历了过亿级 DAU 产品的持续打磨与完整检验,火山引擎 RTC 将其沉淀的关于音画质提升、架构设计、抗弱网、机型适配等技术成果打包成“抖音同款 RTC”产品及服务,赋能广大企业和开发者,同时助力平台解锁各类场景新玩法,为平台创新增长打开想象空间。如今,火山引擎 RTC 已成为业内 RTC 技术的顶流之一,围绕该引擎发展的火山社区正在吸引越来越多的开发者共同参与和建设。


在 Qcon 全球软件开发大会 2022 上海站上,火山引擎 《实时音视频技术在抖音上的深度磨砺》专场,邀请了来自火山引擎团队的四位高级工程师就 RTC 体验革新、端云协同、出海优化等主题展开分享。本专题深度挖掘了抖音背后实时音视频技术架构的能力与实践经验,获得了与会观众的热烈响应与好评,也为实时音视频技术从业者提供了宝贵的见解和启发。

RTC 与互娱应用


实时互动娱乐是 RTC 技术的主要应用场景之一。对于互娱应用的产品负责人与开发者而言,如何充分利用 RTC 技术的潜力,不断探索互娱应用的全新增长点是日常工作中面临的重要挑战。在本专题的开场,拥有 8 年视频云平台架构设计和管理经验的火山引擎 RTC 互娱产品架构师刘云龙登台,带来了主题为《聚焦增长,探索 RTC 在互娱应用的新进化》的演讲,基于抖音的实践经验为与会者解读上述主题。


在互娱从业者的一般印象里,RTC 作为底层技术与应用的业务表现是没有太大关系的,但火山引擎在实践中得出了不同的的结论。经过团队与抖音业务方的沟通,火山引擎总结出了 RTC 技术与业务指标的几大关键焦点:连麦建连成功率、建连耗时、主播画面清晰度、视频卡顿水平、连麦音质。火山引擎复用了 RTC 音视频流传输链路与弱网对抗策略实时信令,将建连成功率从 2% 优化到了 1.1% 的水平。



接下来,团队借鉴 CDN 首帧策略优化了建连耗时,做到了真正的瞬开体验。针对主播画面,火山引擎优化了人脸算法,并与手机厂商深度合作适配,解决了小主播设备条件不足时经常出现的人脸过曝过暗问题。


如今,互娱领域出现了很多新的场景和玩法,例如跨房厅战、线上 K 歌、边聊边玩等等。这些场景对手机性能、推流延迟、音质等指标要求颇高。火山引擎采用了 SFU+MCU 混合方案、GPU 带宽优化等方法优化了 CPU、GPU 和内存占用,显著降低了机型要求并提升了用户覆盖。团队还采用了三滤波结构和改进算



针对世界杯版权赛事这样的重大活动,火山引擎加强了平台数据感知、后台实时干预和分级服务实时切换能力。其中,平台实时数据感知的问题监控延迟从之前的 100 秒以上压缩到了 10 秒,确保出现问题后能够迅速响应和解决。


目前,火山引擎 RTC 已经接入了抖音小程序和小游戏平台,开发者通过抖音开放平台即可快速接入 RTC 能力,为自己的线上小游戏、小程序提供语音通话功能,并实现多平台互联互通。

数据驱动,“我离抖音还有多远?”


既然 RTC 技术对互娱应用的业务有着重要影响,如何提升 RTC 体验自然就成为企业和开发团队下一个关心的主题。用户体验 QoE 如何度量?QoS 和 QoE 如何关联?解答这些问题的关键就在于火山引擎 RTC 音视频高级架构师卢俊谈到的数据驱动。


如何准确定义 QoS 指标?这是开发者和业务方非常关注的一大挑战。火山引擎 RTC 在实践中总结的经验是,技术指标一般要对齐最小行为粒度,例如用户进房、发言、Mute 自己都要有对应的指标;QoS 指标要对齐最小阈值感受,例如音频卡顿率需要和正常语速对应,音频监控指标定在 80ms 为佳;最后,指标计算要对齐用户行为和反馈,实现透明可验证。


有了良好定义的 QoS 指标,接下来就要设法用这些指标帮助业务实现增长。这里的要点在于,并非每一项技术优化都会给业务带来正向收益,有时给成熟业务做的优化反而会有负收益。为此字节跳动搭建了 AB 实验平台来判断收益水平。经过长期实践,火山引擎 RTC 团队发现最重要的指标是可用性指标,需要尽量优化;体验类指标就需要更多探索,例如卡顿率与用户使用时长之间的关系就不一定很明显。


将各种指标与业务之间的关系做关联分析,就可以找到技术优化的最佳路径,也能更加准确地计算出技术改进带来的业务收益。


此外,团队还会收集用户对 RTC 的反馈数据,通过负反馈率来评估用户的满意度。



负反馈优化存在的痛点是,每日的线上反馈数量很多,很难全部人工分析,需要提升分析效率;有些问题的反馈量很小,但对体验的影响很大,需要专门识别。为此火山引擎 RTC 建立了负反馈异常特征库,可以有效提升分析效率并快速发现无声问题。


未来,火山引擎 RTC 会进一步总结内部对抖音的打磨经验来服务外部客户,探索更多指标优化空间。帮助客户解决用户实际面临的问题。上述特征库也会覆盖内外部客户,客户问题一旦命中特征库会迅速得到解决。


探索 RTC 体验升级新路线


端云协同在 RTC 技术优化中是常见的主题。在音视频特效大量应用于业务的背景下,互动特效算法与音视频云服务的充分融合是业务获得体验优势的重要路径。身为火山引擎智能互动特效架构总监。拥有近 8 年音视频创新实施经验的范青非常熟悉这一领域,并在本专题中带来了题为《端云协同创新优化音视频场景用户体验》的分享,讲述火山引擎互动特效算法引擎的创新点及技术积累,以及与视频云产品,特别是 RTC 融合的最佳实践。



涉及到用户体验主题,一份严谨的评测报告往往是第一步。评测需要主客观分析,以画质评测为例就需要画质的专家测评、专业小组评测、用户重测、AB 实验。这中间还需要搭建专业评测环境、引入专业工具等等。


经过严谨的评测后,开发团队可以找出影响画质的主要问题,随后开始分析最佳的优化路径。很多问题并不是简单提升参数就能解决的,例如 AI 算法的改进都要考虑低端手机的算力瓶颈。优化方案做出来要尽可能覆盖大多数用户、大多数机型,不能在低端机上有很明显的劣化。与此同时,某项方案的改进不能对其他指标产生明显影响,例如分辨率提升如果带来帧率的显著下降是不可接受的,需要有补帧之类的补救方案。此外,团队还需要考虑亮度、位深、色域等指标,各方面取得平衡来获得最佳的画质增强效果。


实践中,美颜这样的算法不仅要在技术底层下功夫,还要深度钻研受众群体的偏好。例如亚洲用户与欧美用户对美颜效果的需求就有很大区别,需要针对性制定不同的算法。这些算法在端侧都要做对应优化,并且要针对不同机型有分级部署策略。



作为云端服务平台,火山引擎提供了全套端云一体增强方案。该方案融合了常见的画质增强技术,并解决了海量机型适配难题,能够以 SDK 的形式为客户提供线上音视频体验增强能力。直播、点播、社交娱乐、游戏互动、在线教育等场景都可以利用该方案为用户提供极致体验。

火山引擎 RTC 全球化架构设计


疫情时代,全球实时互动应用迎来高速发展,各类优秀出海应用层出不穷。出海应用底层往往需要有稳定高可用的 RTC 架构做支撑,而各地参差的网络基建情况和复杂的运营商为 RTC 架构设计提出了更多挑战。本场专题最后,火山引擎 RTC 实时传输网负责人游望秋发表演讲《RTC 全球化架构助力业务出海》,带来火山引擎 RTC 在全球化架构设计方面的实践分享。


RTC 模型可以简化为信令部分和媒体部分,前者包括进房、发布和订阅消息,后者包括发布和订阅流。由此,RTC 全球化架构可以拆分为信令的全球化和媒体的全球化。



火山引擎 RTC 在全球有大量边缘节点,有多个信令中心机房组建信令全球同步网络,共同构成全球实时流媒体传输网络。边缘节点的主要目的是提供用户就近接入。调度服务收到用户请求可以分配到最近节点上,提供较低的延迟水平。与此同时,为了解决跨地域用户互动的延迟需求,云端还会做边缘聚合,减少跨节点流量浪费。这些边缘节点还构建了公网上的实时传输网,具备 QoS 保障。此外,云端还通过多电信供应商、多个边缘节点地址下发和故障节点及时收回等策略保障稳定性。


火山引擎 RTC 的信令全球化架构经过了五个阶段的演进。经过迭代,全球化架构发展为分布式房间架构,并引入了数据半同步模式提升体验,又加入了多径传输模式提升稳定性。全球化架构还统一了信令和媒体通道,并将很多能力下沉到了边缘节点。针对机房稳定性也做了很多工作,例如接入网关部署在多机房、加入 AIOps 组件等。



如今,火山引擎 RTC 的端到端网络延迟可以实现 200ms 达标率 99%,5s 进房成功率达 99.5%,体验非常出色。总体来看,引擎全球化设计的思路就是提升边缘计算能力,同时增强异地多活架构、提升稳定性。

未来展望


回顾四位嘉宾的精彩分享可以看到,火山引擎 RTC 的技术发展与迭代一直都是建立在推动业务发展这一宗旨之上的。只有获得了业务侧的认可,技术升级的价值才能得到充分体现。对于火山引擎的客户而言,这也意味着客户可以更好地感知每一次技术改进和优化所产生的业务收益。


未来,RTC 技术会向更低的延时、更好的清晰度与画质、更流畅等方向演进。除此以外,火山引擎 RTC 团队还注意到了 RTC 行业的一大痛点:使用较为复杂、指标缺乏标准。因此火山引擎 RTC 也在引领全新的 RTC 概念——基于标准协议的 RTC。火山引擎推出了 WebRTC 传输网络,使用标准的 RTC 协议适应更多 RTC 开发者。也能够让更多的 RTC 开发者参与进来,还能够实现不同厂商的 RTC 之间互通,形成“众人拾柴火焰高”的行业局面,推动 RTC 行业迎来全新的时代。

2022-12-06 16:246304
用户头像
王强 技术是文明进步的力量

发布了 788 篇内容, 共 377.8 次阅读, 收获喜欢 1715 次。

关注

评论

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

自主创新、领先一代,星环科技成功登陆科创板

星环科技

大数据 开源

spring用到的设计模式

急需上岸的小谢

10月月更

一文彻底搞懂前端缓存机制

hellocoder2029

JavaScript

不可错过!14位安全大拿齐聚!AMD、Arm及Intel等技术专家解读系统安全 | 2022云栖大会

OpenAnolis小助手

开源社区 系统安全 云栖大会 龙蜥安全专场 操作系统峰会

正向代理与反向代理

急需上岸的小谢

10月月更

ios苹果打包——超详细的教程分享

江拥羡橙

ios CocoaPods 苹果 Weex 10月月更

企业如何添加内嵌式的帮助文档

Baklib

帮助文档

docker学习笔记

Spring事务传播机制

急需上岸的小谢

10月月更

【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)

洛神灬殇

Kubernetes k8s Kubernetes Serverless 10月月更

Go语言入门04—循环语句

良猿

Go golang 后端 10月月更

node+express操作cookie

木偶

前端 Node Express 10月月更

促双碳|AIRIOT智慧能源管理解决方案

AIRIOT

物联网 智慧能源

如何进行企业数字化转型?传统企业数字化转型的3大底层逻辑

优秀

企业数字化转型

秒杀活动!!!! 如何撑住10W QPS

CTO技术共享

10月月更

生产环境P0级事故,整个项目组被罚

CTO技术共享

ERP到底是自研还是外采好????

CTO技术共享

10月月更

为什么vue3要选用proxy,好处是什么?

hellocoder2029

JavaScript

遮罩和蒙版有什么区别,视频遮罩怎么用

懒得勤快

驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验

HMS Core

扫码

前端懒加载和预加载

hellocoder2029

JavaScript

【kafka原理】 消费者偏移量__consumer_offsets_相关解析

石臻臻的杂货铺

kafka 10月月更

Databend 存储架构总览

Databend

途游游戏 DevOps 实践|都说「单元测试」好,「AAAC四步法」少不了

极狐GitLab

DevOps 运维 单元测试 CI/CD 代码安全

数字云栖,邀您共享极致计算与创新进化的科技盛宴

阿里云视频云

阿里云 边缘计算 云栖大会

【kafka原理】kafka Log存储解析以及索引机制

石臻臻的杂货铺

kafka 10月月更

前端JavaScript小技巧【建议收藏】

江拥羡橙

JavaScript ES6 10月月更

分布式事务-CAP理论

zarmnosaj

10月月更

担时代任务 与国家同频 | 九科信息创始人万正勇:自主可控是中国超级自动化技术发展的必要条件

九科Ninetech

RPA 信创

eeui安卓开发--如此简单

江拥羡橙

android Weex 安卓 10月月更

leetcode 450. Delete Node in a BST 删除二叉搜索树中的节点 (中等)

okokabcd

LeetCode 数据结构与算法

经历过亿级DAU的打磨检验,抖音同款RTC到底有何魔力_文化 & 方法_王强_InfoQ精选文章