About this project

ffmpeg-kit-extended is a comprehensive Flutter and React Native plugin that wraps FFmpeg, FFprobe, and FFplay 9.0.1 APIs for mobile and desktop platforms. It uses Dart FFI to bind directly to native FFmpeg libraries, delivering high-performance media manipulation, information retrieval, and audio/video playback across Android, iOS, macOS, Linux, and Windows. Key capabilities include: - Cross-platform video playback with unified surface API (Android Surface, iOS/macOS CVPixelBuffer/Metal, Linux OpenGL, Windows) - Asynchronous and parallel command execution without blocking the UI thread - Real-time streaming of position and video dimensions for live playback monitoring - Full session lifecycle management (start, cancel, list sessions) - Detailed callbacks for logs, statistics, and completion events - Package introspection API to query version, build date, and available muxers, demuxers, encoders, decoders, filters - Support for custom native library loading and configuration - Deployable custom builds via the companion ffmpeg-kit-builders repository Pre-bundled builds are offered in five tiers: base (core only), audio, video, video_hw (hardware-accelerated video), and full (all platform-compatible libraries). The full bundle includes AI libraries such as libopenvino, libtensorflow, libonnxruntime, libtorch, whisper, and pocketsphinx on desktop platforms. A wide range of external libraries are supported across codecs (libx264, libx265, libvpx, libaom, libdav1d, etc.), streaming (libsrt, librist, librtmp), hardware acceleration (Vulkan, OpenCL, CUDA, VAAPI, VideoToolbox, MediaFoundation), and platform-specific frameworks (AVFoundation, MediaCodec, JNI). Platform support matrix: - Android (API 26+): armv7, arm64, x86_64; Flutter & React Native - iOS 13+ / tvOS 13+: arm64; Flutter & React Native (tvOS Flutter not supported) - macOS 13+: arm64, x86_64; Flutter & React Native - Linux (glibc 2.28+): x86_64; Flutter only - Windows 8+: x86_64; Flutter & React Native Bundle sizes vary by platform and tier (e.g., Android base ~30-38 MB, full ~113-170 MB; iOS base ~50-55 MB, full ~112-147 MB). GPL-licensed libraries are flagged; LGPL bundles are recommended for permissive licensing. The plugin is published on pub.dev (ffmpeg_kit_extended_flutter) and npm (ffmpeg-kit-extended).