FFmpeg Android Java
- FFmpeg for Android compiled with x264, libass, fontconfig, freetype, fribidi and LAME
- Supports Android 4.1+
Supported Architecture
- armv7
- armv7-neon
- armv8
- x86
- x86_64
Adding Library to Project
-
Download and copy AAR File to app/libs
and add to your app/build.gradle file
repositories { flatDir { dirs 'libs' } } dependencies { compile(name:'FFmpegAndroid', ext:'aar') }
-
Or Grab via gradle
compile 'com.writingminds:FFmpegAndroid:0.3.2'
-
Or Maven
<dependency> <groupId>com.writingminds</groupId> <artifactId>FFmpegAndroid</artifactId> <version>0.3.2</version> </dependency>
Usage
Load Binary
This method copies the ffmpeg binary to device according to device's architecture. You just need to put this once in your code, whenever you are starting the application or using FFmpeg for the first time. This command does the following:
- Loads/Copies binary to device according to architecture
- Updates binary if it is using old FFmpeg version
- Provides callbacks through FFmpegLoadBinaryResponseHandler interface
FFmpeg ffmpeg = FFmpeg.getInstance(context);
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onStart() {}
@Override
public void onFailure() {}
@Override
public void onSuccess() {}
@Override
public void onFinish() {}
});
} catch (FFmpegNotSupportedException e) {
// Handle if FFmpeg is not supported by device
}
Execute Binary
This method executes ffmpeg command and provides callback through FFmpegExecuteResponseHandler interface. You also need to pass command as argument to this method.
- To execute "ffmpeg -version" command you just need to pass "-version" as cmd parameter.
FFmpeg ffmpeg = FFmpeg.getInstance(context);
try {
// to execute "ffmpeg -version" command you just need to pass "-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() {}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// Handle if FFmpeg is already running
}
Available Methods
loadBinary(FFmpegLoadBinaryResponseHandler ffmpegLoadBinaryResponseHandler) throws FFmpegNotSupportedException
execute(Map<String, String> environvenmentVars, String cmd, FFmpegExecuteResponseHandler ffmpegExecuteResponseHandler) throws FFmpegCommandAlreadyRunningException
execute(String cmd, FFmpegExecuteResponseHandler ffmpegExecuteResponseHandler) throws FFmpegCommandAlreadyRunningException
getDeviceFFmpegVersion() throws FFmpegCommandAlreadyRunningException
getLibraryFFmpegVersion()
isFFmpegCommandRunning()
killRunningProcesses()
setTimeout(long timeout)
Sample Application

JavaDoc
License
- Check file LICENSE.GPLv3 and Make sure to follow the licensing terms and conditions of the project and the software used to build the project.