写点什么

作业帮自研 ZRTC 技术分享

  • 2021-06-28
  • 本文字数:938 字

    阅读完需:约 3 分钟

作业帮自研ZRTC技术分享

5 月 29 日,QCon 全球软件开发大会在北京国际会议中心隆重开幕。在为期三天的技术盛会上,有 150 余位演讲嘉宾现场分享了最新技术创新和实践,带来一场浩瀚的技术之旅。作业帮流媒体客户端负责人曾建斌受大会邀请,在“音视频体验提升实践”专场,以《WebRTC 在作业帮直播课的实践应用》为题,着重分享了作业帮自研的 ZRTC 技术的应用发展情况。


作业帮曾建斌在 QCon 全球软件开发大会分享


曾建斌首先介绍了作业帮 2015 年以来使用 WebRTC 技术的历程。从最开始使用 voice engine 模块实现一对一语音通话、使用 apm 模块消除噪音,到基于 licode 实现了推流源站和转推功能,再到实现小组直播间多人视频语音功能等,WebRTC 技术使用伴随着公司业务发展日益深入。到了 2020 年,作业帮开始自研 ZRTC 并且实现全面落地,90%以上实时通信流量都使用了 ZRTC。


“为什么我们要重新设计一套 RTC 服务呢?”曾建斌说,在几年使用 WebRTC 过程中,发现了一些不适合在线教育行业应用之处,比如代码结构层次太多、版本接口经常变来变去、对移动设备兼容不佳、建立连接的过程长等等。“教育行业直播系统最大的特点是必须要稳定,稳定必须放在第一位,此外还要能快速响应突发情况,对低端设备兼容性好,SDK 接口要灵活,多种接入方式能兼顾接通率和成本等。然而,面对教育行业对直播系统近乎苛刻的稳定性要求,却没有银弹可以解决所有的问题。


他介绍,作业帮自研的实时通信服务 ZRTC,结合教育场景的要求,实现了对 WebRTC 的架构优化、网络优化、音视频优化和机型适配优化。以音视频优化为例,改进音频传输策略、主讲录音采用双声道模式、引用 AI 技术噪音消除等七大项。经过 ZRTC 优化,实现了四方面效果。第一,与使用第三方 RTC 服务相比,可以大幅降低成本。第二,从后台打点监控来看,卡顿率比第三方 RTC 低。第三,音视频质量要好于第三方 RTC 服务。第四,排查解决问题的速度更快。


曾建斌透露,未来还将对 ZRTC 技术进行持续优化,实现更好的使用体验。



QCon 是由 InfoQ 中国主办的综合性技术盛会,每年在伦敦、北京、纽约、圣保罗、上海、旧金山召开。自 2007 年 3 月份开始举办以来,已经有超万名有多年从业经验的技术人员参加过 QCon 大会。QCon 内容源于实践并面向社区,演讲嘉宾依据热点话题,面向 5 年以上工作经验的技术团队负责人、机构师、工程总监、开发人员分享技术创新和实践。

公众号推荐:

AGI 概念引发热议。那么 AGI 究竟是什么?技术架构来看又包括哪些?AI Agent 如何助力人工智能走向 AGI 时代?现阶段营销、金融、教育、零售、企服等行业场景下,AGI应用程度如何?有哪些典型应用案例了吗?以上问题的回答尽在《中国AGI市场发展研究报告 2024》,欢迎大家扫码关注「AI前线」公众号,回复「AGI」领取。

2021-06-28 11:421109

评论

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

Android Launcher——ui框架

android 程序员 移动开发

Android O 新特性:自适应图标(Adaptive Icons)

android 程序员 移动开发

Android OpenCV(三十七):轮廓外接多边形

android 程序员 移动开发

Android VideoPlayer

android 程序员 移动开发

Android View 绘制流程

android 程序员 移动开发

Android Zygote 从何而来?揭开Android系统启动的面纱

android 程序员 移动开发

Android C++系列:JNI基本操作

轻口味

android 11月日更

android okhttp异步请求使用详解 (2)

android 程序员 移动开发

Android SDK 网络模块解析

android 程序员 移动开发

Android Studio 4

android 程序员 移动开发

Android TextView的属性与应用

android 程序员 移动开发

【LeetCode】丢失的数字Java题解

Albert

算法 LeetCode 11月日更

Nebula 分布式图数据库介绍

Se7en

入门Node.js 处理错误

废材壶

node.js 大前端

Android P 适配指南

android 程序员 移动开发

Android Studio安装更新终极解决方式

android 程序员 移动开发

Android UI--ViewPager扩展Tab标签指示

android 程序员 移动开发

关于调度器的一些思考

Rayjun

调度器 Go 语言

Android Material Design尝鲜

android 程序员 移动开发

Android O 新特性:自适应图标(Adaptive Icons)(1)

android 程序员 移动开发

Android SpannableString详细解析

android 程序员 移动开发

[ CloudWeGo 微服务实践 - 06 ] 服务发现(1)

baiyutang

golang 微服务 11月日更

Android JNI 入门(含完整Demo)

android 程序员 移动开发

Android Studio 教程:入门开发第一个程序

android 程序员 移动开发

Android WebView常见问题

android 程序员 移动开发

Android Switch控件修改样式

android 程序员 移动开发

Android Native Crash 收集

android 程序员 移动开发

在Electron中简单实现拖拽功能

废材壶

node.js 大前端 Electron

【译】TypeScript的Record类型说明

废材壶

typescript

Android SDK 网络模块解析(1)

android 程序员 移动开发

Android Studio 插件

android 程序员 移动开发

作业帮自研ZRTC技术分享_大数据_作业帮技术团队_InfoQ精选文章