I wanted to share my cross-platform open source project with the community. ffmpeg-kit-extended is a comprehensive Flutter and React-native plugin for executing FFmpeg, FFprobe, and FFplay 8.1.2 API commands on Android, iOS, macOS, tvOS, Linux, and Windows.
You can execute commands without needing to deploy any of the ffmpeg executables. Both Flutter and React-native link directly to automatically vendored library bundles.
- Cross-Platform Support: Works on Android, iOS, macOS, tvOS Linux, and Windows.
- FFmpeg,** FFprobe & FFplay: Latest 8.1.2 API support for media manipulation, information retrieval, audio/video playback, filters and anything else ffmpeg can do. No need to call ffmpeg library API directly. You can run front end ffmpeg commands directly by passing them as a string, making it easy to manipulate media without needing to learn full ffmpeg library API.
- 100+ external libraries supported: I currently publish at least 24 pre-built libraries (or universal/fatlibs/xcframework) for each platform/arch that allows you to pick from pre-sets of 100+ external libraries supporting both GPL, and LPG licensing.
- Video/Audio Playback: Complete cross-platform video playback with unified surface API.
- Real-time Streaming: Position and video dimension streams for live playback monitoring.
- Asynchronous Execution: Run long-running tasks without blocking the UI thread.
- Parallel Execution: Run multiple tasks in parallel.
- Callback Support: detailed hooks for logs, statistics, and session completion.
- Session Management: Full control over execution lifecycle (start, cancel, list).
- Extensible: Designed to allow custom native library loading and configuration.
- Full package Introspection API: Get detailed information about the package, including version, build date, and available muxers, demuxers, encoders, decoders, filters, etc.
- Deploy Custom Builds: You can deploy custom builds of ffmpeg-kit-extended. See: https://github.com/akashskypatel/ffmpeg-kit-builders
- Purce C API: Pure C API in addition to C++ so you can link directly to the library natively.
https://www.npmjs.com/package/ffmpeg-kit-extended
https://pub.dev/packages/ffmpeg_kit_extended_flutter
https://github.com/akashskypatel/ffmpeg-kit-extended
| Platform | Native | Flutter | React-native | Architecture | Minimum Requirements |
|---|---|---|---|---|---|
| Android (and Android TV) | ✅ Supported | ✅ Supported | ✅ Supported | armv7, arm64, x86_64 | API 26+ |
| iOS (and Simulator) | ✅ Supported | ✅ Supported | ✅ Supported | arm64 | iOS 13+ |
| tvOS (and Simulator) | ✅ Supported | ❌ Not Supported | ✅ Supported | arm64 | tvOS 13+ |
| macOS | ✅ Supported | ✅ Supported | ✅ Supported | arm64, x86_64 | macOS 13+ |
| Linux | ✅ Supported | ✅ Supported | ❌ Not Supported | x86_64 | glibc 2.28+ |
| Windows | ✅ Supported | ✅ Supported | ✅ Supported | x86_64 | Windows 8+ |

Top comments (1)
This fills a real hole. The original ffmpeg kit got retired and the prebuilt binaries went away with it, so people who had it in a shipped app woke up to a red CI and no upstream to ask.
Two things I would want in the readme before I put this in a store build. Which preset is the safe LGPL one, because shipping a GPL build to the App Store is the kind of problem you find out about late. And the rough apk and ipa size delta per preset. Media plugins are usually where the download size goes.