-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
ffmpegkit-maintained edited this page Jun 23, 2026
·
1 revision
Pick the tier that covers what your app needs — see Compatibility or the Releases page for the full feature comparison.
Free (Maven Central, no charge):
repositories {
mavenCentral()
}
dependencies {
implementation 'dev.ffmpegkit-maintained:ffmpeg-kit-free:6.0.2'
}Basic / Full / Full GPL (Gumroad, paid — download the .aar and add it as a local dependency):
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation(name: "ffmpeg-kit-basic-6.0.1", ext: "aar") // or full / full-gpl
}Drop the downloaded .aar into your module's libs/ folder first.
import com.arthenica.ffmpegkit.FFmpegKit;
import com.arthenica.ffmpegkit.FFmpegSession;
import com.arthenica.ffmpegkit.ReturnCode;
FFmpegSession session = FFmpegKit.execute("-i file1.mp4 -c:v mpeg4 file2.mp4");
if (ReturnCode.isSuccess(session.getReturnCode())) {
// SUCCESS
} else if (ReturnCode.isCancel(session.getReturnCode())) {
// CANCELLED
} else {
// FAILURE
Log.d(TAG, String.format("Command failed with state %s and rc %s.%s",
session.getState(), session.getReturnCode(), session.getFailStackTrace()));
}FFmpegKit.executeAsync("-i file1.mp4 -c:v mpeg4 file2.mp4", session -> {
SessionState state = session.getState();
ReturnCode returnCode = session.getReturnCode();
Log.d(TAG, String.format("FFmpeg process exited with state %s and rc %s.%s",
state, returnCode, session.getFailStackTrace()));
});The package name and class/method signatures are unchanged from upstream com.arthenica.ffmpegkit — if you're moving from the old Maven Central artifacts, see Migration instead of rewriting call sites.
For the full API surface (FFprobe, media info, callbacks, cancellation, session history), see API Usage.