前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >郭卓惺:互动课堂的搭建实例及相关领域应用

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

原创
作者头像
腾讯云开发者社区技术沙龙
修改2018-06-29 15:53:33
6.1K0
修改2018-06-29 15:53:33
举报

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

随着在线教育覆盖面的增加,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视频云推出了全平台覆盖的互动课堂解决方案。为客户打通了直播、实时音视频、点播、存储、白板、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整合了好几个能力,这是音视频能力、消息能力、白板能力和文档转码能力,蓝色部分是我们提供的。绿色的是现在要去解决的,首先要看怎么拿到钥匙,然后是课堂管理。我们其实是不管课堂的,我们只有一个小群组,我们不维护课堂。然后布局、登录等等,这样事情要做。

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 腾讯云互动课堂框架
  • 音视频能力TRTC
  • 小程序 vs WebRTC
  • 白板与文档
  • 学生注意力检测
  • 快速上手
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档