从零开始仿写一个抖音App——视频编辑SDK开发(一)(1)

  • 6.thirdparty:这里存放着一些包含源码的与平台无关的三方库,例如 libyuv。
  • 7.CMakeLists.txt:这个文件主要是为了让 Clion 能够识别我们这个整个项目。

2.如何运行项目

  • 1.git clone https://github.com/TheGodsThemselves/WsVideoEditor.git
  • 2.NDK 环境需要准备好
  • 3.用 Android Studio 打开 WsVideoEditor/android 目录
  • 4.在手机中准备 /sdcard/test.mp4 视频文件
  • 5.运行 wsvideoeditor-test 项目

二、SDK功能介绍

这一章我们来介绍一下 编辑SDK 目前有的以及未来会有的功能。编辑SDK 的最终形态会和抖音的视频编辑功能接近,有其他想法的读者也可以在评论区留言或者提 issue。

1.目前有的功能

  • 1.开始播放
  • 2.暂停播放
  • 3.视频音量调整
  • 4.单段视频播放
  • 5.多段视频播放
  • 6.视频 Seek
  • 7.视频边缘模糊填充

2.规划中的功能

  • 1.视频类:
  • 1.按时间轴添加额外的声音
  • 2.按时间轴添加滤镜
  • 3.按时间轴添加静态贴纸、动态贴纸
  • 4.多段视频间转场
  • 2.图片类:
  • 1.添加声音
  • 2.多张图片间的转场
  • 3.照片电影
  • 3.工具类:
  • 1.视频缩略图截取
  • 2.视频元数据读取
  • 4.编码类:
  • 1.导出不同格式的视频
  • 2.更改视频的分辨率、帧率
  • 3.视频转 gif
  • 5.技术类:
  • 1.多进程编解码视频
  • 2.多进程播放视频
  • 3.多进程视频缩略图截取

三、SDK架构以及运行机制介绍

这一章我来介绍一下目前 编辑SDK 的整体架构以及运行机制。

1.编辑SDK架构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图6是 编辑SDK 的架构图,这一节我会照着这张图来介绍。

(1).基础API

先从底部看起,底部是整个 SDK 依赖的底层 API 库。

  • 1.FFMPEG:前面简单介绍过,是一个开源的视频库,在我们的项目中主要用于软编解码
  • 2.MediaCodec:是 Android 中的硬编解码 API,相应的 iOS 也有自己的硬编解码方式。
  • 3.OpenGL:是一个开源的图形库,Android 和 iOS 中都有内置 OpenGL ES 作为默认图形库。在我们的项目中主要用于将视频解码后的视频帧绘制到屏幕上去。当然也可以对这些图像做一些效果的变化,例如滤镜、视频/图片转场等等。
  • 4.Libyuv:是 Google 开源的实现各种 YUV 与 RGB 之间相互转换、旋转、缩放的库。
  • 5.Protobuf:是 Google 开源的一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议。在我们的项目中主要用于 Cpp 与 Java、OC、Dart 之间的数据通信。
(2).SDK主体

接着我们再看图片中的主体部分,因为目前只有 Android 端的实现,所以主体部分的上层实现我使用 Android 来代替。

  • 1.Android层架构
  • 1.WSMediaPlayerView:继承于 TextureView,所以其可以提供一个具有 Open G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值