1.2.3 视频处理实现 1.2.3.1确定消息格式
MQ消息统一采用json格式,视频处理生产方会向MQ发送如下消息,视频处理消费方接收此消息后进行视频处 理:
{“mediaId”:XXX} 1.2.3.2处理流程
1)接收视频处理消息 2)判断媒体文件是否需要处理(本视频处理程序目前只接收avi视频的处理)
当前只有avi文件需要处理,其它文件需要更新处理状态为“无需处理”。 3)处理前初始化处理状态为“未处理”
4)处理失败需要在数据库记录处理日志,及处理状态为“处理失败” 5)处理成功记录处理状态为“处理成功” 1.2.3.3数据模型
在MediaFile类中添加mediaFileProcess_m3u8属性记录ts文件列表,代码如下:
[AppleScript] 纯文本查看 复制代码
1 2 |
|
[AppleScript] 纯文本查看 复制代码
1 2 3 4 |
|
1.2.3.4 视频处理生成Mp4
1、创建Dao 视频处理结果需要保存到媒资数据库,创建dao如下:
[AppleScript] 纯文本查看 复制代码
1 2 |
|
2、在application.yml中配置ffmpeg的位置及视频目录的根目录:
[AppleScript] 纯文本查看 复制代码
1 2 3 |
|
3、处理任务类 在mq包下创建MediaProcessTask类,此类负责监听视频处理队列,并进行视频处理。
整个视频处理内容较多,这里分两部分实现:生成Mp4和生成m3u8,下边代码实现了生成mp4。
[AppleScript] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
说明:
1、原始视频转成mp4如何判断转换成功?
根据视频时长来判断,取原视频和转换成功视频的时长(时分秒),如果相等则相同。