系统分析与设计
好文章,来自【福优学苑@音视频+流媒体】
1.引言
1.1编写目的
本系统旨在提供一套简单、通用的音视频转码系统,将目前集成的第三方音视频服务替换,打造FYXY专属品牌的音视频服务,为公司添砖加瓦,提高核心竞争力。
1.2项目背景
融媒体是新时期传统媒体行业抢占市场的关键,而融媒体新闻的特色要靠音、视频新闻来突显。在传播过程中,音视频信息变得更为重要,逐渐成为传播的重要内容,未来将成为新闻发展的核心。
目前公司的音视频服务基本都是集成第三方厂商,效果一般,且成本较高。鉴于此,有必要打造FYXY专属品牌的音视频服务,无缝集成到业务系统中。
2.系统概述
2.1目标
本软件系统提供通用的音视频转码服务,可以对市面上流行的多种视频格式进行统一转码,可以灵活设置各种参数,提供统一架构和接口,方便业务系统调用和后期扩充功能。
2.2运行环境
运行环境 环境内容
硬件环境 最低配置:8CPU:Xeon,内存:32G,HD:2TB
软件环境 操作系统:Centos 7,64位系统
2.3需求概述
通用的音视频转码服务
多种音视频输入输出格式处理
转码队列管理
转码优先级策略管理
视频元信息管理
截图管理
自适应横竖屏管理
转码模板管理
3.系统功能模块
3.1功能描述
本软件系统提供通用的音视频转码功能,可以对市面上常见的音视频格式进行转码。
提供转码模板管理,可以进行快速参数配置。
提供转码队列管理,尤其将转码失败的任务独立出来,实现后续自动重新转码。
提供转码优先级策略管理,分为普通、高级两种,高级队列的优先级高于普通队列。
提供视频元信息管理,将音视频文件的元信息提取出来,统一管理。
提供截图管理,可以根据关键帧生成各种截图。
提供自适应横竖屏管理,根据原视频的宽高比自适应转码。
提供水印管理,可以设定文字或图片水印,后续支持多种水印特效。
3.2模块设计
模块名称 功能说明
音视频转码管理 搭建转码架构,构造转码内核(ffmpeg4.3.1),充分考虑好底层设计模式
输入输出格式管理 格式封装组件,灵活处理各种格式,可以已有扩展
转码队列管理 任务队列管理:详细的任务队列,显示进度和媒体信息
错误队列管理:需要自动重新转码,辅助客户分析出错原因
转码优先级策略管理 基本的优先级策略:分为“普通”和“高级”,第一期实现。
复杂的优先级策略:后期再详细设计,需要考虑业务系统
视频元信息管理 视频元信息:包括编解码格式、分辨率、码率、帧率、等
音频元信息:包括编解码格式、采样率、码率、声道、等
字幕元信息:包括字幕格式、字幕时间、特效、等
文件元信息:包括传输协议、封装格式、作者、编辑、等
截图管理 截图信息管理:包括类型、宽高、时间点、等
截图任务管理:包括创建、查询、删除、等
自适应横竖屏管理 需要封装为统一的“视频智能识别组件”
包括的信息会比较多,目前先考虑“自适应横竖屏”
包括有些手机拍照会旋转90度,需要智能处理
转码模板管理 转码模板组件:这是一个很复杂的功能组件,
整个转码过程都围绕着“转码模板”进行统一参数配置
包括系统预置模板、用户自定义模板
包括模板参数的智能处理
包括模板信息的增删改查
接口调用管理 接口调用RESTful,需要封装为独立的组件
对外,供各个业务系统调用,需要独立、简明、可扩展
对内,供转码内核系统集成,需要充分考虑复杂度
类型,使用JSON作为各个系统与模块之间的传递类型
结构,设计好调用接口和参数类型,对外不能轻易修改
4.系统设计
4.1总体设计
4.1.1系统总体架构图
4.1.2系统转码流程图
4.1.3系统功能模块图
4.2接口设计
4.2.1转码服务相关接口
创建转码任务
暂停转码任务
取消转码任务
查询转码任务
查询转码列表
4.2.2转码模板相关接口
查询模板列表
查询模板详情
4.2.3截图相关接口
创建截图
查询截图
4.2.4媒体信息相关接口
创建媒体信息任务
查询媒体信息任务
4.3数据结构设计
4.3.1文件
TCAVFile
TranscodeInputFile
TranscodeOutputFile
4.3.2转码任务
TranscodeTask
4.3.3转码模板
TranscodeTemplate
TranscodeTemplateContent
4.3.4截图
Snapshot
SnapshotTask
SnapshotConfig
4.3.5水印
WaterMark
4.3.6媒体信息
MediaInfoTask
mediaInfo
好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***