Skip to content

nix macos.sh

Taner Sener edited this page Jul 28, 2026 · 1 revision

FFmpegKitNext uses these macOS entrypoints:

  • Recommended Nix wrapper: ./nix-macos.sh -p PROFILE [OPTION]... [VAR=VALUE]...
  • Direct script: ./scripts/start-macos.sh [OPTION]... [VAR=VALUE]...

The build options are the same for both entrypoints. The Nix wrapper also supports -p, --profile and --list-profiles.

By default, the macOS build enables arm64 and x86-64. No optional external libraries are enabled by default.

Usage with Nix:

./nix-macos.sh -p xcode26 [OPTION]... [VAR=VALUE]...

Usage without Nix:

./scripts/start-macos.sh [OPTION]... [VAR=VALUE]...

Specify environment variables as VARIABLE=VALUE to override default build options.

General Options

Option Description
-h, --help Display help and exit
-v, --version Display version information and exit
-d, --debug Build with debug information
-s, --speed Optimize for speed instead of size
-f, --force Ignore warnings
-x, --xcframework Build xcframework bundles instead of framework bundles
--spm Create a local Package.swift next to xcframeworks; requires -x
--jobs=N Number of jobs to run, default is auto
--target=version Override minimum macOS deployment target, default is 10.15
--no-ffmpeg-kit-protocols Disable custom ffkitmem and ffkitstream protocols

Nix Wrapper Options

Option Description
-p PROFILE, --profile PROFILE Nix develop profile to use
--list-profiles List local Nix develop profiles

Licensing Options

Option Description
--enable-gpl Allow building GPL libraries. Created binaries will be licensed under GPL v3.0

Architectures

Option Description
--disable-arm64 Do not build arm64
--disable-x86-64 Do not build x86-64

Platform Libraries

--enable-macos-audiotoolbox
--enable-macos-avfoundation
--enable-macos-bzip2
--enable-macos-videotoolbox
--enable-macos-zlib
--enable-macos-libiconv
--enable-macos-coreimage
--enable-macos-opencl
--enable-macos-opengl

Common External Libraries

Each option enables the matching external library.

--full
--enable-chromaprint
--enable-dav1d
--enable-fontconfig
--enable-freetype
--enable-fribidi
--enable-gmp
--enable-gnutls
--enable-harfbuzz
--enable-kvazaar
--enable-lame
--enable-libaom
--enable-libass
--enable-libjxl
--enable-liblc3
--enable-libsvtav1
--enable-libilbc
--enable-libtheora
--enable-libvorbis
--enable-libvpx
--enable-libwebp
--enable-libxml2
--enable-opencore-amr
--enable-openh264
--enable-openssl
--enable-opus
--enable-sdl
--enable-shine
--enable-snappy
--enable-soxr
--enable-speex
--enable-srt
--enable-tesseract
--enable-twolame
--enable-vo-amrwbenc
--enable-vvenc
--enable-zimg

--full enables all non-GPL external libraries. With --enable-gpl, it also enables GPL libraries.

GPL Libraries

These options require --enable-gpl.

--enable-libvidstab
--enable-rubberband
--enable-x264
--enable-x265
--enable-xvidcore

Custom Libraries

Custom library indexes start at 1 and must be consecutive.

Option Description
--enable-custom-library-[n]-name=value Name of the custom library
--enable-custom-library-[n]-repo=value Git repository of the source code
--enable-custom-library-[n]-repo-commit=value Git commit to download
--enable-custom-library-[n]-repo-tag=value Git tag to download
--enable-custom-library-[n]-package-config-file-name=value Package config file installed by the custom build script
--enable-custom-library-[n]-ffmpeg-enable-flag=value Library name used by FFmpeg configure
--enable-custom-library-[n]-license-file=value License file path relative to the library source folder

Advanced Options

Option Description
--reconf-LIBRARY Run autoreconf before building LIBRARY
--redownload-LIBRARY Download LIBRARY even if it is already downloaded
--rebuild-LIBRARY Build LIBRARY even if it is already built
--skip-LIBRARY Skip LIBRARY during the build
--disable-lib-LIBRARY Disable LIBRARY after enabled-library resolution
--version-LIBRARY=n Override default LIBRARY version
--no-framework Do not build framework or xcframework bundles
--no-output-redirection Print build output directly instead of redirecting detailed output to build.log
--no-workspace-cleanup-LIBRARY Keep LIBRARY workspace files after the build
--extra-cflags=value Append extra C compiler flags
--extra-cxxflags=value Append extra C++ compiler flags
--extra-ldflags=value Append extra linker flags

Clone this wiki locally