FFmpeg开发笔记(九十六)采用Kotlin+Compose的视频编辑器OpenVideoEditor

《FFmpeg开发实战:从零基础到短视频上线》一书的"第 12 章 FFmpeg的移动开发"介绍了如何使用FFmpeg在手机上播放视频,基于FFmpeg的国产播放器开源框架也有很多了,前有哔哩哔哩的ijkplayer,后有小红书的RedPlayer,参见之前的文章《使用国产的ijkplayer播放器观看网络视频》和《使用国产的RedPlayer播放器观看网络视频》。

除此以外,OpenVideoEditor也是一款优秀的Android原生视频编辑器,该框架基于Kotlin+Compose开发,并采用Media3和Jetpack Compose构建,贴近最新的Android开发技术。OpenVideoEditor支持裁剪、灰度、反转、缩放、旋转、调整分辨率等常见的视频剪辑功能,可谓功能强大。
OpenVideoEditor的源码托管地址为https://github.com/devhyper/open-video-editor(星星数0.5k),国内的镜像地址为https://gitcode.com/gh_mirrors/op/open-video-editor,最新版本是2024年9月发布的v1.1.3,可见该框架的源码更新十分及时,该版本的源码下载地址为https://github.com/devhyper/open-video-editor/archive/refs/tags/v1.1.3.tar.gz。
并且OpenVideoEditor的源码采用Kotlin+Compose编写,适合Android开发者用作进阶练习,不过由于OpenVideoEditor引入了最新的Android开发技术,因此需要使用较新的Android Studio才能成功导入运行。接下来以Android Studio Ladybug(小瓢虫版本)为例,介绍如何通过Android Studio编译运行OpenVideoEditor的demo工程。
为了加快OpenVideoEditor项目的加载速度,可打开settings.gradle.kts,在repositories节点内部补充以下配置:

复制代码
// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件
maven { url = uri("https://maven.aliyun.com/repository/jcenter") }
maven { url = uri("https://maven.aliyun.com/repository/google")}
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin")}
maven { url = uri("https://maven.aliyun.com/repository/public")}
// 以下添加清华大学的仓库地址
maven { url = uri("https://mirrors.tuna.tsinghua.edu.cn/repository/maven-central/") }

增加以上配置的目的是引入国内的仓库地址,以便加快相关依赖包的下载速度。

等待OpenVideoEditor工程编译通过,把demo应用安装到手机上,启动之后的App界面如下图所示:

点击【视频】按钮,先到系统相册选择一个视频文件,返回的加工界面如下图所示:

点击加工界面右下角的方形按钮,弹出底部选择菜单如下图所示:

点击【剪辑】菜单项,表示根据起止时间裁剪视频片段。此时界面下方的进度条出现两个圆珠,第一个圆珠代表裁剪开始时间,第二个圆珠代表裁剪结束时间,如下图所示:

分别拖动两个圆珠确定裁剪的起止时间后,点击右下角的打勾按钮,此时进度条长度变为视频片段的持续时间比如10秒。点击界面右上角的三点按钮,弹出操作菜单列表如下图所示:

点击【导出】菜单项,弹出保存文件的配置界面如下图所示:

在配置界面可以选择导出方式与音视频的编码格式,点击右下角的导出按钮跳到保存目录的选择界面,选择某个公共目录比如Download,即可将视频片段保存到Download目录。

总结一下,OpenVideoEditor确实使用简单,剪辑功能也丰富,是个未来可期的下一代视频编辑器。

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

相关推荐
m0_6145235510 小时前
差异很大的两段视频怎么自然衔接:切点、AI转场与失败回退
人工智能·音视频
TechVoyager_824610 小时前
IT68353多协议视频转换芯片的硬件架构与协议能力分析
硬件架构·音视频·it68353·多协议音视频·typec 扩展坞·dp hdmi 转换
企业数字化笔记11 小时前
固定资产财务账与实物账怎么对账?折旧快照、差异检测与SQL核对
android·数据库·sql
可乐鸡翅yeah_13 小时前
hls.js 播放质量埋点实战,采集卡顿、起播、错误指标定位线上用户问题
开发语言·前端·javascript·ecmascript·音视频·m3u8·音视频在线播放
千里马-horse13 小时前
第 66 章:在 Android 上运行 Windows 游戏
android·aosp
youandyouyou14 小时前
医学远程示教同屏直播的技术实现路径:以连通宝双流方案为例
音视频·网络通信
A133455515 小时前
保姆级教程:视频播放器怎么导入SRT外挂字幕
音视频
揽秀亭长15 小时前
如何把提取一个视频的脚本?实测3种提取视频脚本的方法
音视频
开发笔记-阿牛15 小时前
嵌入式蓝牙开发:AC2005B 芯片技术解析 —— 省晶振设计、13dBm 射频与 Auracast 广播音响开发指南
人工智能·单片机·音视频
阿酷tony15 小时前
视频专栏列表的防录屏水印和跑马灯效果(也可网站调用)
java·前端·音视频