- 2.SDK功能介绍
- 3.SDK架构以及运行机制介绍
- 4.VideoDecodeService解析
一、项目介绍
本章我将介绍 WsVideoEditor 项目的基本结构、组织方式以及运行方式。需要大家把项目 clone 下来跟着我一步步来做。
1.基本结构
我们看着图1,一个个来讲:
- 1.android:顾名思义,这个目录下是一个 Android 项目,去掉 .gradle、build、.idea 等等 ignore 的文件,我们主要关注下面这几个文件夹。
- 1.ffmpeg-cpp:如图2,这个文件夹中有 FFMPEG 的头文件与 .so 文件,我们需要将这个库集成到我们的 SDK 中,我们的 编辑SDK 需要有解码视频的能力,解码分为硬解和软解,ffmpeg 就是用于软解的最强开源库。至于如何得到这些东西,我之前写过一篇 FFMPE食用指南 有兴趣的读者可以看看。
- 2.protobuf-cpp:这个文件夹与 ffmpeg-cpp 类似,里面有 Protobuf For Cpp 的头文件与 .a 文件,因为我们 Native 与 Android/iOS/Linux 的通信方式使用的是 Protobuf,所以我们也需要将 Cpp 层的 Protobuf 集成到我们的 SDK 中。
- 3.wsvideoeditor-sdk:如图3,这个文件夹是一个 Android Library 项目,我们的 编辑SDK 在 Android 端会以一个独立的 jar 包形式存在。这个目录下的东西比较多,例如 src 目录下是 Java 层的一些封装代码。jni 目录下是一些使用了 Android Native Api 的 Cpp 代码。更详细的解析,会在后面几章。
- 4.wsvideoeditor-test:这个文件夹则是一个 Android Application 项目,主要是用于编写一些测试 编辑 SDK 的代码。
- 2.buildtools:如图4,这个目录下主要存放一些工具脚本,例如目前 build_proto.sh 用于生成 Java 与 Cpp 层的 Proto