折波 王强 董凡 覃遵颖 李国栋
摘 要:针对新冠肺炎疫情期间高校对在线教学直播的需求,为了给师生提供高质量的在线教学平台,西安交通大学依托现有智慧教室以及校园网优势,探索研究建立了一套在线教学直播平台。平台按照模块划分为视频流采集存储、视频流分发以及视频流直播模块。视频流采集存储模块中通过使用标准RTSP协议采集教室3路视频流并通过存储算法将视频存储到高性能HDFS分布式存储系统中,视频流分发模块使用视频流故障检测技术、网络专线保障视频流不间断分发到云直播平台,视频流直播模块将RTMP流转换为HLS使用自主设计的直播平台观看播放保障直播的效果、安全性以及用户使用的便捷性。教学直播平台自学校开展线上教学开始稳定运行,目前可以保障学校100余门课程的在线教学。
关键词:在线教学直播;智慧教室;视频流;RTMP
中图分类号:TP393.1 文献标志码:B 文章编号:1673-8454(2020)19-0074-04
一、引言
2020年伊始,一场突如其来的新型冠状病毒疫情改变了人们的生活方式,也让传统课堂教学模式快速切换到在线教学模式,针对新型冠状病毒感染肺炎疫情对高校正常开学和课堂教学造成的影响,教育部也印发了《关于在疫情防控期间做好普通高等学校在线教学组织与管理工作的指导意见》[1],要求采取政府主導、高校主体、社会参与的方式,共同实施并保障高校在疫情防控期间的在线教学,实现“停课不停教、停课不停学”。
持续不退的疫情使得全国各大中小院校不得不选择在线教学的方式。在这种超大规模用户群体同时需要在线教学的背景下,为保障疫情防控期间学校教学任务的顺利开展,保障教学进度和质量,技术设备以及网络平台的选择对各高校来说都是非常严峻的挑战。西安交通大学充分利用现有的教学平台(思源学堂、思源学习空间)以及互联网主流的在线教学平台(雨课堂、智慧树、钉钉、爱课堂、腾讯会议、ZOOM等)保障全校5万余名师生的在线教育教学。由于疫情期间大规模的教学需求和人员访问,互联网主流的在线教学平台如雨课堂、爱课堂等都不堪重负,不能给用户提供很好的使用体验,影响教学质量。
为了给学校师生在疫情期间提供高质量的在线教学平台,西安交通大学依托现有智慧教室以及校园网优势,探索研究建立了一套在线教学直播平台,在线教学平台使用了多路负载、分布式存储、流分发不间断检测、网络专线保障、云直播平台资源保障等多项措施为用户提供720P的直播观看体验。
二、在线教学直播平台建设
西安交通大学现已建成700间智慧教室。智慧教室安装有视频采集设备,包括教师摄像头、学生摄像头以及VGA采集盒(PPT采集),智慧教室中的每间教室配备24口交换机千兆以太网上联到楼宇汇聚设备,楼宇汇聚设备万兆上联到校园网核心设备,智慧教室网络链路带宽具备很强的扩展性和丰富的冗余性。本论文研究建设的在线教学直播平台就是充分利用了现有已经建成的智慧教室中的硬件设备和网络冗余带宽,平台的总体架构模块划分如图1所示。平台按照模块划分为3个模块,分别为视频流采集存储模块、视频流分发模块以及视频流直播模块。视频流采集存储模块通过多台流媒体服务器使用RTSP协议采集教室摄像头以及VGA采集盒的标准H.264高清视频流,采集的高清视频流通过存储算法存储到指定的高性能HDFS分布式存储系统中;视频流分发模块是通过多台流媒体服务器将采集到的视频流分发到云直播平台,使用视频流故障检测方案、网络专线充分保障流分发过程的不间断;视频流直播模块是为了保障视频直播的观看效果,通过借助社会资源使用商业云直播平台强大的转码能力将RMTP流转换为HLS流,通过自建视频直播平台播放HLS流视频直播,支持用户自主选择切换3路720P高清视频流直播观看。
1.视频流采集存储模块
视频流采集存储模块需要对教室中的教师摄像头、学生摄像头以及VGA采集盒三路视频流进行采集,使用标准的RSTP协议[2],平台需要对全校700间智慧教室2100路高清视频流进行采集存储,在视频流采集方面需要使用多台服务器进行多线程采集,在视频流存储方面需要设计高性能、大容量、可扩展的分布式存储系统以满足对海量视频资源的存储要求。
西安交通大学现有智慧教室中视频流采集设备输出的视频流为2Mbps,每间教室每个小时可产生2Mbps*3*3600/(8*1024)=2.6GB数据,按照现有疫情期间每天开设约500门次课程计算,每天可产生的数据量为2.6GB*2*600=3.05TB。按照学校要求,教室视频保存半年,传统的NAS存储无论性能还是容量都无法满足要求,平台使用了基于Hadoop的分布式文件存储系统HDFS,HDFS高容错性能够满足数据存储安全的需求,高吞吐量的数据访问满足平台的高存储性能写入需求,同时可以使用廉价的普通服务器进行部署,大大降低了平台的存储成本。
平台所使用的基于Hadoop的分布式文件存储系统HDFS采用Hortonworks的开源数据平台搭建[3-5],Hadoop平台部署有HDFS、YARN、Mapreduce2、HBase、Zookeeper、Spark2、Ambari等组件。平台使用了15台服务器,每台服务器安装有2块500GB SAS盘做raid1作为系统盘,安装有16块6TB的SATA盘作为数据盘,平台总的存储容量在1.2PB。
视频流采集服务器使用了开源的FFmepg软件,FFmpeg[6-7]是一个开源跨平台的可以用来记录、转换数字音频和视频,并能将其转化为流的开源软件,FFmpeg支持多线程、多进程。为了保障视频流采集存储的稳定性、可靠性、安全性,平台采用了多台服务器对智慧教室进行分区采集存储,每台服务器只针对固定数量的教室进行采集存储,针对单间教室视频流采集存储的系统架构如图2所示。为了避免小数据量的大量写入造成HDFS分布式存储的低性能,系统使用捕获线程将教室的三路视频流采集存储到本地高性能SSD存储磁盘中,系统设定一小时生成一个视频文件,在视频文件生成后使用存储线程将视频文件一次性写入到后端的HDFS分布式存储中。
2.视频流分发模块
视频流分发模块通过多台流媒体服务器将采集到的视频流分发到商业云直播平台,使用网络专线、视频流检测技术充分保障流分发过程的不间断。为了保障视频流分发和直播效果,西安交通大学选择了电信“天翼云商务直播”和移动“和商务直播”,针对“电信天翼云商务直播”和移动“和商务直播”平台,在对视频流分发的过程中分别使用校内电信专线和移动专线进行分发,保障网络推流带宽。在实际对视频流分发的过程中,会出现由于教室摄像头或者VGA采集盒故障导致流采集失败或者云直播平台直播间故障导致流分发异常,直播出现异常产生教学事故,因此平台设计了一套视频流故障检测方案来保障流分发的正常以及教室直播出现异常后及时发现处理。
视频流检测方案包括了对视频流推送和视频流存储两部分视频流故障检测。视频流推送故障检测需要保障教室直播的正常进行,在教室设备或者云直播平台出现故障后及时发现处理并且恢复直播。单台服务器视频流推送故障检测处理流程如图3所示。平台每天按照上课时间设定固定时间启动教室视频流推送,将所有上课教室的视频流推送到云直播平台对应的直播间,同时启动视频流推送监控线程,监控线程逐间教室获取一间教室信息,判断该教室流推送是否正常,如果该教室视频流推送正常,那么判断所有教室是否检测完成;如果该教室视频流推送异常,那么重新推送该教室视频流,判断视频流推送是否成功,如果流推送失败,那么报告教室推送流错误信息,通知教室维护人员处理教室直播故障问题,如果推送成功,那么转到正常处理流程判断所有教室是否检测完成;所有教室如果检测完成,那么线程Sleep 10秒钟,如果教室没有检测完成,那么获取下一间教室的教室信息,继续进行教室流推送检测,直到所有教室检测完成。所有教室检测完成后判断当天直播课程是否全部结束,如果全部结束,那么结束视频流推送监控线程并关闭教室流推送,如果没有全部结束,那么继续逐间检测所有直播教室流推送。
视频流存储故障检测需要保障了教学视频存储的完整性,在教室设备或者云直播平台出现故障后及时发现处理后保持正常的视频存储,不出现丢视频的情况。视频流存储根据教学时间以每小时为单位对视频流进行存储,2小时即为一节课程,单台服务器单个小时内视频流存储故障检测处理流程如图4所示。平台每天按照上课时间设定固定时间启动教室视频流存储,设定每个教室流存储运行1个小时,同时启动视频流存储监控線程,监控线程逐间教室获取一间教室信息,判断该教室流存储是否正常,如果该教室视频流存储正常,那么判断所有教室是否检测完成;如果该教室视频流存储异常,那么首先计算该教室在当前时间节点距离本小时结束的剩余时间,然后重新设定参数(包括视频流存储时间、文件名等),重新启动教室视频流存储,由于出现故障的教室最终存储的视频流是多个文件,因此需要教室维护人员记录好故障教室以及故障时间,方便后期对该教室故障时间点的存储视频数据进行拼接处理,判断视频流存储是否成功,如果流存储失败,那么报告教室视频流存储错误信息,通知教室维护人员处理教室直播存储故障问题,如果流存储成功,那么转到正常处理流程判断所有教室是否检测完成;所有教室如果检测完成,那么线程Sleep 10秒钟,如果教室没有检测完成,那么获取下一间教室的教室信息,继续进行教室流存储检测,直到所有教室检测完成。所有教室检测完成后判断本小时流存储过程是否完成,如果完成那么结束视频流存储监控线程并关闭教室流存储,如果没有完成,那么继续逐间检测所有直播教室流存储。视频流存储以每小时为单位运行,直到每天所有教室课程结束。
3.视频流直播模块
视频流直播模块是通过直播平台实现支持视频流手机电脑以及多浏览器兼容进行观看,西安交通大学在疫情期间借助社会资源选择了电信“天翼云商务直播”和“移动和商务直播”平台。由于每间教室有3路视频流,每路视频流为2Mbps,为了保障教室直播授课的效果,需要在同一堂课对3路视频流同时进行播放,不管是电信“天翼云商务直播”还是移动“和商务直播”平台都不能满足这种需求。另外,3路视频流如果使用RTMP进行播放需要6Mbps的码流,对直播平台和用户自身的网络环境都是极大的挑战,尤其是疫情期间全国大中小学校都使用在线教学,各大运营商主干线路都满载的情况下。视频流直播模块最终对RTMP视频流转码为HLS流进行播放,HLS工作原理是切片式传输,把直播流切成无数片,用户在观看视频时,每次客户端可以只下载一部分,然后这部分在播放时从许多不同的备用源中下载其他资源,因此HLS协议可以任由用户的意愿选择不同的码率,能够大大降低直播平台网络负载以及保障在用户网络环境一般情况下直播的正常观看。
为了保障视频直播的观看效果,视频流直播模块设计了视频直播观看平台,视频流借用云直播平台强大的转码能力将RMTP流转换为HLS流,然后通过视频直播观看平台播放HLS流进行视频直播。每间教室直播在一个页面同时播放3路视频流,平台支持用户自主选择切换3路视频流直播观看,另外视频直播观看平台对接了校内统一身份认证以及课表信息,用户通过个人账号信息登录平台后可以直接选择自己的课程进行观看,保障了平台的安全性以及用户使用的便捷性。
三、西安交通大学在线直播平台运行情况
西安交通大学在线直播平台自疫情期间学校开展线上教学以来一直稳定运行,目前已经保障了学校100余门课程、800余门次的视频直播和录播教学任务。图5所示为在线直播平台日常上课情况,教师上课方式与日常上课没有任何区别,学生都是通过网络进入到直播课程观看老师上课,学生在课程直播间中可以看到3路视频流,对3路视频流可以任意切换查看,老师上课无需维护人员值守,上课过程中出现任何硬件软件问题,会根据系统后台监控或者教师反馈由专门的教室技术保障人员及时处理,保障教学任务。
疫情持续不退,越来越多的课程将加入到在线直播平台,直播平台目前经测试已经可以满足全校在线教学课程的直播需求。图6所示为单台服务器(配置为40颗CPU、132G内存)使用移动网络专线(10Gbps)测试180间教室同时在线教学情况下网络流量图,测试从14∶30持续到17∶30,可以从流量图中看出专线出口出流量达到1000Mbps,持续测试没有出现断流现象,在线直播平台稳定运行。
四、结束语
为满足高校疫情期间“停课不停教、停课不停学”的教学要求,在全国大中小院校超大规模用户群体同时需要在线教学的背景下,西安交通大学依托现有智慧教室以及校园网优势,探索研究建立了一套在线教学直播平台。平台总体架构按照模块划分为视频流采集存储、视频流分发以及视频流直播模块,本文详细介绍了每个模块实现的原理和使用的技术。
参考文献:
[1]教高厅[2020]2号.教育部应对新型冠状病毒感染肺炎疫情工作领导小组办公室关于在疫情防控期间做好普通高等学校在线教学组织与管理工作的指导意见[Z].
[2]CHU Dian, JIANG Chun-hua, HAO Zong-bo, et al, "The Design and Implementation of Video Surveillance System Based on H.264, SIP, RTP/RTCP and RTSP," 2013 Sixth International Symposium on Computational Intelligence and Design, Hangzhou, 2013, pp. 39-43.
[3]李可,李昕.基于Hadoop生態集群管理系统Ambari的研究与分析[J].软件,2016,37(2):93-97.
[4]董新华,李瑞轩,周湾湾等.Hadoop系统性能优化与功能增强综述[J].计算机研究与发展,2013,50(S2):1-15.
[5]BHATHAL G S, DHIMAN A S, "Big Data Solution: Improvised Distributions Framework of Hadoop," 2018 Second International Conference on Intelligent Computing and Control Systems (ICICCS), Madurai, India, 2018, pp.35-38.
[6]LEI Xiao-hua, JIANG Xiu-hua, WANG Cai-hong, "Design and Implementation of a Real-Time Video Stream Analysis System Based on FFMPEG,"2013 Fourth World Congress on Software Engineering, Hong Kong, 2013, pp. 212-216.
[7]D. Radovi, M. upi, S. Stefanovi and D. Majstorovi?, "Internet radio player implementation using FFmpeg software support," 2017 International Conference on Smart Systems and Technologies(SST), Osijek, 2017, pp. 259-262.
(编辑:王晓明)