ffmpeg_kit_flutter_new 4.6.7 copy "ffmpeg_kit_flutter_new: ^4.6.7" to clipboard
ffmpeg_kit_flutter_new: ^4.6.7 copied to clipboard

FFmpeg Kit for Flutter with Full GPL and updated bindings. Supports Android, iOS, macOS and Windows platforms.

4.6.7 #

  • Fixed: macOS release builds and App Store archives failed at code signing (#170). The prebuilt 8.1.2 iOS and macOS framework zips on the GitHub releases, which versions 4.4.2 to 4.6.6 download, contained macOS metadata files (._* AppleDouble files) inside every framework. codesign refuses to sign a macOS framework with extra files in its root, so macOS builds through CocoaPods failed at the app's CodeSign step with code object is not signed at all and In subcomponent: .../<one of the frameworks>.framework. iOS builds through CocoaPods still worked, but the files were copied into the app and sealed into its signature. macOS builds that use Swift Package Manager were not affected.
  • The release zips have been repacked without those files. Everything else in them is byte-identical, so those versions work once the frameworks are downloaded again: delete <pub-cache>/hosted/pub.flutter-io.cn/ffmpeg_kit_flutter_new-<version>/macos/Frameworks (and ios/Frameworks), then run flutter clean and flutter build macos --release (or ios) before archiving in Xcode. After flutter clean, flutter pub get and pod install alone are not enough for an Xcode archive. Upgrading to this version also downloads the frameworks fresh, on the next flutter build. scripts/setup_macos.sh and scripts/setup_ios.sh now also delete ._* files after unzipping, so a zip like that can no longer break a build.
  • Fixed: iOS and macOS crashed with -[NSNull allKeys] when the font name map was omitted (#167). Calling FFmpegKitConfig.setFontDirectory or setFontDirectoryList without the optional map, or with null, aborted the app. Omitting it now behaves like passing an empty map. No changes to the native libraries.
  • Maintainers: new scripts/check_apple_zip.sh, a release gate for the Apple framework zips. It rejects ._* and __MACOSX entries, missing frameworks and wrong bundle layouts, and checks that the frameworks sign the way CocoaPods and Xcode sign them. scripts/build_spm_artifacts.sh now strips ._* files, runs that gate on the frameworks it packages, zips without extended attributes, and fails if a packed xcframework zip still has ._* or __MACOSX entries.
  • Tests: scripts/tests/test_apple_setup.sh is an offline regression test that runs the real setup scripts on zips packed the way the affected ones were (#170). example/integration_test/font_directory_test.dart calls both methods with and without a map and checks the fonts.conf they write (#167).

4.6.6 #

  • Android: the plugin no longer applies the Kotlin Gradle Plugin (#168, #171). The plugin's Android code is Java only, so android/build.gradle no longer applies kotlin-android or adds the Kotlin Gradle Plugin to its build script. This removes Flutter's warning that the plugin applies the Kotlin Gradle Plugin (KGP), and fixes the build failure Failed to apply plugin 'kotlin-android' in apps that use Android Gradle Plugin 9 with built-in Kotlin (android.builtInKotlin=true). Apps on Android Gradle Plugin 8 are unaffected. No changes to the plugin's API or native libraries.
  • README: the Android minimum no longer lists a Kotlin version, since the plugin no longer uses Kotlin.

4.6.5 #

  • Android: corrected Maven metadata. The plugin now depends on com.antonkarpenko:ffmpeg-kit-full-gpl:2.2.3. Its native libraries are byte-identical to the previous release (FFmpeg n8.1.2); only the POM changed. The POM no longer describes the libraries as "FFmpeg v8.1.1", and its project and SCM URLs point to the real source repository. No other changes.

4.6.4 #

  • Windows: the bundled DLLs keep ASLR. Earlier versions ran editbin on every bundled DLL to turn off address space layout randomization (DYNAMIC_BASE, HIGH_ENTROPY_VA) and rebase it below 4 GB. That guarded against MinGW 32-bit pseudo-relocations overflowing when DLLs load far apart, but the published 8.1.2 bundles contain no 32-bit pseudo-relocations, so the DLLs are now shipped exactly as built. Builds also no longer need MSVC's editbin. Existing build directories download the bundle once more to replace the previously patched copies.
  • If you build against your own bundle (FFMPEGKIT_LOCAL_DIR) and need the old behaviour, set FFMPEGKIT_DISABLE_ASLR=ON, either as an environment variable before flutter build windows or as a CMake cache variable.

4.6.3 #

  • Windows: the app now ships the native libraries' license notices. The prebuilt FFmpeg 8.1.2 Windows bundle now includes LICENSES/, covering FFmpeg, FFmpegKit and every bundled third-party DLL with a link to its exact source. The plugin installs it into licenses/ffmpeg_kit_flutter_new/ next to your executable. Existing build directories download the bundle once more to pick it up. The DLLs themselves are unchanged.
  • Fixed: native errors bypassed the plugin's error handling. The async API methods returned the platform call from inside their try block without awaiting it, so a PlatformException from the native side skipped the catch and reached your code unwrapped. They now await it, and these failures arrive as the documented "<method> failed." error. If you were catching PlatformException from these methods, catch the returned error instead.

4.6.2 #

  • Fixed: Windows build failure Cannot extract through symlink ... .plugin_symlinks (#165). The prebuilt FFmpeg archive was unpacked into the plugin's own source directory. For a package resolved from the pub cache that directory is reached through a symlink, and the extractor refuses to write through it. The archive now unpacks into the application's build directory instead.
  • The same change stops the plugin writing ~19 MB of native libraries into the shared pub cache on every platform. flutter clean never removed those; to reclaim the space delete <pub-cache>/hosted/pub.flutter-io.cn/<package>-<version>/{linux,windows}/ffmpeg-kit or run dart pub cache repair. The archive is now fetched once per build configuration rather than once per machine.

4.6.1 #

  • Fixed: FFmpegKitConfig.getPlatform() returned windows on Linux. The Linux native layer was reporting the wrong platform name, so any code branching on it took the Windows path. It now returns linux. The prebuilt libraries attached to the 8.1.2-<variant> release have been rebuilt with the fix; nothing else changed.

4.6.0 #

  • Linux support (x86_64). flutter run -d linux and flutter build linux now work. Prebuilt FFmpeg 8.1.2 libraries for the full-gpl variant are downloaded at build time, the same way the Windows bundle already worked; set FFMPEGKIT_LOCAL_DIR (env or CMake cache variable) to build against a self-built bundle instead.
  • Linux builds additionally require libjson-glib-dev (runtime: libjson-glib) alongside Flutter's standard Linux prerequisites. It ships with GNOME, so most desktops already have the runtime.

4.5.3 #

  • Fixed: log/statistics/complete callbacks silently dropped in apps with a second FlutterEngine (e.g. a Firebase Messaging background isolate), a 4.4.1+ regression (#163). FFmpegKit's global native callbacks are now registered once and dispatched to every attached engine that is actually listening, instead of being captured by whichever engine attached last. Background-isolate execution (#155) keeps working.

4.5.2 #

  • Fixed: App Store rejection Invalid architecture ... arm64e slice with the ios 18.5 SDK (#164). The iOS device slices of the bundled FFmpeg XCFrameworks are now arm64 only, for both Swift Package Manager (regenerated binary targets + checksums) and CocoaPods (setup script). arm64e was never used by App Store apps, so nothing is lost.

4.5.1 #

  • Fixed the iOS/macOS build error 'ffmpegkit/FFmpegKitConfig.h' file not found (#88). The framework setup scripts now download and install atomically, verify the archive, and never leave an empty Frameworks/ directory behind after a failed download; the podspec re-runs setup until the frameworks are actually present. On restricted networks, point FFMPEG_KIT_IOS_URL / FFMPEG_KIT_MACOS_URL at a mirror of the release zip.
  • Docs: made the FFmpeg badge a link and tidied the README badges.

4.5.0 #

  • Swift Package Manager support (iOS & macOS): the plugin now integrates via Flutter's SPM support (flutter config --enable-swift-package-manager; enabled by default from Flutter 3.44) as well as CocoaPods. Native FFmpeg frameworks are consumed as prebuilt, checksum-pinned XCFrameworks with a native arm64 iOS-simulator slice, downloaded from the GitHub release.
  • iOS/macOS plugin sources moved to the Flutter SPM plugin layout; CocoaPods integration is unchanged (and still supported).
  • Example app now includes runtime integration tests (example/integration_test/).

4.4.2 #

  • Fixes the native binary wiring for the CVE-2026-8461 (MagicYUV / "PixelSmash") security patch: Android now pulls com.antonkarpenko:ffmpeg-kit-*:2.2.1 and iOS/macOS fetch the FFmpeg 8.1.2 frameworks (the 8.1.2 rebuild was previously only wired for Windows). Please upgrade from any earlier version.

4.4.1 #

  • Security (CVE-2026-8461): updated FFmpeg to v8.1.2 (arthenica n8.1.2) to fix a heap out-of-bounds write in the MagicYUV decoder ("PixelSmash", CVSS 8.8). All platforms (Android/iOS/macOS/Windows) rebuilt against FFmpeg 8.1.2; no API changes.

4.4.0 #

  • Updated FFmpeg to v8.1.1 (arthenica n8.1.1), up from 8.0.0.
  • iOS/macOS .xcframeworks, the Android Maven library (com.antonkarpenko:ffmpeg-kit-*), and the Windows binaries are now built against FFmpeg 8.1.1.

4.3.2 #

  • Android: broadened the bundled ProGuard/R8 consumer rules to keep all com.antonkarpenko.ffmpegkit.** classes (plus -dontwarn), not just the JNI entry points. Fully prevents R8 from stripping FFmpegKit in release builds — fixes the release-only white screen / channel-error (FFmpegKit failing to initialise, which cascades into errors like shared_preferences getAll). Closes #158.

4.3.1 #

  • Android: ship ProGuard/R8 consumer rules (consumer-rules.pro, applied automatically via consumerProguardFiles) that keep the FFmpegKit JNI bindings — FFmpegKitConfig native/callback methods and AbiDetect. Prevents release-mode crashes such as Bad JNI version returned from JNI_OnLoad without requiring any ProGuard rules in your app. Thanks @niclasEX (#133).

4.3.0 #

  • Fixed iOS Simulator on Apple Silicon (arm64) support — required for Xcode 26 / iOS 26+ simulators. Builds previously failed with "The following target(s) do not support arm64 architecture, which is a requirement for Apple Silicon iOS 26+ simulators".
  • The downloaded iOS .framework bundles are now converted to .xcframeworks at build time (scripts/setup_ios.sh), exposing a native ios-arm64_x86_64-simulator slice alongside the ios-arm64_arm64e device slice. The simulator arm64 slice is produced by retagging the device arm64 slice's Mach-O build-version platform to iOS-Simulator via vtool.
  • The iOS podspec now vendors .xcframeworks and no longer excludes arm64 for the simulator (EXCLUDED_ARCHS[sdk=iphonesimulator*] is now i386 only).
  • If you previously added config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" to your app's ios/Podfile post_install hook as a workaround, remove it — it now prevents the simulator arm64 slice from linking.

4.2.2 #

  • Fixed the Windows release build: windows/ffmpeg_kit_flutter_plugin_c_api.cpp included the generated public header from the wrong package directory (ffmpeg_kit_flutter_new_full instead of ffmpeg_kit_flutter_new), so building the published package on Windows failed to find the header. Thanks @Nicoeevee (#159).

4.2.1 #

  • Fixed iOS/macOS pod install failure introduced in 4.2.0: the setup scripts (scripts/setup_ios.sh, scripts/setup_macos.sh, scripts/setup_android.sh) were published with Windows CRLF line endings, causing /bin/bash^M: bad interpreter: No such file or directory. Scripts are now forced to LF via .gitattributes so the published package is always packaged with Unix line endings (fixes #153).

4.2.0 #

  • Added Windows support (x86_64) with a genuine full-gpl FFmpeg 8.0 build (all 27 external libraries, GPL components enabled).
  • Native libraries are downloaded from the 8.0.0-full-gpl release; for local development point FFMPEGKIT_LOCAL_DIR (CMake cache var or environment) at a locally built bundle.
  • The bundled MinGW DLLs are rebased/ASLR-adjusted at build time and the full runtime dependency closure (gnutls, gmp, nettle, libxml2, lame, …) is shipped so the plugin loads standalone.

4.1.0 #

  • Fixed the FFmpeg 8.0 compatibility issue across all platforms. The problem was that all_channel_counts was being set AFTER the filter was created, but FFmpeg 8.0 requires it to be set DURING filter creation.

4.0.0 #

3.2.0 #

  • Upgraded freetype from 2.13.0 to 2.13.3
  • Upgraded harfbuzz from 8.0.1 to 11.3.3
  • Upgraded fontconfig from 2.16.2 to 2.17.1
  • Added support for harfbuzz library in order to support drawtext filter
  • Fixed missing libunibreak for libass.sh

3.1.0 #

  • Updated README.md with new package links
  • Uploaded new binary with Kotlin 1.8.22
  • Downgraded required Kotlin version in example project to 1.8.22
  • Formatted code

3.0.2 #

  • Updated README.md with new package links

3.0.1 #

  • Updated README.md with link to Minimal-GPL

3.0.0 #

  • FFmpeg v7.1.1
  • Multiple upgrade of internal libraries:
    • Nettle - from 3.8.2 to 3.10.2
    • SDL from 2.0.0 to 3.2.16
    • Libxml2 from 2.11.4 to 2.14.0
    • SRT from 1.5.2 to 1.5.4
    • Leptonica from 1.83.1 to 1.85.0
    • GnuTLS from 3.7.9 to 3.8.9
  • Cleaned up iOS and Macos .podspec code
  • Bumped Kotlin version to 2.2.0
  • Fixed iOS and MacOS dowload scripts and added Videotoolbox support
  • New Android Full-GPL Maven Central dependency
  • Got rid of obsolete ffmpeg_kit_flutter_android package
  • Updated example project with Hardware, Software and Videotoolbox encoding commands

2.0.0 #

  • Uploaded updated Android .aar, compatible with Google 16 KB requirement
  • Updated setup_ios.sh script
  • Removed resource shrinking for Android
  • Updated setup_ios.sh script
  • Updated setup_android.sh script to include latest FFmpeg 7.0 kit
  • Upgraded ffmpeg_kit_flutter_android to 1.7.0
  • Merged @nischhalcodetrade fix for .aar post processing

1.6.1 #

  • Removed manual packaging of prebuilt dependencies for Android
  • Cleaned up unnecessary logs

1.6.0 #

  • Added new seamless Android .aar support

1.5.0 #

  • Added MacOS support by directly downloading and unpacking frameworks

1.4.1 #

  • Updated README.md

1.4.0 #

  • Added build.bat jni
  • Updated Gradle script in order to be able to download and unpack .aar on Windows.

1.3.0 #

  • Moved from FFmpeg http to full_gpl for Android
  • Added downloading and unpacking of 6.0.2 full-gpl .aar

1.2.1 #

  • Added displaying of Android platform to pub.flutter-io.cn
  • Fixed static analysis issues

1.2.0 #

  • New example project
  • Resurrected Android by creating new ffmpeg_kit_flutter_android library with com.arthenica:ffmpeg-kit-https:6.0-2.LTS implementation
  • iOS deployment target is increased to 14.0
  • Upgraded plugin_platform_interface version

1.1.0 #

  • Moved from https to full-gpl binding for MacOS
  • Upgraded Flutter and Dart versions

1.0.0 #

  • Initial release
  • Fixed Android and MacOS bindings
  • Upgraded FFmpegKitFlutterPlugin.java to work with Flutter 3.29
204
likes
160
points
39.2k
downloads

Documentation

API reference

Publisher

verified publisherantonkarpenko.com

Weekly Downloads

FFmpeg Kit for Flutter with Full GPL and updated bindings. Supports Android, iOS, macOS and Windows platforms.

Repository (GitHub)
View/report issues

License

LGPL-3.0 (license)

Dependencies

ffmpeg_kit_flutter_platform_interface, flutter

More

Packages that depend on ffmpeg_kit_flutter_new

Packages that implement ffmpeg_kit_flutter_new