Skip to content
This repository has been archived by the owner on Oct 7, 2021. It is now read-only.

External Libraries

Taner Şener edited this page Jul 24, 2020 · 21 revisions

This project contains source code of MobileFFmpeg, FFmpeg and the following external libraries. MobileFFmpeg top level build scripts (android.sh, ios.sh and tvos.sh) compile these external libraries according to the build options provided.

Additionally, there are libraries with GPL license which are also supported by the top level build scripts. Their source code is not included in the repository and downloaded when enabled. If any of them is enabled, MobileFFmpeg is subject to the GPL v3.0 license.

External Libraries

These libraries are supported by FFmpeg and needs to be compiled before FFmpeg, when enabled. Below you can see the list of external libraries included and dependencies between them. Their versions can be found in the Versions page.

  • chromaprint
  • fontconfig
    • depends libuuid, expat, libiconv, freetype
  • freetype
    • depends libpng
  • fribidi
  • gmp
  • gnutls
    • depends nettle, gmp, libiconv
  • kvazaar
  • lame
    • depends libiconv
  • libaom
  • libass
    • depends freetype, fribidi, fontconfig, libiconv, libuuid, expat
  • libiconv
  • libilbc
  • libtheora
    • depends libogg, libvorbis
  • libvorbis
    • depends libogg
  • libvpx
  • libwebp
    • depends giflib, libjpeg / libjpeg-turbo, libpng, tifflib
  • libxml2
    • depends libiconv
  • opencore-amr
  • openh264
  • opus
  • sdl
  • shine
  • snappy
  • soxr
  • speex
  • tesseract
    • depends leptonica
  • twolame
    • depends libsndfile
  • vo-amrwbenc
  • wavpack

External Libraries with GPL License

These libraries are supported by FFmpeg and requires --enable-gpl option to be set explicitly.

  • rubberband
    • depends libsamplerate
  • libvid.stab
  • x264
  • x265
  • xvidcore

Supplementary Packages

Supplementary packages are libraries required to compile external libraries. When top level scripts build an external library, its supplementary packages are built first before the external library itself.

  • expat
  • giflib
  • leptonica
    • depends giflib, libjpeg-turbo, libpng, libwebp, tiff
  • libjpeg
  • libjpeg-turbo
  • libogg
  • libpng
  • libsndfile
  • libsamplerate
  • libuuid
  • nettle
    • depends gmp
  • tiff
    • depends libjpeg / libjpeg-turbo

expat

Since v1.1, fontconfig and libass depends on expat instead of libxml2.

libjpeg-turbo

Starting from v2.x, libjpeg is replaced with libjpeg-turbo. Both libwebp and tiff depends on it. libjpeg-turbo is a libjpeg fork which uses SIMD instructions to accelerate JPEG operations.

libiconv

Since v4.3.1, libiconv external library is only used on Android platform. iOS and tvOS platforms use libiconv system library.

libuuid

Since v4.3.2, libuuid external library is only used on Android platform. iOS and tvOS platforms use libuuid system library.

vo-amrwbenc

Starting from v4.4.LTS and v4.4, libopencore-amrwb which provides an amr-wb decoder is replaced with vo-amrwbenc external library. vo-amrwbenc includes VisualOn AMR-WB encoder.

Clone this wiki locally