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开发实战:从零基础到短视频上线》一书。

相关推荐
落魄Android在线炒饭6 小时前
Android 自定义HAL开发篇之 HIDL篇——从入门到实战(上)
android
plainGeekDev7 小时前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev7 小时前
EventBus → SharedFlow
android·java·kotlin
Mahut1 天前
我用 Electron + FFmpeg 做了一个本地视频处理工作站 ClipForge
前端·ffmpeg·electron
37手游移动客户端团队1 天前
招聘-高级安卓开发工程师
android·客户端
用户41659673693551 天前
WebView 请求异常排查操作手册
android·前端
Kapaseker1 天前
学不动了,入门 Compose Styles API
android·kotlin
花椒技术2 天前
HJPusher / HJPlayer SDK 实践:我们为什么把直播推播链路拆成一套可复用能力
设计模式·harmonyos·直播
墨狂之逸才2 天前
Android TV WebView 遥控器按键处理:从全透传到白名单
android
plainGeekDev2 天前
MVC 写法 → MVVM
android·java·kotlin