媒资管理(接上一篇)

30
五月
2021

一、视频处理
原始视频需要经过编码处理,生成m3u8和ts文件方可基于HLS协议播放视频。
用户上传原始视频,系统需要自动处理成标准格式,系统对用户上传的视频自动编码、转换,最终生成m3u8文件和ts文件,处理流程如下:
1、用户上传视频成功
2、系统对上传成功的视频自动开始编码处理
3、用户查看视频处理结果,没有处理成功的视频用户可在管理界面再次触发处理
4、视频处理完成将视频地址及处理结果保存到数据库
视频处理流程如下:
在这里插入图片描述
视频处理进程的任务是接收视频处理消息进行视频处理,业务流程如下: 1、监听MQ,接收视频处理消息。 2、进行视频处理。 3、向数据库写入视频处理结果。

这里完全可以不用MQ。。。直接在上传文件的接口里增加视频处理的代码即可。

视频处理技术方案
如何通过程序进行视频处理?
ffmpeg是一个可行的视频处理程序,可以通过Java调用ffmpeg.exe完成视频处理。
在java中可以使用Runtime类和Process Builder类两种方式来执行外部程序,工作中至少掌握一种。
本项目使用Process Builder的方式来调用ffmpeg完成视频处理。(代码见讲义,封装成工具类)

二、我的媒资
通过我的媒资可以查询本教育机构拥有的媒资文件,进行文件处理、删除文件、修改文件信息等操作,具体需求如下:
1、分页查询我的媒资文件
2、删除媒资文件
3、处理媒资文件
4、修改媒资文件信息
在这里插入图片描述

三、媒资与课程计划关联
到目前为止,媒资管理已完成文件上传、视频处理、我的媒资功能等基本功能。其它模块已可以使用媒资管理功能,本节要讲解课程计划在编辑时如何选择媒资文件。
用户进入课程计划页面,选择视频,将课程计划与视频信息保存在课程管理数据库中。
操作的业务流程如下:
1、进入课程计划,点击”选择视频“,打开我的媒资查询页面
2、为课程计划选择对应的视频,选择“选择”
在这里插入图片描述
3、 前端请求课程管理服务保存课程计划与视频信息。
在课程管理数据库创建表 teachplan_media 存储课程计划与媒资关联信息,如下:
在这里插入图片描述

保存视频信息接口
此接口作为前端请求课程管理服务保存课程计划与视频信息的接口:

@ApiOperation("保存媒资信息") 
public ResponseResult savemedia(TeachplanMedia teachplanMedia);

具体业务实现时注意:1、向叶子结点课程计划保存媒资信息 操作结果:保存成功; 2、向非叶子结点课程计划保存媒资信息 操作结果:保存失败。

查询视频信息
课程计划的视频信息保存后在页面无法查看,本节解决课程计划页面显示相关联的媒资信息。
解决方案: 在获取课程计划树结点信息时将关联的媒资信息一并查询,并在前端显示,下图说明了课程计划显示的区域。
在这里插入图片描述

四、媒资管理系统集成
到目前为止,我们已可以编辑课程计划信息并上传课程视频,下一步我们要实现在线学习页面动态读取章节对应的视频并进行播放。在线学习页面所需要的信息有两类:一类是课程计划信息、一类是课程学习信息(视频地址、学习进度等),如下图:
在这里插入图片描述
在线学习集成媒资管理的需求如下: 1、在线学习页面显示课程计划  2、点击课程计划播放该课程计划对应的视频

课程计划信息存储在数据库中,查库显示在前端。
用户进入在线学习页面,点击课程计划将播放该课程计划对应的教学视频。业务流程如下:
1、用户进入在线学习页面,页面请求搜索服务获取课程信息(包括课程计划信息)并且在页面展示。
2、在线学习请求学习服务获取视频播放地址。
3、学习服务校验当前用户是否有权限学习,如果没有权限学习则提示用户。
4、学习服务校验通过,请求数据库获取课程媒资信息。

创建学习服务工程xc‐service‐learning。
在线学习接口
创建xc_learning数据库,学习数据库将记录学生的选课信息、学习信息。
定义接口,学习服务根据传入课程ID、章节Id(课程计划ID)来取学习地址(媒资文件播放地址)。

@Api(value = "录播课程学习管理",description = "录播课程学习管理") 
public interface CourseLearningControllerApi { 
	@ApiOperation("获取课程学习地址") 
	public GetMediaResult getmedia(String courseId,String teachplanId); 
}

返回值包含了媒资文件播放地址。

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员