FFmpeg开发笔记(九十五)国产的开源视频美颜工具VideoEditorForAndroid

《FFmpeg开发实战:从零基础到短视频上线》一书的"第 12 章 FFmpeg的移动开发"介绍了如何使用FFmpeg在手机上剪辑视频,方便开发者更好地开发类似剪映那样的视频剪辑软件。那么在Android系统上还有一款国产的开源视频美颜框架VideoEditor-For-Android,通过该框架可以更方便地给视频添加各种滤镜,下面就来介绍如何在App工程中使用VideoEditor-For-Android。

VideoEditor-For-Android是一款基于Android硬编码的视频编辑器,包含视频录制、剪切、增加bgm、美白、加滤镜、加水印等多种功能。该框架通过Android的api完成视频采集,通过OpenGL完成视频数据帧的处理,通过MeidaCodec对采集到的视频流进行硬编码。它利用OpenGL完成视频的美白、加滤镜、加水印等功能,利用MediaCodec完成音视频的分离和音频的一些混音处理。
VideoEditor-For-Android的源码托管地址为https://github.com/qqchenjian318/VideoEditor-For-Android(星星数1.3k),最近版本更新于2021年9月,该版本的压缩包下载地址为https://github.com/qqchenjian318/VideoEditor-For-Android/archive/refs/heads/master.zip。
由于VideoEditor-For-Android源码的发布时间较早,为了让小海豚版本的Android Studio Dolphin能够打开它们,需要对App工程作如下修改:
1、升级Gradle版本和SDK版本;
2、把使用的jdk版本从默认的JDK8改为JDK11;
3、把Support库迁移为Androidx库;
4、build.gradle给NDK的指令集过滤器增加arm64-v8a;
5、App代码在录像和操作存储空间时增加运行时授权校验;
6、另外修复了若干bug;
因为上述修改涉及到的内容较多,这里不再一一列出,博主把修改后的App源码上传到了Github,具体地址为https://github.com/aqi00/note/tree/master/VideoEditor-For-Android。大家可以拉取Github上修改好的VideoEditor-For-Android源码,就能用小海豚版本的Android Studio Dolphin导入带Demo界面的VideoEditor-For-Android工程了。
那么通过Android Studio Dolphin编译VideoEditor-For-Android并安装到真机上,点击【本地视频美颜】后进入视频文件的挑选页面如下图所示:

先到相册选择一个待加工的视频文件,再点击弹窗右下角的【加滤镜】按钮,App就转到视频的预览界面如下图所示:

在视频预览界面左右滑动,可以切换不同的美颜效果,如下图所示:

点击界面右下角的打勾按钮,App就开始执行对应的美颜加工操作。美颜之后的视频片段默认放在App安装路径下的files目录,完整路径为"我的手机/Android/data/com.example.cj.videoeditor/files/video/clip/123456789.mp4",其中123456789代表一串数字。使用手机自带的文件管理App找到新保存的视频片段,即可观看美颜后的视频效果。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

相关推荐
齊家治國平天下5 分钟前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
Xzaveir30 分钟前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能
2501_9160074739 分钟前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
音视频牛哥42 分钟前
SmartMediaKit 推拉流MP4录像实践:实时传输与本地留存一体化
音视频·rtmp推流录像·rtmp播放端录像·rtsp播放端录像·rtsp流录制·rtmp流录制·rtsp服务器录像
黄林晴1 小时前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
恋猫de小郭2 小时前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
石臻臻的杂货铺2 小时前
做 AI 视频,先让 Blender 把镜头演一遍
人工智能·音视频·blender
ALINX技术博客2 小时前
【黑金云课堂】FPGA技术教程Vitis开发:SD卡WAV文件读取音频播放实验
fpga开发·音视频
HLC++15 小时前
Linux的进程间通信
android·linux·服务器
爱笑鱼18 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android