七牛云徐晶:基于 WebRTC 架构的直播课堂实践
8 月 18 日下午,在七牛云架构师实践日第三十期,七牛云教育行业产品研发总监徐晶进行了《基于 WebRTC 架构的直播课堂实践》为题的实战分享。
本文是对演讲内容的实录整理。
作者简介:
七牛云教育行业产品研发总监,拥有 12 年互联网行业经验。擅长将传统行业与互联网结合,形成具有 Plus 效果的互联网产品。曾在阿里巴巴大文娱负责整个优酷直播业务,目前任职七牛云教育行业产品研发总监,构建互联网教育云计算模型,打造在线教育行业的云计算解决方案,突破传统教育壁垒。
流媒体协议与功能的演进
国际电信联盟做的分析,解释了流媒体协议的功能和演进。牵扯到教育、直播,说的简单点就是直播到今天已经不再是观看,直播在之前最重要的一个功能是让大家来观看,但是直播走到今天最重要的功能是互动,形成人与人之间的互动。

直播的体验最好在 200 毫秒以内。到 400 毫秒的时候,已经形成一个分界线,观众的体验已经有非常多的人觉得这是一个有问题的视频,我不想再听下去了。这也是未来教育行业要走下去的一个根本,也就是要缩短教师和学生之间的距离,减缓两者之间沟通的障碍。
大家有没有一个体验?前几天上海在刮台风,很多场景下的电视语言说「让我们来看一看台风登陆点的记者」,那时候你发现好多记者带着耳塞,过了两秒钟才说话「来,我们看一下身后的背景」,这个体验非常不好。如果有一天我们的直播技术做到 150 毫秒以内的延时,这样的场景不再会发生,体验度会越来越好。只有科技达到 150 毫秒才能慢慢走向教育,走向医疗这样非常需要互动的场景。
所以得出的结论是实时性的需求越来越高,超过 150 毫秒的单向传输已经开始影响用户体验。这里面有一个很重要的概念叫做用户体验,最典型的例子就是苹果。大家为什么那么喜欢用 iPhone?它的硬件配置并不比安卓好,但是用户体验上做得足够好。之前我问了很多人,为什么用 iPhone?很多女生说,用 iPhone 就是不卡顿。就是因为不卡顿,iPhone 在用户体验上下了非常大的功夫,在整个苹果的研发中心专门有一支团队是做用户体验的。
下面跟大家普及以下几个概念:
首先,IMS 是非常非常早的微软的一个流媒体协议,这是流媒体的鼻祖。在刚刚开始互联网流媒体的时候,大家都在用 IMS 协议,通过微软的Windows 构架去建立的。之后的 RTMP,整个流媒体行业最通用的一种协议,但是它有一个问题,用的是 TCP 的协议,会带来高延时。
接下来是 WebRTC,从去年到今年,越来越多的机构要做实时互动的流媒体机构,于是开始慢慢去走 WebRTC 的路。它是一个非常低延时的协议,能够让我跟你的距离甚至在 100 毫秒之内都可以去完成。纵观整个流媒体的演进,从点播云到直播云到最后的实时云,我们认为在 150 毫秒下,就可以把它叫做实时云。
我们现在用的最多的是 RTMP,基于 TCP。为什么 TCP 协议本身是安全协议,却需要做很多工作,导致并不是那么高效的传输:
第一,有三次握手。A 点和 B 点联系需要建立通信握手关系。
第二,还会丢包。我这个数据传到 B 点发现网络抖动丢包,需要再传。
第三,流量控制。导致整个 TCP 协议不能完全被使用实时云这样一个概念。
相对来说,UDP 协议非常高效快捷,但是也有很多问题:
第一,安全性。大家知道 UDP 是不安全的行为,不会自动重传,对于视频流媒体来说是完全不能被接受的,我的画面传到 B 点结果由于网络原因丢包了。
第二,UDP 对网络条件非常苛刻。做过互联网的朋友都知道,TS 流在网络环境非常优秀的环境当中才会去使用。既然 TCP 有这样的问题,UDP 也有很多的问题,怎么解决实时通信,同时保证质量、成本、延时。很多人包括 Google 的科学家,阿里巴巴的高级解决方案专家都在研究这个三角关系。
UDP 带来最低延时,但是不能保证质量,TCP 质量最好,但是延时做得最差。这里面提出一个概念,Reliable UDP,让 UPD 变成安全靠谱的传送,场景化的重传。我从 A 点到 B 点的数据因为网络抖动可能有一些问题,没有传过去,对于 UDP 来说,标准的 UDP 不会去重复。在这个场景下,它会去分析,这个数据对于传送是不是最重要的。如果发现觉得非常重要的话,可以继续进行,如果非重要数据,像部分信息链丢失不会去重传,不会导致主要的业务丢失,这叫场景化的重传策略。
第三,带宽自适应的调整。UDP 对带宽要求很高,如果增加了带宽自适应,对于它来说是很靠谱的传送方式。还有很多的改进空间,人类永远在不断更新和迭代算法,更高效地去完善它。今天所讨论的基于 WebRTC 的场景就是一个 WebRTC。
基于 WebRTC 的直播课堂应用
下面介绍的是 WebRTC 在教育领域和教育场景下的一些直播课堂的应用。直播课堂到底是做什么?WebRTC 怎么样建立教师和学生之间的关系?尤其是中国的教育一直被国内外的人吐槽,但是说实话,也蕴藏了很多的机会。
中国教育产业整个的市场环境是,2017 年整个教育市场 1800 亿元人民币,但是排名前十的企业加起来总共一年的收入是 41 亿。也就意味着教育市场很大,大家都在建立学生和教师之间的关系,利用互联网把这块市场打开。
要做到教育必须解决低延时的线上环境,用传统的直播,从老师说到学生听再到学生说,两分钟过去了,感受是特别不好的。直播过程中的互动展示问题,这里提出一个问题白板,教师和学生之间如果光光是语音语言的沟通还不够。用语言解释不清楚的问题,拿在线白板画一张图,可能两分钟就搞明白了。在教育场景下,白板应对教育过程中的互动展示问题是非常非常重要的。进入教学的过程,很多人希望以后能更多的去消化,慢慢去品位,这个就是记录教学的过程和方式。
寻找线上高效的学习方法。很多孩子学习的时候常常觉得这是我爸妈让我学的,我不想学。如果这样的学习状态放进去,它会变成很不高效。如何让他们变成一个高效的学习?建立全程监督教学的环境。举刚才的例子,孩子父母花了很多钱,让他在线去学习钢琴,但是忽然发现孩子不愿意去学,这个时候如果有一个人去全程陪伴他,跟踪学习成果,那这也是有助于提升教学质量的一种方式。
最后,平台化的数据积累。复盘很重要,做教育产业其实会有很多的数据积累,对数据的分析、改善,在未来可以更好的帮助你的业务做准备。

WebRTC 主要的内核,是 Google 构架。当我们在研究教育的时候,要做四件事情:
第一,图传。很多领域都叫图传,后面的摄像机没有线的情况下有微波的实时图传。这里说的图传是老师和学生之间实时网络信号的传输,这里面包括两点:第一个低延时,第二个高精度。现在中国在线教育非常火,尤其是在资本市场很火,但是走在最前列的一些公司都已经开始研究高精度这件事情。比如哒哒有一些基础用户,现在非常想做一件事情,就是如何提升视频质量。现在在线教学用的大部分是摄像头,那个不足以让别人觉得你 Professional。他觉得这是一个工程的探头,而并不是有质量有品牌的东西,我是否可以有专门的摄像机,是否有 1080P 标准进来,甚至哒哒都在研究是否有 4K 的标准可以加进来,这种都是高精度的应用。
第二,互动。这个互动不是刚才说的人与人之间语音的互动,其实是指白板互动。这里面有一个很核心的问题,比如 10 个人,都要同一时刻看到某一个白板上的改变,就像在黑板上画一画,也许只有在座的人可以看到,但是如何让北京、纽约等地更多的人看到,并且很多的点同步,这是非常难的事情。关于讲义,市场上并没有很多人做得非常出色,在讲白板画画的时候,如果我讲 PPT,现场 PPT 无法看,这时候解决 PDF、PPT 转换成白板让各种用户可以看到,这就叫做互动。
第三,服务。之前我自己创过业,一直在提醒自己一个事情,现在这个社会上做实业挣不了多少钱,开店铺永远是在卖东西,什么东西最能几何倍挣钱?答案是服务。提供在线平台给你用,就叫服务;提供淘宝平台给你用,这就叫服务,它能挣钱。这个服务对于教育来说就是教育的监管能力和课堂分析,怎么让一个学生可以学习,怎么让家长能够监管,这些都是我们思考的问题。
第四,沉淀。大数据的沉淀。哒哒每天在线上的几千节课同时并发进行,每天几千课,沉淀下来的数据有多少?这些数据对未来哒哒改善自己的用户体验是否有帮助?这就是数据的魅力。现在有很多公司都在买这些数据,这些数据只有大量的积累才会得到。后续学习的方法经营也一样。
基于 WebRTC 的直播课堂·低延时图传
· 低延时双向建立高效连接
建立可靠 WebRTC 的方式,它代表低延时,低延时的建立双向高效连接。为了体验在线教育,我自己体验过哒哒、VIPKID,体验过十几家,发现有一个问题,都有一个职能叫做学生的顾问,会在直播开始前先打个电话给你,「兄弟,我来帮你弄一下你家的网络,你到底是用 PAD,还是 PC, 还是用什么?」搞一搞,半小时过去了。这个是不高效的连接。后面跟大家讲如何建立低延时高效的连接,我希望在线教育不会有提前 30 分钟建立连接这种不科学的事情。
· 协议决定了低延时 Level
我咨询过流媒体底层的专家,从他们的角度来看,怎样的方式是降低延时最可靠的方式。他这样回答:协议决定一切,决定了大的方向,UDP 到不了毫秒级,WebRTC 最差不会超过多少。其实在协议确定之后,你大的延时基调毫秒还是秒级别已经确定了,再下去优化的环节是物理网络。
· 物理网络的优化与改进
北京到上海,如果花高价买非常好的节点,10 毫秒。如果我是普通的网络,可能 50 毫秒。有人天天说北京有一个电信通,还有一个叫鹏博士,一直有问题,都是因为它的物理网络不是特别好。除了刚才的协议之外还要解决物理解决点,它的有效性并没有像协议来得那么直接那么大。
· 降低网络行为时间
现在有很多视频的传输前都会做一些行为,比如加密,比如回音消除,我发的声音有一些啸叫,降低啸叫,提升 A 和 B 点的低延时传输。
基于 WebRTC 的直播课堂·高清晰度流媒体
做一个非常专业的教育产业或机构你必须要往高清晰度上去靠。高清晰度跟几个因素有影响:
首先是源头的采样。采样也分成很多 level,今天的摄像机是索尼的 4K,最高能够采到 4K 的精度。第一,核心分辨率。我采样的分辨率是 4K 标准还是标清标准,对我的精度是非常重要的一个标准。第二,色位深。这是广电领域的标准,色位深可以认为它的指标略高,采集的图像质量略接近于无损。
其次是编码。编码分成编码效率,Encode Profile,有些人在 PPT 上转一个视频,你会发现为什么同样的电脑,我转出来特别慢,别人转的时候特别快,那些优酷、土豆视频网站分分钟就能转出来。转一个码可能操作里面的 level 步骤是一样的,其实这个转码里面的水非常深,即使你转相同的码率、相同的分辨率、相同的色位深,所产生的编码效率,所谓的 Profile 不一样,带来的时间和图像质量完全不一样。讲得简单点,大家知道 JPG 是一个图像文件格式,为什么网上的 JPG 有的几十 kb,有的拍一张照片 10 kb,是一个压缩。
然后是编码方式,HL4 也是个编码方式,视频使用的是 AV 几这样的编码,音频可能是 AAC 的编码方式。不同的编码方式,在相同的图像质量情况下,所带来的带宽节约度是不一样的。为什么大家最近非常热衷于 H265 和 AG1 这两种编码方式,所产生的文件大小和码率比 HL4 低 40% 到 50%,对于企业来说就是成本,这种叫做编码方式,对于整个图像的高精质量也非常重要。
码率也要结合分辨率、色位深来定。网上很多传 1080P 视频,码率只有 3 兆,根本没有 720P 的清晰,虽然精度很高,但是所花费的成本很低,带来的是图像质量一塌糊涂。这就是明明分辨率很高,画面却不清晰的原因。3Mbps 的 1080P 和1.8Mbps 的 720P 哪个画面更清晰?答案是 720P。大家去 Adobe 官网看过官方推荐的,对不同的分辨率有一个建议值,这个建议值 720P 推荐的码率 1.8M,1080P 推荐的是5.5M。1.8 虽然码率低,但是分辨率也低,只有 720P,所带来的图像质量其实把 720P 放大到 1080P 的屏幕上明显优于 3M 的码率,这也是在线教育会用低码率,但是相对来说比较低清的解决方案来解决画面清晰度的问题。
GOP,是切片最重要的值。GOP 代表的是两个关键轴之间真正通过算法去优化的空间到底有多少。现在很多硬件厂商在编解码的时候,在 GOP 上可以编为可操作,让你可以自由定义 GOP 值,来优化画面质量。
Encode Profile,不同的视频文件转码效率到底有多高,不同的 Profile 质量差异有哪些。CBR 和 VBR 的区别是:CBR 是固定码率,VBR 是动态码率,我可以根据图像的画面来动态调整我的码率空间,达到让图像更优的标准。我今天站在这里,如果摄像机对着我,我说话整个画面是不动的,这时候码率非常小,当我直播一个运动的场景,一个人在跑步的时候,画面永远在动,实时变成高码率的方法,这叫 VBR。
那么哪些场景用 CBR,哪些场景用 VBR 呢?
CBR 适合网络带宽是固定的,我可能家里只有 2 兆,我设定 1.8,但是 VBR 非常不适合,突然间变成 2.2,超过我家里的 2 兆带宽,一下子让我的视频有点卡顿,网络条件允许的情况下,VBR 消耗的带宽远远低于 CBR,对于整个码率图像质量实时分析。
基于 WebRTC 的直播课堂·教育白板
我们在做的白板,是直接在线化的。教室和学生或者更多人 1 对 4、1 对 6、1 对 8,这块动态白板,可以在上面用不同的笔进行画画,用不同颜色做标注,同时下面还有基础图形,可以对一些我想讲的重点圈出来。还有 PPT、PDF,这两个非常受到欢迎。当我有一些 PPT,有一些 PDF 需要分享的时候,我可以让它变成白板的一部分,让大家去做宣讲,让整个教学变得更加高效。我一直认为在教育这个场景下,白板起到的作用要远远高于视频起到的作用。视频起到的作用是,让我看到老师,看到他的形象大概是什么样,有一个面对面的感觉。但是白板是教育真正的核心,这是为什么每个学校里面黑板是必须的一样,白板相对教育这个场景下非常重要。
服务,合流服务。现在很多的空间,很多的互联网机构非常在意的三种模式:
第一,Mesh 模式。
第二,MCU 模式,所有传到中央服务器的模式。
第三,SFU 模式,中国绝大部分在线教育机构都在用的模式。它们所使用的带宽上下结构和灵活性。
服务端合流的作用:
第一,让家长可以看到我孩子在上课,老师怎么样,学生怎么样,他们是否有非常大的匹配性。
第二,让我的在线教育平台,我的教务人员去评估教学质量。
第三,让更多山区的孩子看直播,原来上海复旦大学老师的人讲课,我听不到,在山区可以通过这样的方式去关注。
第四,可以进行录制,录制成本大大降低。
第五,分析数据来源。
智能 AI 在教育场景下的应用
· AI 有效辅助教学
曾经哒哒英语跟我聊了一个事情,他们做 K12,线上培训孩子发现一个问题,有一个孩子跟老师说,我爸让我来上课,但是我不想上。这个钱你拿着,这节课也 OK,我去打游戏了,你想做什么都可以。这种场景就发现这就是一个无效的课堂,在摄像头的两端根本没有人。为了杜绝这种情况,AI 的功能就凸显出来。只要拿一个 AI 识别这两个探头的范围内,如果超过一分钟没有人物在那儿的话,立刻报警,报教务平台,这是个无效的教学,这就是 AI 的辅助作用。
· AI 智能大班课签到及跟踪
这个适合大班课,今天有一百个人来上课,大家到前台的时候不用签到,直接人脸识别就可以上课了。另外一个场景,现在的高校学生都要恨死这个技术了,大家上大学的时候有过翘课的经历。老师在这儿讲了 10 分钟,有学生从后面溜走了,这种情况在大学里面有很多。现在一个探头会永远看着整个教室,教室里面有一百个学生,如果哪个学生溜出去了会自动报警,你想翘课根本没戏,这是 AI 的作用。AI 能识别这是张三在翘课。
· AI 教学互动率监测
老师跟学生在沟通,忽然发现这个学生没听,他的眼神是迷茫的。如果 AI 分析看到他的脸,会觉得这家伙到现在没有做过任何表示,没有举过手没有任何互动,会记下来有问题。
· AI 与大数据的打通
当发现这个人有问题,会告诉教务,这节课是无效的,给到教务去区分这个人有多少次有效上课,有多少次跟老师的互动,有多少次举手。
· 降低了在线教育重运营的问题
比如随着哒哒的扩大,会发现学生越多,顾问就越多,有一万个学生就有一万个顾问,当学生涨到十万,顾问涨到十万,成本太高了。这就需要 AI 来解决。通过 AI 的方式,帮你去推动学前的准备工作。
在线教育大数据中心

沉淀数据。每次我们上完课,这些数据包括 AI 数据和传统数据都会进入教务的大数据中心,这个大数据中心可以方便地去给学生学习兴趣做推荐,举个例子,我发现某个学生在听课的时候对数学课积极度很高,天天在那儿举手,语文课天天睡觉。这时候大数据就会立刻发出告警,以后推荐这个人学理科,这是大数据的作用,可以推荐学习兴趣。
还可以判断学生态度,看这个学生到底是不是认真。教学质量,老师讲的好不好也可以通过大数据学生跟他的互动率反映出来。适时匹配度,学生和老师的互动。实时的数据回吐,有人离开了,提醒老师。
七牛云基于 WebRTC 架构的直播课堂实践

七牛云即将发布的教育解决方案构架当中的 1 对 1 的部分。老师和学生通过不同的 SDK 设备接入进来,他们要做的是通过 WebRTC 高效并且高性能连接,解决高清、低延时、互动、RTC 这样几个问题,还有白板连接进来,是师生之间最重要的桥梁。除了这些,把刚才的 AI 部分、人工识别的部分和数据存储的部分、旁路直播的部分都结合到里面,是一个完整的教育体系解决方案。这是 1 对 1 的解决方案,还有 1 对多。
基于WebRTC架构的直播课堂适用于哪些场景?

第一,在线 1 对 1;
第二,小班课 1 对 4;
第三,传统教育信息化转型,高校也要在线化转型;
第四,双师教育,在 K12 领域非常重要;
第五,企业内部培训。
Q&A
WebRTC 是否带来直播的 3.0 时代?

答:这个是肯定的,直播 1.0 就是广电大家所看的电视机标清,2.0 通过优酷、土豆、爱奇艺让大家观看这件事情。从秀场开始有互动,真正的互动其实是人与人之间的互动并非是打赏,直播 3.0 才是互动,WebRTC 一定是互动环节最重要的环节。
Q
WebRTC的音频质量问题

答:OPUS 的算法,可以带来足够的低延时,所以大家都会用这套理论。
Q
是不是只有教育适合 RTC?
答:其实不是的。现在大家看到,医疗、教育、直播、硬件通信,只要有低延时场景的需求都会有 RTC,教育也会分成很多类,企业教育、传统教育甚至医疗教育。