-
Notifications
You must be signed in to change notification settings - Fork 25
Host Support
Host support means the machine that runs the build scripts. It is separate from the platforms where the generated library can run.
Nix is the safest and recommended build path. The Nix wrappers enter a pinned nix develop profile and then call the matching direct script, such as scripts/start-android.sh or scripts/start-ios.sh. This keeps build tools, pkg-config, Autotools, Android SDK/NDK/CMake and other host inputs consistent across machines.
Nix does not make unsupported host combinations valid. Apple platform builds still require macOS with the required Xcode and SDKs installed. Windows and WSL are not recommended host environments for documented builds.
The project flake currently provides local Nix profiles for aarch64-darwin, x86_64-darwin and x86_64-linux.
| FFmpegKitNext library / output | Safe and recommended Nix host | Nix wrapper | Profile |
|---|---|---|---|
| Android | macOS or x86_64 Linux | ./nix-android.sh |
android-r27d |
| iOS / iPadOS | macOS | ./nix-ios.sh |
xcode26 |
| macOS | macOS | ./nix-macos.sh |
xcode26 |
| tvOS | macOS | ./nix-tvos.sh |
xcode26 |
| visionOS | macOS | ./nix-visionos.sh |
xcode26 |
| Apple umbrella xcframework | macOS | ./nix-apple.sh |
xcode26 |
| Linux | x86_64 Linux | ./nix-linux.sh |
Use the profile printed by --list-profiles
|
Use --list-profiles to see the profiles available on the current host:
./nix-android.sh --list-profiles
./nix-linux.sh --list-profilesThen pass the selected profile with -p or --profile:
./nix-android.sh -p android-r27d
./nix-ios.sh -p xcode26 -x
./nix-linux.sh -p <profile-from-list>Build options are passed after the profile in the same way as the direct scripts:
./nix-android.sh -p android-r27d --enable-libwebp
./nix-macos.sh -p xcode26 --enable-opensslUse Nix for normal builds, CI builds and when you are diagnosing host tool errors. Use direct scripts only when you intentionally want to use a manually maintained build environment.
The direct scripts remain supported. They are useful when the host already has a known-good toolchain or when you need to debug outside Nix. They are also more sensitive to local PATH, package manager, Android SDK/NDK, Xcode, compiler, pkg-config and Autotools differences.
| FFmpegKitNext library / output | Direct script | Supported non-Nix host |
|---|---|---|
| Android | ./scripts/start-android.sh |
Linux, macOS |
| Android | ./scripts/start-android.sh |
Windows: no1 |
| iOS / iPadOS | ./scripts/start-ios.sh |
macOS |
| macOS | ./scripts/start-macos.sh |
macOS |
| tvOS | ./scripts/start-tvos.sh |
macOS |
| visionOS | ./scripts/start-visionos.sh |
macOS |
| Apple umbrella xcframework | ./scripts/start-apple.sh |
macOS2 |
| Linux | ./scripts/start-linux.sh |
Linux |
Other direct-script host combinations should be treated as unsupported.
1 Building the Android library on native Windows is not officially supported. Some external libraries are not compatible with Windows Subsystem for Linux, maintaining Windows-specific patches is substantial, and Windows does not provide a single standard package manager for the required build prerequisites. Use a supported macOS or Linux host instead.
2 start-apple.sh and nix-apple.sh package existing Apple platform frameworks into an umbrella xcframework. They do not compile iOS, tvOS, macOS or visionOS libraries again. Build the platform-specific Apple frameworks first.
Copyright (c) 2026 FFmpegKitNext
- Status
- Versions
- Changelog
- Project Layout
- Using
- Building
- External Libraries
- Patents
- License