
day14 媒资管理
day14 媒资管理
feng_fly_28
这个作者很懒,什么都没留下…
展开
-
19-媒资与课程计划关联-查询视频信息
3.4 查询视频信息3.4.1 需求分析课程计划的视频信息保存后在页面无法查看,本节解决课程计划页面显示相关联的媒资信息。解决方案:在获取课程计划树结点信息时将关联的媒资信息一并查询,并在前端显示,下图说明了课程计划显示的区域。3.4.2 Dao修改课程计划查询的Dao:1、修改模型在课程计划结果信息中添加媒资信息@Data@ToStringpublic class TeachplanNode extends Teachplan {List<TeachplanNode>原创 2021-07-08 15:58:39 · 91 阅读 · 0 评论 -
18-媒资与课程计划关联-保存视频信息-前端开发
重启报错的话,关闭编辑器重启启动3.3.4 前端开发3.3.4.1 API方法定义api方法,调用课程管理服务保存媒资信息接口/*保存媒资信息*/export const savemedia = teachplanMedia => {return http.requestPost(apiUrl+'/course/savemedia',teachplanMedia);}3.3.4.2 API调用在课程视频方法中调用api:choosemedia(mediaId,fileOrig.原创 2021-07-08 15:12:39 · 74 阅读 · 0 评论 -
16-媒资与课程计划关联-保存视频信息-需求分析&Api定义++17-媒资与课程计划关联-保存视频信息-服务端开发
3.3 保存视频信息3.3.1 需求分析用户进入课程计划页面,选择视频,将课程计划与视频信息保存在课程管理数据库中。用户操作流程:1、进入课程计划,点击”选择视频“,打开我的媒资查询页面2、为课程计划选择对应的视频,选择“选择”3、前端请求课程管理服务保存课程计划与视频信息3.3.2 数据模型在课程管理数据库创建表 teachplan_media 存储课程计划与媒资关联信息,如下:创建teachplanMedia 模型类:@Data@ToString@Entity@Table(.原创 2021-07-08 14:57:13 · 89 阅读 · 0 评论 -
15-媒资与课程计划关联-选择视频
3.2 选择视频3.2.1 Vue父子组件通信上一章已实现了我的媒资页面,所以媒资查询窗口页面不需要再开发,将“我的媒资页面”作为一个组件在修改课程计划页面中引用,如下图:修改课程计划页面为父组件,我的媒资查询页面为子组件。问题1:我的媒资页面在选择媒资文件时不允许显示,比如“视频处理”按钮,该如何控制?这时就需要父组件(修改课程计划页面)向子组件(我的媒资页面)传入一个变量,使用此变量来控制当前是否进入选择媒资文件业务,从而控制哪些元素不显示,如下图:问题2:在我的媒资页面选择了媒原创 2021-07-08 11:53:09 · 76 阅读 · 0 评论 -
14-媒资与课程计划关联-需求分析
3 媒资与课程计划关联3.1需求分析到目前为止,媒资管理已完成文件上传、视频处理、我的媒资功能等基本功能。其它模块已可以使用媒资管理功能,本节要讲解课程计划在编辑时如何选择媒资文件。操作的业务流程如下:1、进入课程计划修改页面2、选择视频打开媒资文件查询窗口,找到该课程章节的视频,选择此视频点击“选择媒资文件”打开媒资文件列表3、 选择成功后,将在课程管理数据库保存课程计划对应在的课程视频地址。在课程管理数据库创建表 teachplan_media 存储课程计划与媒资关联信息,如下:原创 2021-07-07 17:23:33 · 82 阅读 · 0 评论 -
13-我的媒资-前端开发
2.4 前端开发2.4.1 API方法在media模块定义api方法如下:import http from './../../../base/api/public'import querystring from 'querystring'let sysConfig = require('@/../config/sysConfig')let apiUrl = sysConfig.xcApiUrlPre;/*页面列表*/export const media_list = (page,size,p原创 2021-07-07 17:18:49 · 120 阅读 · 0 评论 -
12-我的媒资-服务端开发
2.3 服务端开发2.3.1 Dao@Repositorypublic interface MediaFileDao extends MongoRepository<MediaFile,String> {}2.3.2 Service定义findList方法实现媒资文件查询列表。@Servicepublic class MediaFileService {private static Logger logger = LoggerFactory.getLogger(MediaF原创 2021-06-30 17:42:13 · 84 阅读 · 0 评论 -
11-我的媒资-需求分析&Api定义
2 我的媒资2.1 需求分析通过我的媒资可以查询本教育机构拥有的媒资文件,进行文件处理、删除文件、修改文件信息等操作,具体需求如下:1、分页查询我的媒资文件2、删除媒资文件3、处理媒资文件4、修改媒资文件信息2.2 API本节讲解我的媒资文件分页查询、处理媒资文件,其它功能请学员自行实现。@Api(value = "媒体文件管理",description = "媒体文件管理接口",tags = {"媒体文件管理接口"})public interface MediaFileContr原创 2021-06-30 17:21:01 · 92 阅读 · 0 评论 -
10-视频处理-视频处理并发设置
303004:无需处理303001:处理中303003:处理失败303002:处理成功测试并发新上传视频1,processStatus=301001处理中等几秒变为,processStatus=301002 处理成功然后再上传视频2,processStatus=301001 等待处理所以我们发现并发(同时)上传2个视频时候,发现它处理的方式是单线程,这样效率很低,所以我们将他改为多线程不会同时出现处理中状态1.5 视频处理并发设置代码中使用@RabbitListener注解指定原创 2021-06-30 17:06:18 · 581 阅读 · 1 评论 -
09-视频处理-视频处理测试
1.4 视频处理测试测试流程:1、上传avi文件2、观察日志是否发送消息3、观察视频处理进程是否接收到消息进行处理4、观察mp4文件是否生成5、观察m3u8及 ts文件是否生成1.5 视频处理并发设置代码中使用@RabbitListener注解指定消费方法,默认情况是单线程监听队列,可以观察当队列有多个任务时消费端每次只消费一个消息,单线程处理消息容易引起消息处理缓慢,消息堆积,不能最大利用硬件资源。可以配置mq的容器工厂参数,增加并发处理数量即可实现多线程处理监听队列,实现多线程处原创 2021-06-30 16:33:56 · 143 阅读 · 0 评论 -
08-视频处理-发送视频处理消息
1.3 发送视频处理消息当视频上传成功后向MQ 发送视频 处理消息。修改媒资管理服务的文件上传代码,当文件上传成功向MQ发送视频处理消息。1.3.1 RabbitMQ配置1、将media-processor工程下的RabbitmqConfig配置类拷贝到media工程下。2、在media工程下配置mq队列等信息修改application.ymlxc‐service‐manage‐media:mq:queue‐media‐video‐processor: queue_media_video_原创 2021-06-30 15:29:20 · 242 阅读 · 0 评论 -
07-视频处理-发送视频处理消息分析&更正FilePath
原创 2021-06-29 17:56:27 · 63 阅读 · 0 评论 -
04-视频处理-视频处理实现-业务流程分析
1.2.3 视频处理实现1.2.3.1确定消息格式MQ消息统一采用json格式,视频处理生产方会向MQ发送如下消息,视频处理消费方接收此消息后进行视频处理:{“mediaId”:XXX}1.2.3.2处理流程1)接收视频处理消息2)判断媒体文件是否需要处理(本视频处理程序目前只接收avi视频的处理)当前只有avi文件需要处理,其它文件需要更新处理状态为“无需处理”。3)处理前初始化处理状态为“未处理”4)处理失败需要在数据库记录处理日志,及处理状态为“处理失败”5)处理成功记录处理状原创 2021-06-29 17:31:09 · 319 阅读 · 0 评论 -
03-视频处理-视频处理技术方案
1.2.2 视频处理技术方案如何通过程序进行视频处理?ffmpeg是一个可行的视频处理程序,可以通过Java调用ffmpeg.exe完成视频处理。在java中可以使用Runtime类和Process Builder类两种方式来执行外部程序,工作中至少掌握一种。本项目使用Process Builder的方式来调用ffmpeg完成视频处理。关于Process Builder的测试如下: @Test public void testProcessBuilder() throws IOE原创 2021-06-29 16:52:56 · 644 阅读 · 0 评论 -
02-视频处理-视频处理工程创建
1.2 视频处理开发1.2.1 视频处理工程创建1、导入“资料”下的视频处理工程:xc-service-manage-media-processor2、RabbitMQ配置使用rabbitMQ的routing交换机模式,视频处理程序监听视频处理队列,如下图:RabbitMQ配置如下:@Configurationpublic class RabbitMQConfig {public static final String EX_MEDIA_PROCESSTASK = "ex_med原创 2021-06-29 16:06:25 · 86 阅读 · 0 评论 -
01-视频处理-需求分析
1 视频处理1.1需求分析原始视频通常需要经过编码处理,生成m3u8和ts文件方可基于HLS协议播放视频。通常用户上传原始视频,系统自动处理成标准格式,系统对用户上传的视频自动编码、转换,最终生成m3u8文件和ts文件,处理流程如下:1、用户上传视频成功2、系统对上传成功的视频自动开始编码处理3、用户查看视频处理结果,没有处理成功的视频用户可在管理界面再次触发处理4、视频处理完成将视频地址及处理结果保存到数据库视频处理流程如下:视频处理进程的任务是接收视频处理消息进行视频处理,业务流程如原创 2021-06-29 15:50:36 · 349 阅读 · 0 评论