惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
Vercel News
Vercel News
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
量子位
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)

博客园 - aqi00

鸿蒙版本的JSBridge兼容与安卓配套的H5啦 15天学会AI应用开发(二十)使用LangChain实现RAG检索功能 15天学会AI应用开发(十九)使用LangGraph实现持久记忆功能 鸿蒙版本的小小机器人APP开放源码啦 15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能 15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能 15天学会AI应用开发(十六)LangChain实现对话记忆功能 15天学会AI应用开发(十五)使用LangChain封装AI执行链 15天学会AI应用开发(十四)搭建LangChain的开发环境 15天学会AI应用开发(十三)上下文与RAG的阶段性总结 15天学会AI应用开发(十二)从PDF、WORD、网页构建RAG 15天学会AI应用开发(十一)从TXT文件构建RAG知识库 15天学会AI应用开发(十)把文本嵌入模型换成国产模型 15天学会AI应用开发(九)利用Chroma持久化向量数据 15天学会AI应用开发(八)使用向量数据库实现RAG功能 15天学会AI应用开发(七)有了大模型为什么还要引入RAG 15天学会AI应用开发(六)使用离线大模型对文本生成摘要 一文速览 HarmonyOS 6.1.1 推出的十个新特性 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息 15天学会AI应用开发(四)根据Token长度截断历史对话 15天学会AI应用开发(三)把历史对话作为提示词会怎样 15天学会AI应用开发(二)为什么编写提示词这么重要 15天学会AI应用开发(一)搭建AI大模型应用开发环境 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid 一文速览 HarmonyOS 6.0.1 引入的十个新特性 一文读懂 HarmonyOS 6.1 带来的十大重要升级 新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦 FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer
FFmpeg开发笔记(一百零一)跨平台的开源音视频移动框架Mobil...
aqi00 · 2026-05-16 · via 博客园 - aqi00

除了剪映那样的视频剪辑软件,在移动系统上还有一款跨平台的开源音视频框架MobileFFmpeg,通过该框架可以很方便地执行音视频加工操作,下面就来介绍如何在App工程中使用MobileFFmpeg。

MobileFFmpeg 是一款专为 Android、iOS 和 tvOS 移动平台开发的开源音视频处理框架。它的核心作用是将强大的 FFmpeg 工具链移植到移动端,并提供简洁的上层 API,让开发者无需复杂的底层编译和 JNI 操作,就能在 App 里实现专业级的音视频编辑、转码与处理。
MobileFFmpeg几乎能实现电脑端 FFmpeg 的所有功能,包括:
1、格式转换:MP4、AVI、MKV、MOV、GIF 等互转。
2、视频编辑:裁剪、拼接、旋转、加水印、加字幕、倍速播放。
3、音频处理:提取音频、混音、降噪、格式转换(MP3、AAC、WAV)。
4、编码解码:支持 H.264 (x264)、H.265 (x265)、VP9 等主流编解码器。
5、滤镜特效:亮度、对比度、模糊、锐化、防抖等。
6、媒体信息:获取视频分辨率、码率、时长、编码格式等。

MobileFFmpeg的源码托管地址为https://github.com/tanersener/mobile-ffmpeg(星星数4.1k),最新版本是2021年2月发布的v4.4(源码仓库在2025年1月被打包,目前为只读状态),该版本的源码下载地址为https://github.com/tanersener/mobile-ffmpeg/archive/refs/tags/v4.4.LTS.tar.gz。
由于v4.4版本的MobileFFmpeg发布时间较早,为了让小海豚版本的Android Studio Dolphin能够打开它的范例工程,需要对MobileFFmpeg的android工程作如下修改:

一、升级Gradle版本

打开android目录下的gradle/wrapper/gradle-wrapper.properties,把下面这行配置

改成如下这行配置,表示把Gradle版本从6.1.1升级到6.7.1。

二、更新工具库的仓库位置

打开android目录下的build.gradle,把里面的两处“jcenter()”都改为以下配置:

因为jcenter仓库已经废弃,所以改成引用国内的仓库位置。

三、调整模块级别的build.gradle

打开android/app目录下的build.gradle,把下面这行配置

改成下面这行,也就是注释掉ndk配置:

接着把下面两行配置

改成下面两行,也就是注释掉测试配置:

四、修改临时目录的保存路径

打开android/test-app/src/main/java/com/arthenica/mobileffmpeg/test/VideoTabFragment.java,把encodeVideo方法内部的下面代码

改为下面代码,也就是更换临时目录的保存路径:

接着把getVideoFile方法内部的下面代码

改为下面代码,同样是更换临时目录的保存路径:

以上修改的目的是把临时目录改到应用自身的私有空间,避免访问公共空间出现未授权的异常。

修改以上配置和代码之后,等待MobileFFmpeg工程编译通过,把主入口的test-app模块安装到手机上,启动之后的App界面如下图所示:

mobile-ffmpeg1

MobileFFmpeg默认支持VP8和MPEG-4等视频编码器,先在界面上方切换到VIDEO标签,再点击界面中间的【ENCODE】按钮,app会把下方的演示图片自动转为一小段视频,转换过程如下图所示:

mobile-ffmpeg2

MobileFFmpeg也支持mp3、vorbis、opus等常见的音频编码器,比如先在界面上方切换到AUDIO标签,再点击界面中间的【ENCODE】按钮,界面下方会显示mp3音频的转换日志,如下图所示:

mobile-ffmpeg3

可见MobileFFmpeg支持视频转码、音频转码等常见的音视频加工操作,以及更多的命令行处理功能。

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