All previously released ffmpeg-kit binaries will be removed according to the following schedule.
FFmpegKit Version
Available Until
Less than 6.0
February 1st, 2025
6.0
April 1st, 2025
Thank you for your support and interest in this project.
FFmpegKit is a collection of tools to use FFmpeg1 in Android, iOS, Linux, macOS, tvOS, Flutter and React Native applications.
It includes scripts to build FFmpeg native libraries, a wrapper library to run FFmpeg/FFprobe commands in
applications and 8 prebuilt binary packages available at Github,
Maven Central, CocoaPods, pub and npm.
1. Features
Scripts to build FFmpeg native libraries
FFmpegKit wrapper library to run FFmpeg/FFprobe commands in applications
Supports native platforms: Android, iOS, Linux, macOS and tvOS
Supports hybrid platforms: Flutter, React Native
Based on FFmpeg v4.5-dev or later with optional system and external libraries
Licensed under LGPL 3.0 by default, GPL v3.0 if GPL licensed libraries are enabled
2. Android
See Android to learn more about FFmpegKit for Android.
3. iOS, macOS, tvOS
See Apple to use FFmpegKit on Apple platforms (iOS, macOS, tvOS).
4. Flutter
See Flutter to learn more about FFmpegKit for Flutter.
5. Linux
See Linux to learn more about FFmpegKit for Linux.
6. React Native
See React Native to learn more about FFmpegKit for React Native.
7. Build Scripts
Use android.sh, ios.sh, linux.sh, macos.sh and tvos.sh to build FFmpegKit for each native platform.
All scripts support additional options to enable optional libraries and disable platform architectures. See
Building wiki page for the details.
8. FFmpegKit Library
FFmpegKit is a wrapper library that allows you to easily run FFmpeg/FFprobe commands in applications. It
provides additional features on top of FFmpeg to enable platform specific resources, control how commands are
executed and how the results are handled.
Android library of FFmpegKit has a Java API, Apple libraries (iOS, macOS, tvOS) have an Objective-C
API, Flutter library comes with a Dart API, Linux library has a C++ API and React Native library provides
a JavaScript API with Typescript definitions, which are identical in terms of features and capabilities.
9. Packages
There are eight different ffmpeg-kit packages distributed on
Github,
Maven Central, CocoaPods, pub and
npm.
Below you can see which system libraries and external libraries are enabled in each one of them.
Please remember that some parts of FFmpeg are licensed under the GPL and only GPL licensed ffmpeg-kit packages
include them.
min
min-gpl
https
https-gpl
audio
video
full
full-gpl
external libraries
-
vid.stab x264 x265 xvidcore
gmp gnutls
gmp gnutls vid.stab x264 x265 xvidcore
lame libilbc libvorbis opencore-amr opus shine soxr speex twolame vo-amrwbenc
VideoToolbox is not available on LTS releases of iOS and tvOS
zimg is supported since v4.5.1
10. Versions
FFmpegKit binaries generated use the same major and minor version numbers as the upstream FFmpeg project. The
third and last number in the version string, if exists, is specific to FFmpegKit. It shows different releases from
the same FFmpeg release branch.
dev part in the version string indicates that FFmpeg source code is cloned from the FFmpegmaster branch and
the exact version number of FFmpeg is obtained using the git describe --tags command.
FFmpegKit binaries are published in two release variants: Main Release and LTS Release.
Main releases include complete functionality of the library and support the latest SDK/API features.
LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.
This table shows the differences between two variants.
A more detailed documentation is available under Wiki.
13. Test Applications
You can see how FFmpegKit is used inside an application by running test applications created under
FFmpegKit Test project.
All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio,
burning subtitles, video stabilisation, pipe operations and concurrent command execution.
14. License
FFmpegKit library alone is licensed under the LGPL v3.0.
FFmpegKit bundles (.aar archives, frameworks, xcframeworks), which include both FFmpegKit and FFmpeg
libraries, are also licensed under the LGPL v3.0. However, if the source code is built using the optional
--enable-gpl flag or prebuilt binaries with -gpl postfix are used, then FFmpegKit bundles become subject to the
GPL v3.0. Because, FFmpeg is licensed under the GPL v3.0 in those bundles. And that makes the whole bundle
effectively subject to the GPL v3.0.
FFmpegKit build scripts always configure FFmpeg with --enable-version3 option. And never enable non-free
libraries. Thus, FFmpeg libraries created by FFmpegKit are licensed under the LGPL v3.0 by default. Only when
--enable-gpl is provided they become subject to GPL v3.0. That is how prebuilt binaries with -gpl postfix are
compiled.
Refer to Licenses to see the licenses of all libraries.
Trademark lists the trademarks used in the FFmpegKit
documentation.
15. Patents
It is not clearly explained in their documentation, but it is believed that FFmpeg, kvazaar, x264 and x265
include algorithms which are subject to software patents. If you live in a country where software algorithms are
patentable then you’ll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend
that you seek legal advice first. See FFmpeg Patent Mini-FAQ.
openh264 clearly states that it uses patented algorithms. Therefore, if you build ffmpeg-kit with openh264 and
distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to
OpenH264 FAQ page for the details.
16. Trademarks
1FFmpeg is a trademark of Fabrice Bellard. FFmpegKit is an independent project and not affiliated with the FFmpeg trademark holder.
FFmpegKit

Notice
FFmpegKit has been officially retired. There will be no further
ffmpeg-kitreleases.See Saying Goodbye to FFmpegKit @ medium to learn why we made this decision.
All previously released
ffmpeg-kitbinaries will be removed according to the following schedule.Thank you for your support and interest in this project.
FFmpegKitis a collection of tools to useFFmpeg1 inAndroid,iOS,Linux,macOS,tvOS,FlutterandReact Nativeapplications.It includes scripts to build
FFmpegnative libraries, a wrapper library to runFFmpeg/FFprobecommands in applications and 8 prebuilt binary packages available at Github, Maven Central, CocoaPods, pub and npm.1. Features
FFmpegKitwrapper library to runFFmpeg/FFprobecommands in applicationsv4.5-devor later with optional system and external librariesLGPL 3.0by default,GPL v3.0if GPL licensed libraries are enabled2. Android
See Android to learn more about
FFmpegKitforAndroid.3. iOS, macOS, tvOS
See Apple to use
FFmpegKitonAppleplatforms (iOS,macOS,tvOS).4. Flutter
See Flutter to learn more about
FFmpegKitforFlutter.5. Linux
See Linux to learn more about
FFmpegKitforLinux.6. React Native
See React Native to learn more about
FFmpegKitforReact Native.7. Build Scripts
Use
android.sh,ios.sh,linux.sh,macos.shandtvos.shto buildFFmpegKitfor each native platform.All scripts support additional options to enable optional libraries and disable platform architectures. See Building wiki page for the details.
8. FFmpegKit Library
FFmpegKitis a wrapper library that allows you to easily runFFmpeg/FFprobecommands in applications. It provides additional features on top ofFFmpegto enable platform specific resources, control how commands are executed and how the results are handled.Androidlibrary ofFFmpegKithas aJavaAPI,Applelibraries (iOS,macOS,tvOS) have anObjective-CAPI,Flutterlibrary comes with aDartAPI,Linuxlibrary has aC++API andReact Nativelibrary provides aJavaScriptAPI withTypescriptdefinitions, which are identical in terms of features and capabilities.9. Packages
There are eight different
ffmpeg-kitpackages distributed on Github, Maven Central, CocoaPods, pub and npm. Below you can see which system libraries and external libraries are enabled in each one of them.Please remember that some parts of
FFmpegare licensed under theGPLand onlyGPLlicensedffmpeg-kitpackages include them.x264
x265
xvidcore
gnutls
gnutls
vid.stab
x264
x265
xvidcore
libilbc
libvorbis
opencore-amr
opus
shine
soxr
speex
twolame
vo-amrwbenc
fontconfig
freetype
fribidi
kvazaar
libass
libiconv
libtheora
libvpx
libwebp
snappy
zimg
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vo-amrwbenc
zimg
fontconfig
freetype
fribidi
gmp
gnutls
kvazaar
lame
libass
libiconv
libilbc
libtheora
libvorbis
libvpx
libwebp
libxml2
opencore-amr
opus
shine
snappy
soxr
speex
twolame
vid.stab
vo-amrwbenc
x264
x265
xvidcore
zimg
MediaCodec
AudioToolbox
AVFoundation
iconv
VideoToolbox
zlib
AudioToolbox
AVFoundation
Core Image
iconv
OpenCL
OpenGL
VideoToolbox
zlib
AudioToolbox
iconv
VideoToolbox
zlib
AVFoundationis not available ontvOSVideoToolboxis not available on LTS releases ofiOSandtvOSzimgis supported sincev4.5.110. Versions
FFmpegKitbinaries generated use the same major and minor version numbers as the upstreamFFmpegproject. The third and last number in the version string, if exists, is specific toFFmpegKit. It shows different releases from the sameFFmpegrelease branch.devpart in the version string indicates thatFFmpegsource code is cloned from theFFmpegmasterbranch and the exact version number ofFFmpegis obtained using thegit describe --tagscommand.Apple
Apple
Apple
Apple
11. LTS Releases
FFmpegKitbinaries are published in two release variants:Main ReleaseandLTS Release.Main releases include complete functionality of the library and support the latest SDK/API features.
LTS releases are customized to support a wider range of devices. They are built using older API/SDK versions, so some features are not available on them.
This table shows the differences between two variants.
arm64-v8a
x86
x86-64
arm-v7a-neon
arm64-v8a
x86
x86-64
arm64-simulator
arm64-mac-catalyst
x86-64
x86-64-mac-catalyst
arm64
i386
x86-64
x86-64
x86-64
arm64-simulator
x86-64
12. Documentation
A more detailed documentation is available under Wiki.
13. Test Applications
You can see how
FFmpegKitis used inside an application by running test applications created under FFmpegKit Test project.All applications are identical and supports command execution, video encoding, accessing https urls, encoding audio, burning subtitles, video stabilisation, pipe operations and concurrent command execution.
14. License
FFmpegKitlibrary alone is licensed under theLGPL v3.0.FFmpegKitbundles (.aararchives,frameworks,xcframeworks), which include bothFFmpegKitandFFmpeglibraries, are also licensed under theLGPL v3.0. However, if the source code is built using the optional--enable-gplflag or prebuilt binaries with-gplpostfix are used, thenFFmpegKitbundles become subject to theGPL v3.0. Because,FFmpegis licensed under theGPL v3.0in those bundles. And that makes the whole bundle effectively subject to theGPL v3.0.FFmpegKitbuild scripts always configureFFmpegwith--enable-version3option. And never enable non-free libraries. Thus,FFmpeglibraries created byFFmpegKitare licensed under theLGPL v3.0by default. Only when--enable-gplis provided they become subject toGPL v3.0. That is how prebuilt binaries with-gplpostfix are compiled.Refer to Licenses to see the licenses of all libraries. Trademark lists the trademarks used in the
FFmpegKitdocumentation.15. Patents
It is not clearly explained in their documentation, but it is believed that
FFmpeg,kvazaar,x264andx265include algorithms which are subject to software patents. If you live in a country where software algorithms are patentable then you’ll probably need to pay royalty fees to patent holders. We are not lawyers though, so we recommend that you seek legal advice first. See FFmpeg Patent Mini-FAQ.openh264clearly states that it uses patented algorithms. Therefore, if you buildffmpeg-kitwithopenh264and distribute that library, then you are subject to pay MPEG LA licensing fees. Refer to OpenH264 FAQ page for the details.16. Trademarks
1
FFmpegis a trademark of Fabrice Bellard.FFmpegKitis an independent project and not affiliated with theFFmpegtrademark holder.17. Contributing
See our CONTRIBUTING guide.
18. See Also