# FFmpegKit ![GitHub release](https://img.shields.io/badge/release-v4.4-blue.svg) ![Maven Central](https://img.shields.io/maven-central/v/com.arthenica/ffmpeg-kit-min) ![CocoaPods](https://img.shields.io/cocoapods/v/ffmpeg-kit-min) [![Build Status](https://travis-ci.org/tanersener/ffmpeg-kit.svg?branch=master)](https://travis-ci.org/tanersener/ffmpeg-kit) FFmpeg Kit for applications. ### 1. Features - Scripts to build FFmpeg libraries - `FFmpegKit` wrapper library to run `FFmpeg`/`FFprobe` commands in applications - Supports - Android, iOS, macOS and tvOS - FFmpeg `v4.4-dev` - 29 external libraries `chromaprint`, `dav1d`, `fontconfig`, `freetype`, `fribidi`, `gmp`, `gnutls`, `kvazaar`, `lame`, `libaom`, `libass`, `libiconv`, `libilbc`, `libtheora`, `libvorbis`, `libvpx`, `libwebp`, `libxml2`, `opencore-amr`, `openh264`, `opus`, `sdl`, `shine`, `snappy`, `soxr`, `speex`, `tesseract`, `twolame`, `vo-amrwbenc` - 5 external libraries with GPL license `rubberband`, `vid.stab`, `x264`, `x265`, `xvidcore` - Parallel command execution - 8 prebuilt binary packages available at [Github](https://github.com/tanersener/ffmpeg-kit/releases), [Maven Central](https://search.maven.org) and [CocoaPods](https://cocoapods.org). - Licensed under `LGPL 3.0`, or `GPL v3.0` if GPL licensed libraries are enabled ### 2. Build Scripts Use `android.sh`, `ios.sh`, `macos.sh` and `tvos.sh` to build `FFmpegKit` for each platform. All four scripts support additional options to enable external libraries or disable platform architectures. Refer to `Android` page for `Android` devices and `Apple` page for `iOS`, `macOS`, `tvOS` devices to see the prerequisites for each platform. ### 3. 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 has a `Java` API and `Apple` libraries (`iOS`, `macOS`, `tvOS`) have an `Objective-C` API, which are identical. ### 4. Binary Packages There are eight different `ffmpeg-kit` packages distributed on [Github](https://github.com/tanersener/ffmpeg-kit/releases), [Maven Central](https://search.maven.org) and [CocoaPods](https://cocoapods.org). Below you can see which system libraries and external libraries are enabled in each of package. 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 |
dav1d fontconfig freetype fribidi kvazaar libass libiconv libtheora libvpx libwebp snappy |
dav1d 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 |
dav1d 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 |
android system libraries | zlib MediaCodec |
|||||||
ios system libraries | bzip2 AudioToolbox AVFoundation iconv VideoToolbox zlib |
|||||||
macos system libraries | bzip2 AudioToolbox AVFoundation Core Image iconv OpenCL OpenGL VideoToolbox zlib |
|||||||
tvos system libraries | bzip2 AudioToolbox iconv VideoToolbox zlib |