演讲 / 彭晓虹

整理 / 小极狗

 

本文整理自即构科技在线教育负责人彭晓虹在极光在线教育专场沙龙上的演讲分享。

 

2017年,即构正式开始服务教育类客户,其中不少是跨国小班的教育场景。在与好未来的合作中,即构成功助力好未来实现20人实时互动跨国小班课堂。如今,经过一年多的市场检验,即构的教育方案已经赢得了众多客户的信任和支持。以下为彭晓虹的演讲分享。

 

 

大家好,我是来自即构科技的Nikita彭晓虹,今天演讲的主题是即构20人跨国小班课堂的探索实践。

 

在开始之前,首先说一下为什么要给大家介绍跨国小班课堂。

 

● 第一是市场需求。从即构接触的客户来看,在线教育的全球化趋势非常明显,咨询跨国业务的客户数量明显增多,老师的来源也是遍布全球。另外,在线教育也从传统一对一教学延伸出更多的班型,类似一对四、一对六等。目前即构服务的最大班型是中美的一对二十跨国小班课堂。此外,在线教育课程变得多样化,艺术类培训教学也趋于流行。

 

● 第二个是基于跨国小班课堂给大家介绍相关的实时音视频知识。诚然教育从线下转向线上已经取得战略性突破,不少线下运营多年的教育企业也开始拓展线上教育业务,这些企业大多有着丰富的教学培训经验,但是我们在接触过程中发现他们对实时音视频的基础知识了解甚少。

 

基于这两点,今天我将先从一个简单的音视频模型入手,给大家分享一些在线教育中的实时音视频知识,包括什么因素限制了跨国班型人数、上课的视频效果由哪些因素决定

 

此外,我还将重点介绍即构在跨国小班场景下的一些技术优化,包括如何保证差机型的上课效果、跨国网络的处理策略、如何实现国内外的互通低延迟

 

从一个简单的实时音视频模型说起

 

 

上图是一个简单的实时音视频模型。在这个模型有三个角色:老师、学生、即构云服务。即构的云服务是一个集群,包括信令服务、媒体服务和调度服务。信令服务可以简单理解为房间管理,媒体服务对应的是实时音视频服务,而调度服务是指对用户的网络调度。

 

在一对一班型中,老师先进入房间,将自己的视频流推到服务器后,信令服务器会获知老师进入房间的信息。当学生B进入房间时,信令服务器会通知学生B端对老师的视频进行拉流,另外学生B会将自己的视频流推至服务器。在学生B将自己的视频流传至服务器后,信令服务器会通知老师端拉取学生B的视频流。这是一个最为简单的实时音视频模型。

 

假设是一对二的班型,学生C进入房间后进行推流,信令服务器会获知学生C进入房间的信息。接着信令服务器会通知学生C从服务器拉取老师和学生B的视频流,同时通知老师和学生B端拉取学生C的视频流,这样他们就能相互看到对方并进行实时语音视频交流。

 

从这个模型可以看出,即构的音视频方案中房间管理和媒体服务是完全分开的,这和传统的实时音视频是不一样的。例如当我们新增一个监课老师的角色,主要负责在教学过程中监控学生和老师课堂的情况。使用这样的方案,监课老师不需要在房间里,也仍然可以去拉老师和学生的视频流,只需要健全拉流机制,并不需要他进入房间。这个是基于推拉流和房间管理是两套业务的前提下,能够实现的具体业务场景。

 

当前,即构为在线教育的客户提供两套方案,第一是房间管理和媒体服务都由即构提供,第二是即构只提供媒体服务,由客户自己负责实现房间管理。客户可以根据自己的业务场景进行选择。在信令服务和媒体服务业务逻辑分开的前提下,理论上用户是没有人数限制的。但实际上这需要依赖房间管理对每个用户的同步策略,换句话说,如果信令服务做的不好,有可能出现当新的同学进入房间后看不到其他人的情况。如果客户选择第二套方案,就要求房间管理必须要保证实时性,保证每一个进房间的人都能看到别人的视频,这样客户实现的信令服务才能很好地和即构的媒体服务适配。

 

什么因素限制了跨国班型人数

 

传统的教育一般以班级为教学单位,从线下教育转为线上教育时,大家会关心线上的“班级”最多能容纳多少人。传统的教育一般是以大班教学为主,理论上来说转为线上教育时是没有人数的限制,但是这里给大家介绍的跨国小班,与传统的大班教学不同。小班教学追求的是实时性,老师和学生、学生和学生之间是一个实时的对话,会有一定的人数限制。数限制主要受两大因素影响:一个是硬件性能,另一个是网络带宽。 

 

 

在用户端,视频直播主要包含以下几个环节:采集、前处理、编码、推流、拉流、解码、渲染,这些环节都会对硬件造成压力。在推流到服务器前,硬件需要支持视频流的采集、前处理和编码。在拉流后,硬件需要对视频流进行解码和渲染播放。

 

随着互动人数的增加,硬件解码和渲染的压力也会随之增大。例如,一个10人互动小班,每个硬件终端需要推1路流,拉9路流,这会给硬件带来不小的压力。除此之外,随着拉流路数的增加,用户端带宽是否能够足够支撑也是一大制约因素。

 

总的来说,真正限制班型人数的,并不是音视频架构,而在于硬件和网络。目前,即构的音视频方案,在PC端最多的支持32人,在移动端支持20人。

 

上课的视频效果由什么决定

 

 

视频的效果主要由三个参数决定,分别是分辨率、码率和帧率。

 

 第一个是分辨率,分辨率越大,对码率和带宽的要求就越高。一般来说,带宽分为上行带宽和下行带宽,大部分情况下,下行带宽往往是上行带宽的十倍。普通情况下,由于下行带宽足够大,所以观看直播是没有问题的,但是如果需要实时互动,也就是需要将视频流推到服务器的时候,就会受到上行带宽的影响。

 

 第二个是帧率,帧率是指一秒钟有多少个画面,帧率越大,视频越流畅。一般来说,在人眼感知范围中,24帧已经能达到比较流畅的视频效果。我们在电影院看到的电影一般是24帧,而在游戏中,由于追求角色动作的流畅性,帧率高达60帧。而在视频直播中,一般采用15帧。

 

 第三个是码率,简单理解码率就是分辨率和帧率的乘积,具体来说,码率就是每秒钟编码器所能够输出的数据包。码率和上行带宽直接相关,一般情况下,720P的视频需要1.5兆的上行带宽,一般用在直播、社交场景中;在教育场景中一般采用360P,大概需要600kbps的上行带宽。

 

如何保证差机型的上课效果

 

在线教育中的硬件除了常规理解的电脑、手机、Ipad外,还包括一些定制化的硬件,比如智能小机器人、VR眼镜等。不同型号的硬件,性能也是天差地别。这里主要分享一下即构是如何针对差机型做一些处理从而保证上课效果的,主要从技术和用户体验两个方面来讲。

 

 技术上

 

第一个是硬编硬解。硬编硬解是使用GPU,可以减少对CPU的占用。软编软解的优点是兼容性好,因为软编软解是使用CPU进行处理,所以在大部分手机和电脑上都是没有问题的,缺点就是会和其他的进程抢占资源。

 

第二个是在服务端混流。随着人数的增加,每个用户拉取的视频流数量也会相应增加,这对于硬件压力较大,这个时候可以选择在服务端进行混流。即在服务器上将需要拉取的多个视频流混合成一个视频流,这样用户只需要拉取一个视频流即可,这样硬件的压力将会大大减少。混流的效果是比较好的,因为在混流时已经做好了每一个用户的音画同步。

 

第三个是分层编码。简单来说就是在用户推流时,编码器产生包含一个或多个可以单独解码的子码流推到服务器,子码流可以具有不同的码率,帧率和分辨率;用户拉流时,服务器根据用户带宽,将不同子码流分发给不同的用户。

 

如果前面三种方案都没有办法处理,还有最后一个有损服务。有损服务是指在保证声音、画面是连续流畅的情况下,在完整视频流中减少一些视频帧数,从而降低对硬件的压力。

 

 用户体验上

 

第一是布局和交互上的优化策。在一对十二的跨国小班课程中,十二个学生是否需要同时可见,有几种可选方案。第一就是同时可见,也就是十二个学生同时可见;第二是分批可见,具体是六个学生可见,后面再切换另外六个同学可见;第三是上台可见,在学生上台的时候,放大其分辨率,其他时候处于小分辨率。类似的布局和交互策略,都可以根据具体场景进行调整。

 

第二是平衡性能占比。在线教育的场景中,除了老师上课外,还有PPT的演示和白板功能,这个时候需要平衡这几个功能的占比。在课堂教学中,音视频互动是主要的部分,在保证课件使用良好的情况下,降低课件对性能的占用。这个也是需要根据具体的应用场景进行调整。

 

跨国网络的处理策略

 

在跨国小班课程中,网络是一个重要的考量因素。在网络的处理策略上,主要有两个方案,第一是专线,第二是协议。

 

第一是专线,如果需要保证网络,专线是延迟和稳定性都比较好的方案,但是价格高,每个月一兆大概就需要一万元。而课程的价格远不能负荷这么高昂的专线费用,或者可以说不适合在线教育行业使用。目前即构不用专线,延迟虽然大一点,但是只要在毫秒级别,都不会影响互动效果,当然客户愿意用专线更好。

 

第二是协议,在不使用专线的情况下,基于普通的网络即构使用的是基于UDP的私有协议,在丢包率达到50%的情况下,依然能够保证比较流畅的视频效果。 

 

如何实现国内外互通低延迟

 

 

在跨国小班课堂中,如何实现国内外互通低延迟是技术难点,主要通过信令服务和媒体服务的优化实现互通的低延迟。在媒体服务中,即构基于公有云去铺设国内外媒体数据路径,使之可以支持流媒体的中转续传。而在信令服务中,主要通过构建国内外信令数据通道实现信令数据加速。

 

 

从技术上看,即构主要通过五个方法实现国内外互通低延迟:

 

第一是负载均衡。即让服务器的每一个节点都承担相对均匀的服务,不至于使得某一个节点负载过高造成一些丢包,造成网络往返时的增大,这样对任何的网络损伤来讲,对实时音视频都会造成比较大的延迟增加。

 

第二是就近接入。这里的“近”并不是指地域上的近,而是“网络上的近”。很简单的例子,我们在深圳做推流,香港离得很近,可以推到香港的服务器,但实际上这毕竟是一个跨域的网络,有不稳定的因素在里面,所以我们宁愿推远一点。这个近指的应该是在网络质量评估意义上的近,例如网络往返时很小、往返时很平稳、分布在延迟比较大的时刻不会还具有很大的概率,丢包率很低等。

 

第三是质量评估。要做到就近接入,这个近要有一个很好的质量评估体系。质量评估方法有两种:

 

1)事后质量评估。在复盘的时候,例如这个网络平稳运行了一个月,复盘看一下整个月中的质量怎么样,这样的质量评估可以认为是一个相对离线的评估,它能够给我们提供一个指标,最近一个月的网络和上个月相比是否有所改善。我们可以从中学习到一些经验,例如这个月和上个月的调度上有些策略上的不同。这是一个系统化的经验总结和优化的方法。

 

2)实时质量评估。更重要的应该是一个实时上的评估,例如我现在推流,能够实时监控到当前的质量是怎么样的,就可以做到实时动态路由。

 

第四是动态路由。动态路由是说某个人推流从北京推到迪拜,有很多链路可以选,他可能根据之前的一些经验,假如他之前经验告诉你,直接推到迪拜,这个链路是很好的,但是毕竟有个例。有了实时的质量评估,就知道这个时候推迪拜是否好,如果不好,可以在用户无感知的情况下更换,随时增减整个链路中一些路由的节点。

 

第五是算法流控。实际情况中是结合前面这4个点,在我们的网络和服务器资源集中,去选出质量最优或者近似最优的链路来保证实时音视频的服务。但是资源集是有限的,没有人可以保证你的资源集中一定可以选出最优链路。保证不了就要通过一些算法才能弥补。这些算法包括在一个不可靠的网络中怎么样进行可靠的音视频传输的技术,也包括整个链路的一些拥塞控制。

 

以上就是我今天的全部分享,如果大家对在线教育场景还有疑问,欢迎大家评论留言,谢谢大家!

Logo

致力于链接即构和开发者,提供实时互动和元宇宙领域的前沿洞察、技术分享和丰富的开发者活动,共建实时互动世界。

更多推荐