阐述基于HTML5的用户视频播放行为抓取

2020-09-29 07:54王一名张至柔赵鸿至吴娟
科学与信息化 2020年25期
关键词:时间轴大数据

王一名 张至柔 赵鸿至 吴娟

摘 要 由于疫情影响了各大高校正常开学与授课,网络教学成为当下主要的教学方式。针对当前网络视频存在老师与学生之间交互性、实时性、反馈客观性等方面的缺陷,提出一种基于视频时间轴的用户播放行为监测HTML5播放器,实现了对学生观看视频全过程的行为监控、记录和反馈,客观地分析出该视频的重难点所在、学生的掌握情况等信息,用于辅助教学双方。

关键词 大数据;网络教学播放器;时间轴;用户行为抓取及反馈;HTML5应用

引言

随着计算机的普及和社交网络的发展,教学不再拘泥于传统的教学模式。MOOC、网易云课堂、雨课堂等网络教学平台网络的网络授课模式也逐渐完善,再加之网络教学平台不断地和高校开展合作,萌生了许多优质课程[1]。

当前由于新型冠状病毒疫情的影响,很多高校都取消开学,老师和学生们难以像之前一般采用传统课堂的方式教学。因此,网络教学成为当下主要的教学方式。但网络教学相比传统教学有一些不足之处:网络授课导航系统不强,学生难以集中于线上课堂;网络授课缺少评价与反馈,学生难以及时了解课程重点,老师难以及时把握学生学习情况[2]。因此,本文针对学生希望快速了解课程重点和老师希望快速把握学生学习情况这两个愿望出发,利用HTML5制作播放器,用hadoop大数据框架处理数据,来解决这些问题。

抓取用户行为的播放器设计,在国内外互联网媒体上已经有了许多实现方案。同时国外部分媒体上也有使用此功能。但是在网络教学平台上,尚未利用这一方案。并且实现该方案的技术并不统一,很多方案未能充分使用到云计算。

基于以上问题,我们分析了各个平台使用该技术的案例,在此基础上提出了一种适用于网络教学平台的播放器解决方案。图1为方案实现的整体流程图。

1程序和算法设计

1.1 前端获取用户行为

(1)播放器

使用Spring-mvc架构[3],运用HTML+CSS+JavaScript自定义HTML播放器。主要功能是获取用户行为数据和将用户行为分析数据展示在进度条上。

(2)获取用户行为

使用JavaScript调用HTML Video播放器的HTML DOM API[4-5],从而提取当前页面的url、用户id、用户上一次拖动进度条结束时刻(本片段播放开始时刻)startTime、本次拖动进度条开始时刻(本片段播放结束时刻)endTime、当前视频长度length和当前视频播放速率speed。再使用Ajax给服务器发送记录用户行为数据的请求。实现方法如图2所示。

1.2 MVC设计及控制器Servlet转发

基于MVC设计的思想。我们将项目分为三个模块,如图3所示。其中作为控制器的Servlet在接受记录用户行为数据的请求后,将其发送的JSON文件转成文本格式写入磁盘。

1.3 多线程处理大并发数据

考虑到大量用户同时观看视频、提交用户行为数据的情况下,大并发大批量数据传入服务器,可能会发生内存溢出,导致服务器宕机和大量数据丢失。在转发过程中采用多线程池处理,设置线程池大小,这样就可避免这一问题。

本项目采用的线程池空间如下:

线程数: [6]

其中:为计算机处理器数目,为请求的等待时间,为请求的服务时间

1.4 服务器与Hadoop文件系统HDFS通信

以文本格式保存的记录用户行为数据写入磁盘后通过调用Hadoop的API方法[7]: FileSystem.copyFromLocalFile(Path src, Path dst) 方法来将数据上传至HDFS,随后删除本地文件以保证磁盘空间。相反地,将HDFS中的文件下载到本地磁盘中则调用FileSystem.copyToLocalFile(Path src, Path dst)方法。

1.5 MapReduce程序

为了定时在闲时进行计算,处理未计算数据,我们通过使用定时调用的daemon程序对存入HDFS的原始用户行为数据进行计算。

同时为了保存原始数据另作数据分析,我们采用了二重MapReduce程序串联的方式。第一重用于排序原始数据,第二重用于数据计算获得统计结果,如下图所示。

二重MapReduce程序工作过程如下:

(1)第一重:快速排序保存原始数据

因为MapReduce的shuffle过程中默认即为字典排序,所以仅需对原始数据进行一重MapReduce即可得到以url为key值按照字典顺序进行快速排序后的原始数据集。随后将Reduce输出结果在本地磁盘中保存备份。

(2)第二重:计算进度条高度矩阵

将第一重Reduce在HDFS中的输出结果作为第二重MapReduce程序的输入对该数据进行累加计算:

上式为任一视频中进度条矩阵计算式,其中speed为视频播放倍速,startTime和endTime分别为上一次拖动结束时刻和该次视频拖动开始时刻,startTime到endTime的時间跨度即为在两次拖动进度条之间用户以speed速度播放视频的时间,对其进行累加即可得到在任一秒中用户观看频率的权重。累加完成后,在MapReduce中以视频的url为key,以进度条矩阵为最终返回值value,则可以确保任一url的所有数据均在一个节点的Reduce程序中进行运行计算。每个url为key的返回值value即对应着进度条高度矩阵。该矩阵表征了用户观看视频中每秒视频权重的分布。最终将url和所对应的进度条高度矩阵作为结果输出保存在HDFS中用于响应前端请求,将进度条高度矩阵转化为用户观看曲线显示在播放器中。

猜你喜欢
时间轴大数据
此刻即是新掬之水
就地取材制作个性化PPT时间轴
轻松实现PPT图片局部放大
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索
基于时间轴的媒体数据编辑专利技术综述
时间轴说明16种英语时态(下)
时间轴说明16种英语时态(上)