-
Notifications
You must be signed in to change notification settings - Fork 25
Linux Prerequisites
This page lists the tools required to build FFmpegKitNext for Linux.
For build commands, see Building Linux. For Linux build options, see nix‐linux.sh.
Linux builds currently target x86_64 Linux hosts.
Install Nix on an x86_64 Linux host.
The Linux Nix profile name is generated from the host glibc version. Use:
./nix-linux.sh --list-profiles
The printed Linux profile provides the compiler toolchain and host build tools used by the build scripts, including clang, llvm, lld, libclang, gcc, autoconf, automake, libtool, pkg-config, gettext, cmake, bison, meson, ninja, nasm, yasm, gperf, python3, perl, ruby, make, patch, curl, wget, git, zip, unzip, tar, gzip, xz, rsync, tcl, texinfo, ragel, groff and gtk-doc.
No separate compiler, Autotools, CMake, Meson, Ninja, pkg-config or gettext installation is normally required when using this profile.
Linux --enable-linux-* options use system development packages through pkg-config. If you enable one of those options, install the corresponding system -dev package on the host.
Direct Linux builds are supported on x86_64 Linux. You must install and maintain the compiler toolchain and host build tools yourself.
Install the host build tools used by the scripts. Package names vary by distribution, but the tools are:
bash git curl wget zip unzip tar gzip xz make sed grep which autoconf automake libtool pkg-config gettext cmake bison meson ninja nasm yasm gperf python3 perl ruby patch file find doxygen clang llvm lld gcc gawk rsync tcl texinfo ragel groff gtk-doc
RapidJSON is downloaded by scripts/start-linux.sh; a distro-provided RapidJSON development package is not required for the normal build flow.
Install these development packages only when enabling the matching --enable-linux-* option. Debian/Ubuntu package names are shown as examples.
| Build option | Debian/Ubuntu package examples |
|---|---|
--enable-linux-alsa |
libasound2-dev |
--enable-linux-fontconfig |
libfontconfig1-dev |
--enable-linux-freetype |
libfreetype-dev |
--enable-linux-fribidi |
libfribidi-dev |
--enable-linux-gmp |
libgmp-dev |
--enable-linux-gnutls |
libgnutls28-dev |
--enable-linux-harfbuzz |
libharfbuzz-dev |
--enable-linux-lame |
libmp3lame-dev |
--enable-linux-libass |
libass-dev |
--enable-linux-libiconv |
provided by glibc on Debian/Ubuntu; no separate package is normally needed |
--enable-linux-libtheora |
libtheora-dev |
--enable-linux-libvorbis |
libvorbis-dev |
--enable-linux-libvpx |
libvpx-dev |
--enable-linux-libwebp |
libwebp-dev |
--enable-linux-libxml2 |
libxml2-dev |
--enable-linux-opencl |
ocl-icd-opencl-dev, opencl-headers
|
--enable-linux-opencore-amr |
libopencore-amrnb-dev, libopencore-amrwb-dev
|
--enable-linux-opus |
libopus-dev |
--enable-linux-sdl |
libsdl2-dev |
--enable-linux-shine |
libshine-dev |
--enable-linux-snappy |
libsnappy-dev |
--enable-linux-soxr |
libsoxr-dev |
--enable-linux-speex |
libspeex-dev |
--enable-linux-tesseract |
libtesseract-dev |
--enable-linux-twolame |
libtwolame-dev |
--enable-linux-vaapi |
libva-dev |
--enable-linux-v4l2 |
libv4l-dev |
--enable-linux-vo-amrwbenc |
libvo-amrwbenc-dev |
--enable-linux-zlib |
zlib1g-dev |
--enable-linux-libvidstab |
libvidstab-dev |
--enable-linux-rubberband |
librubberband-dev |
--enable-linux-x265 |
libx265-dev |
--enable-linux-xvidcore |
libxvidcore-dev |
Copyright (c) 2026 FFmpegKitNext
- Status
- Versions
- Changelog
- Project Layout
- Using
- Building
- External Libraries
- Patents
- License