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

小程序这块音视频技术我们天然支持,小程序在腾讯云内部走的协议是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,转码服务。

学生注意力检测

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

快速上手

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzpfj.html