FFmpeg n8.1.2 · NDK r27c · compileSdk 35 · minSdk 24 · arm64-v8a · 16 KB page alignment
Choose your tier
| Tier | Included | Price | Get it |
|---|---|---|---|
| Free | Decode H.264, H.265, AV1, VP8/VP9 · Remux/transcode · Opus, Vorbis, Speex audio · No hardware acceleration · No encoders | Free | ⬇️ Download AAR · Maven Central |
| Basic | Everything in Free + Hardware H.264/H.265 acceleration (MediaCodec) · H.264 encode · AAC, MP3, AMR audio · TLS | $24 / $64 team | Gumroad → |
| Full | Everything in Basic + All LGPL codecs · H.265 encode · Subtitle rendering (libass) · SRT streaming · 🎙️ Whisper AI — on-device transcription & translation, 99 languages | $34 / $89 team | Gumroad → |
| Full GPL |
Everything in Full + x264, x265 encoders · xvid · GPL license required | $44 / $119 team | Gumroad → |
Not sure which tier? Start with Free to test the API. Choose Basic for most production apps. Choose Full for Whisper AI transcription or advanced codec support.
Free tier — install
⬇️ AAR attached below, or add via Gradle:
// settings.gradle
repositories { mavenCentral() }
// build.gradle
implementation 'dev.ffmpegkit-maintained:ffmpeg-kit-free-81:8.1.7'What's new in 8.1.7
- Critical fix — audio pipeline:
av_opt_set_int(abuffersink, "all_channel_counts", 1)called a removed FFmpeg 8.x option, aborting every audio filter graph withConversion failed!. Upgrade strongly recommended. - JNI memory leak in
registerNewNativeFFmpegPipefixed getVersion()now returns"8.1-lts"correctly
Known limitations
- arm64-v8a only — other ABIs require compiling from source via
android.sh -ac Nflag removed — use-af "aformat=channel_layouts=mono"instead (FFmpeg 8.x broke runtime-ac)pkt_pos/pkt_sizein ffprobe always returnN/A(removed from AVFrame in FFmpeg 8.x)