FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid

基于FFmpeg的国产播放器开源框架也有很多了,前有哔哩哔哩的ijkplayer,后有小红书的RedPlayer,参见之前的文章《使用国产的ijkplayer播放器观看网络视频》和《使用国产的RedPlayer播放器观看网络视频》。

除此以外,FFmpegAndroid也是一款优秀的国产Android音视频开源工具,它基于Kotlin编写,音视频工作方向包括:直播、短视频、流媒体传输、视频播放器、音乐播放器、音视频算法、流媒体后端、音视频编辑、图像处理等等,可谓功能强大。

FFmpegAndroid的源码托管地址为https://github.com/xufuji456/FFmpegAndroid(星星数5.6k),国内的镜像地址为https://gitee.com/clone_github/FFmpegAndroid。FFmpegAndroid的最新版本于2025年11月发布,可见该框架的源码更新十分及时,最新的源码下载地址为https://github.com/xufuji456/FFmpegAndroid/archive/refs/heads/master.zip。

接下来以Android Studio Ladybug(小瓢虫版本)为例,介绍如何通过Android Studio编译运行FFmpegAndroid的demo工程。

一、调整Gradle版本

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

复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip

改成如下这行配置,表示把Gradle版本从8.10.2降级到8.7。

复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip

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

打开android目录下的build.gradle,把里面的两处maven配置

复制代码
maven {
    url 'https://maven.google.com/'
    name 'Google'
}

改成下面配置:

复制代码
google()

因为原配置用到了Gradle最新版本的特性,而Gradle8.7暂不支持该特性。

此外,还要把下面这行配置

复制代码
classpath 'com.android.tools.build:gradle:8.8.0'

改成下面这行配置,表示把Gradle插件版本降级到适配Android Studio Ladybug的8.6版本:

复制代码
classpath 'com.android.tools.build:gradle:8.6.0'

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

点击【音频处理】按钮,打开音频文件的加工界面如下图所示:

或者点击【视频处理】按钮,打开视频文件的加工界面如下图所示:

可见FFmpegAndroid支持音频处理、视频处理、ffmpeg推流、rtmp推流直播、ffmpeg滤镜等功能,可谓将常见的音视频播放和剪辑操作一网打尽。

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

相关推荐
雨白3 小时前
掌握 NestedScrolling 嵌套滑动:手写仿知乎折叠主页
android
Xzaveir5 小时前
别把所有“认证”都塞进 AuthService:实名、一键登录与号码身份的领域拆分
android·人工智能
BerrySen1785 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
AFinalStone6 小时前
Android 7系统休眠唤醒(一)电源管理架构全景图
android·powermanager·电源管理
YM52e7 小时前
鸿蒙Flutter Center居中组件:Align对齐详解
android·学习·flutter·华为·harmonyos·鸿蒙
时间的拾荒人8 小时前
MySQL 视图详解
android·数据库·mysql
蝉蜕日记8 小时前
视频压缩 v1.1.31:高效压缩,无损画质,释放存储空间
音视频·生活·视频编解码·视频·软件需求
祉猷并茂,雯华若锦8 小时前
Appium 3.x安卓按键与通知栏操作全指南
android·appium
码农coding9 小时前
android 12 SurfaceFlinger开机启动分析
android
hunterandroid9 小时前
Paging 3 RemoteMediator 实战:构建离线优先的分页列表
android·前端