郭卓惺:互动课堂的搭建实例及相关领域应用

演讲嘉宾:郭卓惺 | 腾讯视频云终端技术中心

随着在线教育覆盖面的增加,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视频云推出了全平台覆盖的互动课堂解决方案。为客户打通了直播、实时音视频、点播、存储、白板、IM、AI等多个业务场景,提供了全方位的paas层能力。尤其是得益于小程序和H5的快捷性,互动课堂解决方案更是在需要快速体验课程的场景下具有独到优势。

大家下午好,我叫郭卓惺,是腾讯云互动课堂的负责人,在腾讯一直负责音视频相关的业务。之前做过互动直播,并与新东方等教育机构有一些技术上的交流。今天我将从以下几点讲讲互动课堂的方案,首先讲在线教育需求原型,然后讲一下腾讯给出的互动课堂方案,接下来讲一下音视频能力和白板、文档能力,最后讲一下怎么样用我们的解决方案进行快速上手。

腾讯云互动课堂框架

首先讲一下市场需求原型。因为我是技术人员,所以我只简单列举了一下市场上教育的原型,如点播类的教学,说简单点就是录一段视频,通过一个平台或者一个网站进行分享。我们觉得这种方案有不好的地方,它缺乏互动,没有实时性。而现在比较好的1V1教学和小班教学,通过直播的方式去扩散,推到各个教室或者各个学生端,直接实时进行互动。还有纯直播类型的万人公开课,类似于秀场直播一样,老师在上面讲,把流全部推出去,这种互动性少一点,但是要求覆盖率和稳定性比较高。去年双师课堂比较火,但双师课堂在技术上来讲跟1V1和小班教学是一个类型的,实际上它是两路流,在技术上来说并不是一个新技术。我讲的是云端技术,并不是硬件,硬件肯定要搭很多东西。

简单来讲,教师端将音视频能力快速推到各个地方的学生,允许一路学生把自己的视频流跟老师进行互动,这就是简单的1V1教学。如果是小班教学和双师课堂,教师也需要看到所有学生的视频流,这就是腾讯云现在所提供的能力。我们举个案例,很多人需要有课件,系统需要把课件分享到各个端,将PPT转成图片进行分享。这些原型完了之后,腾讯云主要提供的是三个能力,实时音视频互动能力、白板文档能力和消息的能力。除了这三个之外,还需要回放,就是将一节课的内容记录下了,录成一个MP4或者其他的音视频类型,后期学习、评估。除了这三个大方向之外,还涉及到技术点有很多,包括白板、存储、直播、混流、录制等能力,我们把这些能力抽出来,给客户提供一个完整的解决方案。

音视频能力TRTC

音视频这块,做在线教育,肯定是希望将教师讲课的内容迅速推到各个端,所以音视频互动的能力是最重要的。简单来说,老师端通过SDK,将流导入腾讯云后台。音视频的数据流导到各个学生端,快速将内容分享出去。腾讯云最近刚刚推出来的针对互动教育的一个SDK,这个SDK就是拥有了音视频能力和白板能力,以及录制回放的能力。如果你是一家做在线教育的公司,你现在做的事情就是绿色的部分,绿色的就是你现在要做的事情,蓝色的是腾讯已经提供的能力,您拿了这个SDK以后,就会有音视频能力、白板能力、录制视频能力。你推到腾讯云,腾讯云帮你做扩散。

重点介绍一下音视频能力。我们最早起源于QQ多人语音视频,它服务了12亿分钟,服务了300家客户。实时音视频是最早针对教育行业的,因为它端对端的延迟比较低,连麦延迟也比较低。它有三大特点,第一是稳定,它已经经过了QQ的考验了,也把能力开放出去服务了这么多客户,它很稳定。第二,快。现在我得到的数据,从视频的预处理到编码、传输,通过极速模式加速推出去,到学生端看的数据最快可以达到200毫秒左右。三,全平台覆盖,我们是腾讯,天然支持小程序、H5。

这是我们开放出来之后支持的客户,包括快手的连麦,包括自己内部的客户、外部的客户、做教育的客户。强调一下实时音视频的快区别于其他家的快。第一,它是私有协议,而不是传统的推流协议,而是私有UDP协议。第二,我们自建的核心网络,我们有1200多个节点,200多个海外节点。第三,因为我们是私有协议,为了把这个流快速分享给微信,分享给标准协议,我们做了一套转码系统,可以兼容H5和小程序。这是传统做直播需要用到的协议,有RTMP、HLS,它们都是基于TCP,所以它们有一个特点比较慢,不太适合做强互动的内容。我们改进后的协议差不多是200毫秒的延迟左右,现在走DC直联的话,现在通过加速链路的话会非常快。

我们使用的是UDP的协议,它有没有弊端?必然有的。TCP是最稳定的协议,丢包之后会大量重传,而UDP并没有这个机制,丢包就丢包了。所以如果没有QoS质量保证,音视频没有办法听,丢了大量的数据,对面收的数据是不完整的。我们在腾讯云内部做了很多事情,首先我们做了FECW前置校准,也就是在发送端先冗余了一些包,如果接收端发现丢包了,可以通过冗余的包,通过差分算法,将丢失的包补出来,我不需要重新请请求一次,让他把包发过来,这样避免重传。为了质量稳定性。所以我们在UDP的基础上,补做了丢包重传的机制。

然后是信源的保证。一个音视频的帧是由I帧和P帧构成的,它送到编码器之后,是从I帧、P帧送给编码器,形成一系列的视频动作。传统的做法有一个巨大的弊端,其中一个P帧丢了,后面的P帧没有办法用了,因为这个P帧是参考前面的P帧。如果这一帧丢了,后面所有帧都没有用。我们做了一下改进,做了好几个SP帧,所以单纯的一个SP帧是参考前置的SP帧。如果一个SP帧丢了,是没有影响的。后面是参考新的SP帧。所以这个对抗丢包性,做了大大的加强。

当你在网络不好的情况下,服务器会自动降低帧率,调整自己的发动策略。通过我们的流动策略,通过RDT协议,上传到CDN。接收端也一样,通过CDN扩到最近的一个节点,传到的学生端,做延迟修正,做编码解码和渲染。

为了保证客户端达到足够快的策略,我们做了很多工作。我们最核心突出的是目前快。但其他方面我们还做了自适应网络抖动,当您的下行丢包率超过65%的时候,我们保证声音是基本稳定的。上行丢包35%也同样如此。我们支持25fps、720p的配置。我们有首帧秒开功能,是指我们在最近的服务器上面缓存了上次的数据,你再进的时候,会拉到上次的画面,让你感觉到第一画面不是黑屏。

我们还做了一些避免拥塞的策略,可以保证自己的流能够稳定地向外输出。我们做了很多跟质量相关的监控,可以实时看到当前用户的音频质量、视频质量、丢包率、CPU等信息。现在我们来讲讲的是我们搭建的核心节点的框架。腾讯云这边的音视频是按照两种结构走的,DC代表核心节点,OC是边缘节点。所以DC一般部署在离三大运营商近的地方,它的连通率是4个9,而OC差一点,一般只有2个9。所以标准的直播链路是这样走,先走最近OC,然后再走DC,然后通过跟相关的DC值连,然后再通过边缘节点扩散。这样的话链路非常长。我们现在做的加速链路,上行的UDP的包,直接找到最近的OC,然后直通光纤,这样速度会节省很多。在互动课堂这块最重要的就是互动的延时比较多,很多在做在线教育的时候,传统的问题延迟太大了。讲课都讲了两三秒了,你才能看到,很难做互动。视频和白板数据是挺快的,你给学生说,答一下现在白板的题。你的声音还没有过去,白板的数据已经过去,完全不同步,他可能还没想到问题,这是一个完全不同步的状态。

在视频互动这块,A的主播刚刚通过保证上行流量的情况下直联到B,B的连麦用户,也是直联到A。但是B是连麦观众,优先级并没有B这么高,仅仅能保证音频。为了兼容分发,如果你是观众,你看他们两个聊天,同时去拉这两路流过来,这样你的带宽成本很高。所以我们做了云端混流,我们腾讯云内部实时把这两路流混成一个标准协议,你可以拉出来,只有一路流的方式。所有观众就可以通过一路流来看他们两个人的聊天。

这是一个老师通过学生端,在腾讯云互动课堂上的解决方案。老师推流到腾讯云,腾讯云首先做了一个Upload集群,转码,转成标准协议,然后再CDN扩散。若不走转码,可以直接走点播系统。为了简化设置,我们开发了一套web配置页面,比如你要配置它的码率、分辨率、帧率,都可以控制。这就是实时音视频的解决方案。

小程序 vs WebRTC

小程序这块音视频技术我们天然支持,小程序在腾讯云内部走的协议是RTP协议,webrtc走的协议是H5,H5走的协议是RPCP。我们的协议用的是UDP,所以我们在腾讯云内部,实际上已经做好了转码。因为房间内的转码,就是房间内的权限、管理、状态,腾讯已经做好了对两个标准协议的支持。虽然是直联协议,但是您可以把直联协议分享给微信,也可以分享给H5。我们的音视频质量相对而言,比较稳定,抗丢包率超过了30%,抗800毫秒的网络抖动,支持百万级的超大规模的房间,支持千万级的并发,现在是全平台覆盖。

白板与文档

白板和文档现在是独立的模块,也就是跟音视频没有关系的。它走的是暗的通道,白板是画一些坐标点,如是TTP,它把先TTP转到腾讯云上面,把文档上传上去,腾讯云给你转码成图片列表,再加上你画的线、涂鸦数据,直接在通道进行传送。这个消息通道也是腾讯云内部提供的,可以分享到通道内部的所有人。为了避免后进的人没有数据,我们把数据保存到腾讯云,后进人的数据可以直接通过腾讯云直接拉取历史数据。

我们的白板不仅支持力度是涂鸦、文档,提供一个独立的通道,也支持回放。刚刚刘总问我们白板和音视频有没有混在一起?目前我们在做这个事情,但是离正式商用还是需要大家在等待一段时间。一个PPT,我可以把PPT每页转成一个图片,再分享出去。教师端主要的流程是采集、编码、序列化,采集的点进行压缩,通过消息通道发送出去。而学生端则是解压、解码、反序列化。这块采集的点是坐标点,所以我们的JDI相对而言比较大,我们需要做一定程度上的压缩。

其实做白板这块有很多技术上的问题,第一个是大小屏幕不一样,因为有些用PC,有些用平板。还有单笔的连贯性,就是你画的时候,那边不同步走。还有乱序的问题,因为数据传输过程中有乱序,所以我们要做乱序重排的方案。还有文档预览,只有白板这块是没有意义的,要把文档传递出去才有意义。最重要的,如果你们自己有白板,你接别人的音视频,你怎么确保视频和音频的同步呢?所以实时性的保证也是很关键的。我做了坐标规划解决第一个问题,我们取的坐标点并不是绝对点,而是所有点我们都做了相对于左上中心点角的坐标规划,如果它是X轴,就除以它的宽度、除以1万,Y轴也是一样。所有的屏幕都是16:9。

为了达到连贯效果,这边画一笔出去之后,如果画很长时间不松笔,你平移,UP事件是抬起来的。之前我们的做法在于UP的时候把采集的数据往外发。这样会导致,第一你的数据点过大,你的解压和压缩、对数据通道的承压能力有挑战。因为画很长的过程中,对方看不到,你只有松开对方才能看到,所以我们做了很多处理。我们当时把这个事件发出去,平移的过程中,采集平移的数据点进行压缩,定时发送。所以您基本上可以看到是一个实时的过程,我这边画一点,那边可以看到画一点。这边的采集的时间定时差不多200毫秒左右。

同步性。我画的时候,你也在画,那白板怎么处理呢?我们可以支持三五个人同时画。我们的处理很简单,所有的数据到了先缓存,缓存收到之后并不立刻画,还是有一个定时的机制。所以数据来了先存缓存,存完缓存之后定时去拉去,就会展示的跟所有人数据都是同步的,同时我们也把数据传一份到腾讯云。

文档。文档是借助于内部腾讯云的转码,就是COS,COS本质工作把东西传上去。它提供了一个所有文档的转码,当我们把文档上传到COS,COS会通知前助处理,告诉前助处理通知转码服务进行转码。转码之后,它会拉这边的PPT,进行PPT的转码,然后再写回一个COS。下面有流程,上传PPT、通知SCF,转码服务。

学生注意力检测

这是我们针对教育行业学生注意力的检测,这也是一个预研的方案,现在还没有推出来。我们会采集学生的特征点,根据特征的算法,去判断他有没有看屏幕。所有的数据搜集到注意力曲线进行判断,判断这个学生对这门课的判断是如何。

快速上手

最后讲一下快速上手,只需要三步。第一步,开通腾讯云的服务,拿到钥匙。第二,集成TICSDK。第三,业务后台接入腾讯云服务。把这两者结合一下,打造你自己的在线教育课堂,因为每个人的需求是不一样的,但这是一个技术。

拿到SDK以后,四到五步,就可以把画面和互动的东西描述出来。首先是登录,然后创建一个课堂,加入一个课堂。让对方打开摄像头,连麦过来,你把流推出去,进行一些涂鸦,最后是退出课堂。

这是一个比较简化的解决方案。我们把音视频推给腾讯云,腾讯云帮你做转码和文档的转码和一些录制。把流推给对应的学生端。业务方需要取得录制文件,直接调热接口,这是一个简化图,真实情况还要复杂。

现在SDK整合了好几个能力,这是音视频能力、消息能力、白板能力和文档转码能力,蓝色部分是我们提供的。绿色的是现在要去解决的,首先要看怎么拿到钥匙,然后是课堂管理。我们其实是不管课堂的,我们只有一个小群组,我们不维护课堂。然后布局、登录等等,这样事情要做。

今天的分享就到这里,谢谢大家!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

优秀程序员的10个习惯

在这个世界上,有数百万的人热衷于软件开发。 他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Cod...

3236
来自专栏极乐技术社区

微信小程序开发心得第一章:心法修炼

或许有人会问为毛第一章就来个这么高级吓人的标题,没错,就是为了吸引你阅读,哈哈。根据我的工作经验和多年做生意的经历告诉我,在进入任何一个领域的时候,首先要进行心...

2248
来自专栏程序工场

优秀程序员的十个习惯

1273
来自专栏Java架构

Java体系化高级学习路线图,拿走不谢!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

1363
来自专栏资深Tester

软件测试人员应该如何解决面试中不会回答的问题

2466
来自专栏大前端开发

微信小程序正式发布,符合你的预期么?

小程序终于在今日凌晨如期发布了,对很多人来说都是非常期待的,看各个开发者群里更是三更半夜还讨论的热火朝天的。

784
来自专栏通信云团队

日活百万的APP,如何应对并发聊天的消息请求?

这些照片,主要有2种风格

3881
来自专栏灯塔大数据

数据的阴暗面:什么是暗数据?为什么暗数据很重要?

? 最近引起热议的术语暗数据,确切的说,就是来自于大数据的阴暗面。尽管暗数据这个名字听起来不吉利(让人联想到一个少年哥特乐队会取的绰号),但是或许更加的准确。...

3615
来自专栏云计算D1net

云计算:拼的是运维

云计算的IaaS、PaaS、SaaS最后那个S都是Service。就是说,无论你云计算长成什么样,都得要向用户提供“服务”而不仅仅是软硬件和各种资源。 【云计算...

7629
来自专栏SAP最佳业务实践

SAP最佳业务实践:按库存生产(145)-1业务概览

1、业务情景概览 用途和优点: 用途 本业务情景描述以批量生产为导向的典型业务流程 该业务情景以按库存生产方式 (MTS) 生产成品以及所有相关组件 ...

2894

扫码关注云+社区

领取腾讯云代金券