# FFmpeg-Android
**Repository Path**: shanxsx/FFmpeg-Android
## Basic Information
- **Project Name**: FFmpeg-Android
- **Description**: FFmpeg-Android 是基于ffmpeg 4.0编译运行在android平台的音视频的处理框架,可实现视频字幕添加、尺寸剪切、添加或去除水印、时长截取、转GIF动图、涂鸦、音频提取、拼接、质量压缩、加速减速、倒放、素描、色彩平衡、hue、lut、模糊、九宫格、添加贴纸、滤镜、分屏、图片合成视频等,音视频合成、分离、截取、拼接,混音、音视频解码等等音视频处理...
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 4
- **Created**: 2019-12-03
- **Last Updated**: 2024-12-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# FFmpeg-Android
[](https://jitpack.io/#yangfeng1994/FFmpeg-Android)
[](http://ffmpeg.org/releases/ffmpeg-4.0.tar.bz2)
FFMpeg 在 Android中使用.
在您的Android项目中轻松执行FFmpeg命令。
## 关于
这个项目是 [FFmpeg-Android](https://github.com/bravobit/FFmpeg-Android) 的延续分支。删除了FFprobe,
使so包大小减少了一半,尽量压缩项目的大小,使您的项目尽可能的小,功能尽可能的完善。
# 项目截图
### 体系结构
FFmpeg-Android运行在以下架构上:
- armeabi
- armeabi-v7a
- armv7-neon
- arm64-v8a
### FFmpeg构建
在本项目中,FFmpeg是通过以下库构建的:
- x264 `r2851 ba24899`
- libpng `1.6.21`
- freetype2 `2.8.1`
- libmp3lame `3.100`
- libvorbis `1.3.5`
- libvpx `v1.6.1-1456-g7d1bf5d`
- libopus `1.2.1`
- fontconfig `2.11.94`
- libass `0.14.0`
- fribidi `0.19.7`
- expat `2.1.0`
- fdk-aac `0.1.6`
### 特性
- 使用最新的FFmpeg发行版 `n4.0-39-gda39990`
- 在ARM架构上使用本机CPU功能
- 启用网络功能
- 多线程
## 使用
### 开始
包括依赖
allprojects
{
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
```gradle
dependencies {
implementation 'com.github.yangfeng1994:FFmpeg-Android:v1.0.1'
}
```
### 检查是否支持FFmpeg
要检查设备上是否有FFmpeg,可以使用以下方法。
```java
if (FFmpeg.getInstance(this).isSupported()) {
// 支持ffmpeg
} else {
// 不支持ffmpeg
}
```
这就是加载FFmpeg库所要做的全部工作。
### 运行 FFmpeg command
在这个示例代码中,我们将运行ffmpeg -version命令。
```java
FFmpeg ffmpeg = FFmpeg.getInstance(context);
// 要执行“ffmpeg -version”命令,只需传递“-version”即可
ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {
@Override
public void onStart() {}
@Override
public void onProgress(String message) {}
@Override
public void onFailure(String message) {}
@Override
public void onSuccess(String message) {}
@Override
public void onFinish() {}
});
```
### 停止(或退出)FFmpeg进程
如果你想停止运行中的ffmpeg, 只需在运行的FFtask上调用' .sendQuitSignal() '
```java
FFmpeg ffmpeg = FFmpeg.getInstance(context);
FFtask ffTask = ffmpeg.execute( ... )
ffTask.sendQuitSignal();
```
注意:这将导致' onFailure '被调用,而不是' onSuccess ' ._
# 体验demo
[点击下载](https://raw.githubusercontent.com/yangfeng1994/FFmpeg-Android/master/sample/release/sample-release.apk)
## Special Thanks To
- [diegoperini](https://github.com/diegoperini)
## Licensing
- [Library license](https://github.com/bravobit/FFmpeg-Android/blob/master/LICENSE)
- [FFmpeg license](https://www.ffmpeg.org/legal.html)