Skip to content

Linux Prerequisites

Taner Sener edited this page Jul 28, 2026 · 3 revisions

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 target the native architecture of the Linux host. Supported architectures are x86_64 and arm64.

Requirements With Nix

Install Nix on an x86_64 or arm64 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.

Requirements Without Nix

Direct Linux builds are supported on x86_64 and arm64 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-utils make sed grep which autoconf automake libtool pkg-config gettext cmake bison meson ninja-build nasm yasm gperf python3 perl ruby patch file find doxygen clang llvm lld gcc gawk rsync tcl texinfo ragel groff gtk-doc-tools

RapidJSON is downloaded by scripts/start-linux.sh; a distro-provided RapidJSON development package is not required for the normal build flow.

Optional System Libraries

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

Clone this wiki locally