系统分析与设计


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

1.引言

1.1编写目的

    本系统旨在提供一套简单、通用的音视频转码系统,将目前集成的第三方音视频服务替换,打造FYXY专属品牌的音视频服务,为公司添砖加瓦,提高核心竞争力。


1.2项目背景

    融媒体是新时期传统媒体行业抢占市场的关键,而融媒体新闻的特色要靠音、视频新闻来突显。在传播过程中,音视频信息变得更为重要,逐渐成为传播的重要内容,未来将成为新闻发展的核心。

    目前公司的音视频服务基本都是集成第三方厂商,效果一般,且成本较高。鉴于此,有必要打造FYXY专属品牌的音视频服务,无缝集成到业务系统中。



2.系统概述

2.1目标

本软件系统提供通用的音视频转码服务,可以对市面上流行的多种视频格式进行统一转码,可以灵活设置各种参数,提供统一架构和接口,方便业务系统调用和后期扩充功能。



2.2运行环境

运行环境 环境内容

硬件环境 最低配置:8CPU:Xeon,内存:32G,HD:2TB

软件环境 操作系统:Centos 7,64位系统

image.png


2.3需求概述

通用的音视频转码服务

多种音视频输入输出格式处理

转码队列管理

转码优先级策略管理

视频元信息管理

截图管理

自适应横竖屏管理

转码模板管理




3.系统功能模块

3.1功能描述

本软件系统提供通用的音视频转码功能,可以对市面上常见的音视频格式进行转码。

提供转码模板管理,可以进行快速参数配置。

提供转码队列管理,尤其将转码失败的任务独立出来,实现后续自动重新转码。

提供转码优先级策略管理,分为普通、高级两种,高级队列的优先级高于普通队列。

提供视频元信息管理,将音视频文件的元信息提取出来,统一管理。

提供截图管理,可以根据关键帧生成各种截图。

提供自适应横竖屏管理,根据原视频的宽高比自适应转码。

提供水印管理,可以设定文字或图片水印,后续支持多种水印特效。


3.2模块设计

image.png

模块名称 功能说明

音视频转码管理 搭建转码架构,构造转码内核(ffmpeg4.3.1),充分考虑好底层设计模式

输入输出格式管理 格式封装组件,灵活处理各种格式,可以已有扩展

转码队列管理 任务队列管理:详细的任务队列,显示进度和媒体信息

错误队列管理:需要自动重新转码,辅助客户分析出错原因

转码优先级策略管理 基本的优先级策略:分为“普通”和“高级”,第一期实现。

复杂的优先级策略:后期再详细设计,需要考虑业务系统

视频元信息管理 视频元信息:包括编解码格式、分辨率、码率、帧率、等

音频元信息:包括编解码格式、采样率、码率、声道、等

字幕元信息:包括字幕格式、字幕时间、特效、等

文件元信息:包括传输协议、封装格式、作者、编辑、等

截图管理 截图信息管理:包括类型、宽高、时间点、等

截图任务管理:包括创建、查询、删除、等

自适应横竖屏管理 需要封装为统一的“视频智能识别组件”

包括的信息会比较多,目前先考虑“自适应横竖屏”

包括有些手机拍照会旋转90度,需要智能处理

转码模板管理 转码模板组件:这是一个很复杂的功能组件,

整个转码过程都围绕着“转码模板”进行统一参数配置

包括系统预置模板、用户自定义模板

包括模板参数的智能处理

包括模板信息的增删改查

接口调用管理 接口调用RESTful,需要封装为独立的组件

对外,供各个业务系统调用,需要独立、简明、可扩展

对内,供转码内核系统集成,需要充分考虑复杂度

类型,使用JSON作为各个系统与模块之间的传递类型

结构,设计好调用接口和参数类型,对外不能轻易修改




4.系统设计

4.1总体设计

4.1.1系统总体架构图


image.png

image.png



4.1.2系统转码流程图

image.png



4.1.3系统功能模块图

image.png


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





好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***