news 2026/2/22 21:33:47

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FFmpeg开发笔记(九十六)采用Kotlin#x2B;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节点内部补充以下配置:

/* by 01022.hk - online tools website : 01022.hk/zh/pinyin.html */ // 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件 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开发实战:从零基础到短视频上线》一书。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/22 20:18:11

Android数据库调试革命:告别adb,拥抱可视化SQLite管理

Android数据库调试革命:告别adb,拥抱可视化SQLite管理 【免费下载链接】Android-Debug-Database Android Debug Database是一个Android应用程序,用于查看和编辑SQLite数据库文件。它可以显示数据库的结构、执行SQL查询和修改数据。这个工具对…

作者头像 李华
网站建设 2026/2/22 4:09:10

用HTML5 Canvas动手打造3D地图,关键步骤解析

在Web前端开发中,使用HTML5 Canvas实现3D地图是一个既充满挑战又极具实用价值的方向。它不依赖于第三方库,能带来高度的定制性和性能控制,但同时也对开发者的数学和图形学功底提出了直接考验。下面我将结合实践,分享几个关键的技术…

作者头像 李华
网站建设 2026/2/21 12:08:17

2025最新!9个AI论文工具测评:本科生毕业论文写作全攻略

2025最新!9个AI论文工具测评:本科生毕业论文写作全攻略 2025年AI论文工具测评:为本科生量身打造的写作指南 随着人工智能技术的不断进步,越来越多的学术写作工具进入高校市场,帮助学生提升论文写作效率。然而&#xff…

作者头像 李华
网站建设 2026/2/19 0:22:13

Open-AutoGLM Prompt模板设计全攻略(工业级应用案例曝光)

第一章:Open-AutoGLM Prompt模板设计全攻略(工业级应用案例曝光)在工业级大模型应用中,Prompt模板的设计直接影响推理准确性与系统稳定性。合理的模板结构不仅能提升模型理解任务的能力,还能显著降低异常输出概率。核心…

作者头像 李华
网站建设 2026/2/18 20:56:19

OptionB 空间索引系统实现报告(1、2、3)

一、实现功能列表1. 基础几何计算模块包围盒操作:contain():判断包围盒是否包含点或另一个包围盒intersect():判断两个包围盒是否相交unionEnvelope():合并两个包围盒生成新的包围盒几何距离计算:Point::distance(cons…

作者头像 李华
网站建设 2026/2/20 8:03:04

【Java毕设源码分享】基于springboot+vue的社区流浪动物救助系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华