当前位置: 首页 > news >正文

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界面如下图所示:

ffmpeg-android1

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

ffmpeg-android2

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

ffmpeg-android3

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

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

http://www.rkmt.cn/news/1304697.html

相关文章:

  • 3步智能清理:用AntiDupl.NET告别电脑中的重复图片困扰
  • 2026年4月臭氧发生器公司口碑推荐,混合机/台车烘箱/二维混合机/热风循环烘箱,臭氧发生器企业哪个好 - 品牌推荐师
  • AXI Crossbar架构解析:从总线协议到片上互联的实战设计
  • 广东成人学历提升报名条件是什么?成考、开放教育、自考报考要求与正规机构选择 - 优选机构推荐
  • 别再只盯着Step函数了!Simulink中Initialize/Terminate/Reset子系统的隐藏用法与配置指南
  • gdsdecomp终极指南:如何一键恢复Godot游戏项目的完整源代码
  • HttpOnly Cookie 深度解析
  • 微软DebugMCP:可视化调试MCP协议,解决AI与工具通信黑盒问题
  • GA/T 1400视图库实战:从零部署Easy1400平台到设备级联全流程解析
  • OAuth 2.0 and OIDC 三大安全机制对比:State vs Nonce vs PKCE
  • ONNXRuntime GPU推理想用BFloat16加速?手把手教你搞定PyTorch + CUDA环境配置与避坑
  • AI应用监控实战:从LLM调用追踪到成本优化全解析
  • 基于Go与SQLite构建私有化RESTful笔记API:Rocketnotes部署与二次开发指南
  • 终极音乐解锁指南:免费开源工具一键转换12种加密格式
  • AI Agent Harness Engineering 行业解决方案:金融风控、法律咨询与供应链管理
  • ArcSWAT建模踩坑记:你的土壤数据库参数算对了吗?聊聊SPAW的那些默认值和单位陷阱
  • 5分钟掌握XHS-Downloader:小红书无水印下载完全指南(2024最新版)
  • 别再手动搭模型了!用ASE Python库5分钟构建你的吸附、掺杂材料结构
  • Windows安卓应用安装终极指南:告别模拟器,开启原生体验
  • 高导热金属基板 PCB 厂家五大推荐,大功率散热首选
  • 独立开发者如何借助Taotoken多模型能力打造全能AI助手应用
  • 打破平台壁垒:Windows上安装APK文件的完整解决方案
  • Umi-OCR:完全免费开源的离线OCR神器,3分钟快速上手文字识别
  • 3分钟快速解密:ncmdump免费解锁网易云音乐NCM文件终极指南
  • 2026年5月上海化妆培训机构推荐,明星化妆培训,线下化妆培训,影楼化妆培训,模特化妆培训,新手化妆培训机构优选指南! - 品牌鉴赏师
  • YOLOv5从入门到部署:手把手教你完成自定义数据集训练与模型优化
  • 告别DNS污染:精选支持DoH/DoT的公共DNS服务与全平台配置指南
  • 免费离线OCR终极指南:3步掌握Umi-OCR文字识别
  • 构建个人知识管理系统:从souls-directory看资源筛选与组织
  • 从“穿流不息”到“川流不息”:深入pycorrector源码,看中文纠错模型是怎么“想”的