-
Notifications
You must be signed in to change notification settings - Fork 183
Supported external libraries
Oleksandr Berezhnyi edited this page Jun 20, 2022
·
17 revisions
Currently the ffmpeg-android-maker supports only external libraries from the table below. The script automatically downloads their source code and builds according to specified script arguments.
External libraries don't depend on each other. You are free to enable only those you actually need.
Library name | Flag to enable | GPL | Notes |
---|---|---|---|
libaom | ‑‑enable‑libaom or ‑aom | No | The encoder in this library requires Android API at least 18 to be compiled (‑android=18). The decoder can be built with this argument set to 16. |
libbluray | ‑‑enable‑libbluray or ‑bluray | No | |
libdav1d | ‑‑enable‑libdav1d or ‑dav1d | No | Uses Meson build system. Certain versions of Meson can't build the library for reasons. 0.52.1 and 0.53.2 are ok.Also this library requires nasm >= 2.14 and ninja >= 1.9.If installing all necessary software is an issue for you check out the Docker support page. |
libfreetype | ‑‑enable‑libfreetype or ‑freetype | No | |
libfribidi | ‑‑enable‑libfribidi or ‑fribidi | No | |
libmp3lame | ‑‑enable‑libmp3lame or ‑mp3lame or ‑lame | No | |
libopus | ‑‑enable‑libopus or ‑opus | No | |
libspeex | ‑‑enable‑libspeex or ‑speex | No | |
libtwolame | ‑‑enable‑libtwolame or ‑twolame | No | Currently without libsndfile dependency. |
libvpx | ‑‑enable‑libvpx or ‑vpx | No | The FFmpeg itself supports decoders for VP8 and VP9 and they both have higher priority than libvpx_vp8 and libvpx_vp9. If native vp8 and vp9 aren't needed at all, then they can be disabled with --disable-decoder=vp8 and --disable-decoder=vp9 flags for FFMpeg's configure script. When LLVM is used for compilation the ‑android=21 flag is required. |
libwavpack | ‑‑enable‑libwavpack or ‑wavpack | No | |
libwebp | ‑‑enable‑libwebp or ‑webp | No, but | |
libx264 | ‑‑enable‑libx264 or ‑x264 | Yes | Enabling this library causes the output binaries and shared libraries of FFmpeg to be under GPL 2 license. |
To enable multiple supported external libraries (from the table above) you can add:
Flag | Meaning |
---|---|
‑‑enable‑all‑free or ‑all‑free | Enables all supported free libraries that don't change the license of result binaries. It remains LGPL 2.1. |
‑‑enable‑all‑gpl or ‑all‑gpl | Enables all supported libraries that do change the license of result binaries to GPL 2 or greater. |