移动端视频剪辑架构设计一

移动端视频剪辑架构设计一

背景:

经过多年的移动端音视频开发,不断的摸索,按照自己的想法设计一套视频剪辑框架,并一步一步的完善具体细节

架构

本次框架采用mvc架构模式,先构建与app交互的模型

接下来介绍具体的模型架构

移动端视频剪辑架构设计一_第1张图片

 

接下来详细介绍各个成员的主要功能

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 架构概要设计

编解码底层 架构概要设计

预加载 架构概要设计;//保证预览的流畅性

接口设计

详细设计

你可能感兴趣的:(框架,ffmpeg)