基于框架式的短视频APP开发 SDK 架构设计实践
那么我们需要用到哪些已有的框架或者已有的项目来完成这个功能呢?可以思考下,既然有预览界面,则一定需要视频播放器。播放器的基本功能包括了解码和音视频的渲染,此外再加上逻辑控制、音视频对齐就可以成为一个视频播放器。视频播放器中视频解码模块是非常重要的,通过它可以将视频文件解码为视频帧,并且输出到解码纹理队列中,接下来就是本App最核心的工作——处理,视频处理模块会按照时间戳将对应的纹理进行处理,并放入到渲染队列,最后输出模块会将渲染队列中的纹理输出到屏幕上,而在离线保存场景下,则是将渲染队列中的纹理编码输出到本地,也就是封装成mp4或者flv等等格式写入本地磁盘。接下来介绍一下我们团队在进行短视频APP开发 SDK 实践中主要做的一些事情,这其中最重要的就是短视频 SDK 的架构设计,包括架构设计理念、架构图、整体数据流程、模块架构设计等。第一点我们遵循的是高模块化、模块可插拔的一个理念;高模块化必须要保证每个类每个方法都「名副其实」并「各司其职」,这样才能编写更清晰的逻辑;高模块化同时可以促进高复用,减少重复代码;短视频 SDK 内的转码核心类,因为编辑、剪辑在最后保存的时候都需要一个解...
