This project builds the mpv library (libmpv) used by the fyom media center.
It is a fork of FengZeng/mpv (soia's mpv fork) with the
closed-source libsoia_utils runtime, the config.data license token, and the soia-specific
Vulkan render-context patch removed. The result is a clean GPLv2+ libmpv tarball producer
that fyom fully controls. See FORK-NOTES.md for the exact diff vs upstream.
It is designed for GitHub Actions CI, and can also be run locally for testing.
Each successful build generates a self-contained runtime package containing:
libmpvruntime library (.dylibon macOS,.dllon mingw64,.soon Linux)libmpvlink libraries on mingw64 (.lib/.a/.dll.a, when generated)- all non-system runtime dynamic dependencies (recursive)
- Linux package includes runtime dependencies recursively (excluding core glibc/loader libraries)
- rewritten install names (
@rpath) and runtime search path (@loader_path) on macOS - SHA256 checksum file
This package is intended to run without requiring Homebrew on the target machine.
Download source and build:
bash ./install-vcpkg-deps.sh
bash ./build-ffmpeg.sh
bash ./download.sh
bash ./build-macos.shBuild a specific mpv version:
MPV_VERSION=0.41.0 bash ./download.sh
bash ./build-ffmpeg.sh
bash ./build-macos.shinstall-vcpkg-deps.sh bootstraps vcpkg and pins it to tag 2026.04.27 by default. Override with VCPKG_REF=... only when intentionally updating the dependency baseline.
Build an x64 macOS library on an arm64 macOS host:
VCPKG_TARGET_TRIPLET=x64-osx-mp bash ./install-vcpkg-deps.sh
bash ./download.sh
MPV_TARGET_ARCH=x86_64 VCPKG_TARGET_TRIPLET=x64-osx-mp bash ./build-ffmpeg.sh
MPV_TARGET_ARCH=x86_64 VCPKG_TARGET_TRIPLET=x64-osx-mp bash ./build-macos.sh
MPV_TARGET_ARCH=x86_64 VCPKG_TARGET_TRIPLET=x64-osx-mp \
bash ./package-macos-runtime.sh --pkg-name libmpv-local-macos-x86_64The x64 dependency install uses vcpkg_installed/x64-osx-mp, separate from the default arm64 triplet.
Build a local runtime package:
bash ./package-macos-runtime.sh --pkg-name libmpv-local-macosDownload source and build in MSYS2 MINGW64 shell:
bash ./download.sh
bash ./build-ffmpeg.sh
bash ./build-mingw64.shBuild a local runtime package:
bash ./package-mingw64-runtime.sh --pkg-name libmpv-local-windows-mingw64-x86_64Install dependencies on Ubuntu/Debian (example):
sudo apt-get update
sudo apt-get install -y \
build-essential git curl python3 meson ninja-build pkg-config nasm \
libfreetype-dev libfribidi-dev liblcms2-dev libluajit-5.1-dev \
libass-dev libopus-dev librubberband-dev \
zlib1g-dev libbz2-dev liblzma-dev \
libpipewire-0.3-dev libpulse-dev \
libxss-dev libxpresent-dev \
libwayland-dev wayland-protocols libxkbcommon-dev \
libarchive-dev libbluray-dev libcdio-paranoia-dev libdvdnav-dev \
libzimg-dev libplacebo-dev libvulkan-dev patchelfDownload source and build:
export PATH="$PWD/vendor/meson-bin:$PATH"
bash ./ensure-meson.sh
bash ./download.sh
bash ./build-ffmpeg.sh
bash ./build-linux.shBuild a local runtime package:
bash ./package-linux-runtime.sh --pkg-name libmpv-local-linux