移动端视频剪辑架构设计一
背景:
经过多年的移动端音视频开发,不断的摸索,按照自己的想法设计一套视频剪辑框架,并一步一步的完善具体细节
架构
本次框架采用mvc架构模式,先构建与app交互的模型
接下来介绍具体的模型架构
接下来详细介绍各个成员的主要功能
TransformItem:负责记录旋转,位移,缩放,锚点,裁切,镜像等位置相关属性信息,并且里边包含关键帧的相关的信息
timeAdjustItem:负责trimrange,effectRange, 直线变速,折线变速,曲线变速等时间重映射相关功能
VideoItem: 负责mov, mp4,jpg,png,bmp,webp,gif等视频资源文件的管理,记录宽高时长帧率等基础信息
AudioItem:负责mp4,mp3,m4a,aac,wav,flac等音频资源文件关键,记录音频的时长等基础信息
FilterItem:主要记录程度调节,以及shader 输出uniform名字, 程度调节关键帧信息
VideoLayer:
可以由上边VideoItem , AudioItem , TransformItem,timeAdjustItem等组合而成
AudioLayer:
可以由上边AudioItem ,timeAdjustItem等组合而成
TemplateLayer:
是为了与AE的素材设计进行搭配的,内部根据模板的内容可以确认为文字,滤镜,贴纸,特效等具体类别, app根据具体类别做对应的设计,模板可能带有音频或者视频等资源文件,所以其内部也可以包含具体VideoItem与AudioItem
MultiFilterLayer:
里边依赖一个TemplateLayer,可以设置多个Layer或者ComboBox,可以理解成转场需要两个源
ComboBox:
可以理解成AE的编辑组,这个组里边可以放置组,也可以放置layer,并且作为一个组整体也可有自己的空间位置变换,始建域变换,这个是最复杂的一个抽象
后续:
工具类:概要设计
View 框架概要设计
Control 架构概要设计
编解码底层 架构概要设计
预加载 架构概要设计;//保证预览的流畅性
接口设计
详细设计