Skip to content

windows.sh

Taner Sener edited this page Aug 22, 2026 · 3 revisions

FFmpegKitNext for Windows is built with the windows.sh entrypoint in the project root:

./windows.sh [OPTION]... [VAR=VALUE]...

Run it from an MSYS2 shell. Specify environment variables as VARIABLE=VALUE to override default build options.

By default, the Windows build enables only the native architecture of the host machine: arm64 on arm64 hosts and x86-64 on x86-64 hosts. No optional external libraries are enabled by default. Only arm64 is supported for now; x86-64 is implemented but not yet tested.

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
--jobs=N Number of jobs to run, default is auto
--package-name=name Set the FFmpegKit package name in the native build
--no-ffmpeg-kit-protocols Disable custom ffkitmem and ffkitstream protocols
--no-static-mingw-runtime Ship required MinGW runtime DLLs in the bundle instead of linking the runtime statically

Licensing Options

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

Architectures

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

External Libraries

These options download and build the matching external library source. Dependencies are enabled automatically.

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

--enable-lib-all enables all non-GPL external library options. With --enable-gpl, it also enables GPL libraries.

GPL Libraries

These options require --enable-gpl.

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

Custom Libraries

Custom library indexes start at 1 and must be consecutive.

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

Advanced Options

Option Description
--reconf-lib-LIBRARY Run autoreconf before building LIBRARY
--redownload-lib-LIBRARY Download LIBRARY even if it is already downloaded
--rebuild-lib-LIBRARY Build LIBRARY even if it is already built
--disable-lib-LIBRARY Disable LIBRARY without disabling its dependencies
--disable-lib-with-deps-LIBRARY Disable LIBRARY and its dependencies
--lib-version-LIBRARY=n Override default LIBRARY version
--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
--no-link-time-optimization Disable link-time optimization

Clone this wiki locally