Compile FFmpeg with JACK Audio Support

This guide provides a straightforward, step-by-step walkthrough on how to compile FFmpeg from source with support for the JACK Audio Connection Kit. You will learn how to install the required dependencies, configure the build with the correct flags, and compile the binaries to enable low-latency audio routing in your FFmpeg workflows.

Step 1: Install Required Dependencies

Before compiling FFmpeg, you must install the build tools and the JACK development libraries.

On Ubuntu / Debian systems, run:

sudo apt update
sudo apt install build-essential yasm pkg-config libjack-jackd2-dev git

On Fedora / RHEL systems, run:

sudo dnf groupinstall "Development Tools"
sudo dnf install yasm pkgconfig jack-audio-connection-kit-devel git

On Arch Linux, run:

sudo pacman -Syu base-devel yasm pkgconf jack2 git

Step 2: Clone the FFmpeg Source Code

Clone the official FFmpeg Git repository to your local machine and navigate into the directory:

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

If you prefer a stable release over the latest development snapshot, checkout a specific release branch:

git checkout release/7.0

Step 3: Configure FFmpeg with JACK Support

To enable JACK support, you must pass the --enable-libjack flag to the configure script. Because the JACK library is licensed under the GPL, you must also include the --enable-gpl flag.

Run the configure command:

./configure --enable-gpl --enable-libjack

Note: You can append other configuration flags (like --enable-nonfree or --enable-libmp3lame) depending on your specific format requirements.

Verify the command output. If the script finishes without errors, your system is ready for compilation. If it fails, ensure pkg-config can locate your JACK installation.

Step 4: Compile and Install

Compile the source code using multiple CPU cores to speed up the process. Replace $(nproc) with the number of CPU cores you wish to allocate:

make -j$(nproc)

Once the compilation is complete, install the binaries to your system:

sudo make install

Step 5: Verify the Installation

To confirm that FFmpeg was compiled successfully with JACK support, check the available input and output devices:

ffmpeg -devices

Look for jack in the printed list. It should appear as both an input and an output device, similar to this:

 Devices:
  D. = Demuxing supported
  .E = Muxing supported
 --
  D  jack            JACK Audio Connection Kit
   E jack            JACK Audio Connection Kit