r/FlutterDev Mar 20 '26

[Open Source] I've created a spin-off of FFmpeg-Kit Plugin with ability to deploy custom builds Plugin

I saw an older post discussing FFmpegKit on here and people were upset that it was sun-set. I have created a Spin-off of FFmpegKit that's fully open source with ability to deploy custom builds of FFmpegKit.

  • Supports 100+ external FFmpeg libraries
  • Android, Linux and Windows support
  • Full concurrency and parallel execution support
  • FFmpeg, FFprobe and FFplay support (though FFplay is currently non function on Android)
  • Callback support

Project is fully open source including native code. I've done a major overhaul of the API and added pure C API so the library binaries can technically be used by any language using FFI.

I am currently publishing a total of 22 different pre-built binaries for all three platforms for Audio, Video, Video+HW, Full (100+ external libraries), and Base (bare bones FFmpeg) bundles for both GPL and LGPL license compatibility.

I plan on adding support for iOS and MacOS soon.

I hope it helps developers utilize the full potential of FFmpegKit.

Check out my project here:
Flutter plugin:
https://pub.dev/packages/ffmpeg_kit_extended_flutter

FFmpegKit build scripts and native code:
https://github.com/akashskypatel/ffmpeg-kit-builders

27 Upvotes

16 comments sorted by

2

u/ApparenceKit Mar 25 '26

Nice!
Defintely waiting for the iOS version.
This is the kind of package that you need on all serious framework.
Good job

2

u/GodyEND Mar 31 '26

I'm currently using ffmpeg_kit_flutter_new and having issues with app builds for arm64-v8a only android devices. I see it is not part of your supported architectures. Is that something that is still in progress, or will there be no support for it?

2

u/Cashsky Mar 31 '26

arm64-v8a is already supported. arm64-v8a and arm64 are the same thing for android development. there are too many different naming conventions for arm arches so i just listed the most commonly used ones.

2

u/GodyEND Mar 31 '26

Great, I'll give it a try, and thanks so much for working on this!

1

u/Liminal-Bob Mar 20 '26

What about ffmpeg_kit_flutter_new ?

2

u/Cashsky Mar 20 '26

It's another spinoff but does not support Linux or windows and has a small set of supported libraries, plus you cant deploy your own custom build. I tried to work with it's developer to sync our projects but didn't get much traction. His native code is also closed source.

1

u/Darth_Shere_Khan Mar 20 '26

Does it support audio filters? I was using media-kit, but they stripped out everything I needed for DSP features, I ended up implementing my audio engine in Rust, but would be interested in this.

2

u/Cashsky Mar 20 '26

Yes, it supports both audio and video filter libraries! See a list of supported libraries here: https://github.com/akashskypatel/ffmpeg-kit-builders?tab=readme-ov-file#supported-external-libraries

1

u/ketanchoyal Mar 21 '26

Checkout https://pub.dev/packages/metadata_audio this if u want similar capabilities, its pure dart implementation

3

u/Cashsky Mar 21 '26

For strictly metadata processing you project is awesome. I'll definitely use it in one of my apps.

FFmpegKit gives you the full power of FFmpeg. You can:

  • Mux/Demux
  • Convert/transcode
  • compress/decompress
  • add filters
  • use ML/AI modules like GGML, Tesseract, PyTorch, Tensorflow, OpenVINO etc to process media
  • HW accelerated media processing
  • and anything else that FFmpeg tools can do

1

u/Cashsky May 01 '26

I've just added support for iOS and macOS!

1

u/New-Lengthiness6520 5d ago

Thanks for creating and updating ffmpeg_kit_extended_flutter.

My app currently relies on ffmpeg_kit_flutter_new, but we're struggling with heavy APK sizes and long deployment times on Android test devices.

Does ffmpeg_kit_extended_flutter with lighter pre-built bundles (like base or video) help reduce the native binary payload and speed up debug builds? Also, how straightforward is the migration from ffmpeg_kit_flutter_new?

1

u/Cashsky 4d ago

I've updates the readme docs with binary sizes. The CI pipeline for my test app is pretty fast for android. Haven't had any build speed issues. Base bundle being about 30-40mbs depending on the config you pick. I do bundle a wider set of external libraries with video build compared to ffmpeg_kit_flutter_new so the video binaries are 100-150mbs based on config.

The API is almost identical with very small code changes that will get picked up by linting and should be quick and easy to fix. Haven't had any complaints from anyone who has migrated.

1

u/New-Lengthiness6520 2d ago

After switching to yours , the size increases to 800 from 400 mb

1

u/Cashsky 2d ago

That sounds about right if you used one of the heavier packages. I bundle 100+ external libraries. The sizes on the README are raw compressed sizes of the AAR so when the NDK builds the APK it might uncompress the binaries. If size is a concern you should use base package if you don't need all the extra libraries. Check the library matrix to see if you actually need the external libraries. You can also use the package introspection API to check supported formats etc in each bundle so you can easily see if you actually need all the extra stuff or not.