本文来自腾讯云技术沙龙,本次沙龙主题为在线教育个性化教学技术实践 web
演讲嘉宾:郭卓惺 | 腾讯视频云终端技术中心
随着在线教育覆盖面的增长,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视频云推出了全平台覆盖的互动课堂解决方案。为客户打通了直播、实时音视频、点播、存储、白板、IM、AI等多个业务场景,提供了全方位的paas层能力。尤为是得益于小程序和H5的快捷性,互动课堂解决方案更是在须要快速体验课程的场景下具备独到优点。算法
你们下午好,我叫郭卓惺,是腾讯云互动课堂的负责人,在腾讯一直负责音视频相关的业务。以前作过互动直播,并与新东方等教育机构有一些技术上的交流。今天我将从如下几点讲讲互动课堂的方案,首先讲在线教育需求原型,而后讲一下腾讯给出的互动课堂方案,接下来说一下音视频能力和白板、文档能力,最后讲一下怎么样用咱们的解决方案进行快速上手。小程序
首先讲一下市场需求原型。由于我是技术人员,因此我只简单列举了一下市场上教育的原型,如点播类的教学,说简单点就是录一段视频,经过一个平台或者一个网站进行分享。咱们以为这种方案有很差的地方,它缺少互动,没有实时性。而如今比较好的1V1教学和小班教学,经过直播的方式去扩散,推到各个教室或者各个学生端,直接实时进行互动。还有纯直播类型的万人公开课,相似于秀场直播同样,老师在上面讲,把流所有推出去,这种互动性少一点,可是要求覆盖率和稳定性比较高。去年双师课堂比较火,但双师课堂在技术上来说跟1V1和小班教学是一个类型的,实际上它是两路流,在技术上来讲并非一个新技术。我讲的是云端技术,并非硬件,硬件确定要搭不少东西。缓存
简单来说,教师端将音视频能力快速推到各个地方的学生,容许一路学生把本身的视频流跟老师进行互动,这就是简单的1V1教学。若是是小班教学和双师课堂,教师也须要看到全部学生的视频流,这就是腾讯云如今所提供的能力。咱们举个案例,不少人须要有课件,系统须要把课件分享到各个端,将PPT转成图片进行分享。这些原型完了以后,腾讯云主要提供的是三个能力,实时音视频互动能力、白板文档能力和消息的能力。除了这三个以外,还须要回放,就是将一节课的内容记录下了,录成一个MP4或者其余的音视频类型,后期学习、评估。除了这三个大方向以外,还涉及到技术点有不少,包括白板、存储、直播、混流、录制等能力,咱们把这些能力抽出来,给客户提供一个完整的解决方案。服务器
音视频这块,作在线教育,确定是但愿将教师讲课的内容迅速推到各个端,因此音视频互动的能力是最重要的。简单来讲,老师端经过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配置页面,好比你要配置它的码率、分辨率、帧率,均可以控制。这就是实时音视频的解决方案。
小程序这块音视频技术咱们自然支持,小程序在腾讯云内部走的协议是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整合了好几个能力,这是音视频能力、消息能力、白板能力和文档转码能力,蓝色部分是咱们提供的。绿色的是如今要去解决的,首先要看怎么拿到钥匙,而后是课堂管理。咱们实际上是无论课堂的,咱们只有一个小群组,咱们不维护课堂。而后布局、登陆等等,这样事情要作。
获取更多详细资料,请戳如下连接:
互动课堂的搭建实例及相关领域应用-郭卓惺.pdf
问答
如何选择移动直播和互动直播?
相关阅读
周锦民:腾讯在线教育视频互动直播间技术实践
刘连响:小程序实时音视频在互动场景下的应用
杨婷:腾讯云在线教育解决方案分享
此文已由做者受权腾讯云+社区发布,原文连接:https://cloud.tencent.com/dev...
欢迎你们前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~