媒体资源管理系统(MAM)
媒体资源管理系统(Media Asset Management)
是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容进行数字化存储、管理以及应用的总体解决方案,可以满足媒体资源拥有者
收集、保存、查找、编辑、发布各种信息的要求,为媒体资源的使用者提供访问内容的便捷方法
媒体内容
: 如视/音频资料、文本文件、图表等系统负责
: 数字媒体的采集、编目、管理、传输和编码转换等环节,实现对媒体资源的高效管理,大幅度提高媒体资源的价值
媒资管理系统是每个在线教育平台所必须具备的,每个教学机构都可以在媒资管理系统管理自己的教学资源如视频、图片、教学文档等
媒资查询
:教学机构查询自己所拥有的的媒资信息文件上传
:包括上传图片、上传文档、上传视频视频处理
:视频上传成功,系统自动对视频进行编码处理文件删除
:教学机构删除自己上传的媒资文件
上传图片
教学机构人员在课程信息编辑页面上传课程图片,课程图片统一记录在媒资管理系统
上传并处理视频
教学机构人员进入媒资管理列表
查询自己上传的媒资文件,也可以点击上传视频
按钮上传视频
上传视频后媒资管理系统的后台会自动处理需要转码的视频
并生成视频对应的URL
审核媒资
审核媒资包括程序自动审核和人工审核,程序可以先通过阿里云的鉴黄接口审核视频,对有异议的视频再由人工进行审核
- 运营用户登入运营平台后在媒资管理页面可以
查看待审核媒资
,可以预览该媒资的内容若是视频则播放视频 - 运营人员审核完媒资内容后,点击
审核
按钮输入审核意见并做出结果
绑定媒资
第一步: 教育机构用户进入课程计划编辑页面
,可以为课程章节
下的某一小节
添加对应的视频文件
第二步: 在弹出添加视频
的对话框中可通过关键字搜索已审核通过的视频媒资,选择对应视频并点击提交按钮即可完成课程计划和视频的绑定
第三步: 查看课程计划关联的视频
第四步: 如果课程绑定了视频文件,进入课程在线学习界面后点课程计划名称则在线播放视频
数据模型
media_files
表存储文件信息,包括图片、视频、文档等信息
media_process
表存储待处理的视频信息
media_process_history表
存储已经处理成功的视频的历史信息
搭建媒资工程
配置本地环境
第一步: 在项目工程的根目录下创建媒资工程xuecheng-plus-media
,右键工程的pom.xml
文件点击Add as maven
将工程转为maven工程
第二步: 创建媒资数据库xc_media
并导入数据库脚本xcplus_media.sql
第三步: 在api工程
本地创建bootstrap.yml
文件
#微服务配置
spring:
application:
name: media-api
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: ${spring.profiles.active}
group: xuecheng-plus-project
config:
namespace: ${spring.profiles.active}
group: xuecheng-plus-project
file-extension: yaml
refresh-enabled: true
extension-configs:
- data-id: media-service-${spring.profiles.active}.yaml
group: xuecheng-plus-project
refresh: true
shared-configs:
- data-id: swagger-${spring.profiles.active}.yaml
group: xuecheng-plus-common
refresh: true
- data-id: logging-${spring.profiles.active}.yaml
group: xuecheng-plus-common
refresh: true
profiles:
active: dev
第四步: 在service工程
本地创建bootstrap.yml
文件
spring:
application:
name: media-service
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: ${spring.profiles.active}
group: xuecheng-plus-project
config:
namespace: ${spring.profiles.active}
group: xuecheng-plus-project
file-extension: yaml
refresh-enabled: true
shared-configs:
- data-id: logging-${spring.profiles.active}.yaml
group: xuecheng-plus-common
refresh: true
#profiles默认为dev
profiles:
active: dev
配置远程环境
在Nacos配置中心的开发环境(dev)
下创建api
工程的远程配置文件media-api-dev.yaml
server:
servlet:
context-path: /media
port: 53050
在Nacos的开发环境下创建service
工程的远程配置文件media-service-dev.yaml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/xc_media?serverTimezone=UTC&userUnicode=true&useSSL=false&
username: root
password: 123456
# 当前配置文件优先
cloud:
config:
override-none: true
minio:
endpoint: http://127.0.0.1.65:9000
accessKey: minioadmin
secretKey: minioadmin
bucket:
files: mediafiles
videofiles: video
xxl:
job:
admin:
addresses: http://192.168.101.65:8088/xxl-job-admin
executor:
appname: media-process-service
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
accessToken: default_token
videoprocess:
ffmpegpath: D:/soft/ffmpeg/ffmpeg.exe