Use Github Action to build apps for Windows with latest commit.
- mpv (with libsixel)
- mpv-menu-plugin
- mpv-debug-plugin
- ffmpeg (with frei0r, vmaf, opencl)
- aria2
- curl
- mediainfo
- libmediainfo
- svtav1-psy (with libdovi, libhdr10plus)
Note
x86-64 version is built with PGO to improve performance.
x86-64 build is integrated with mimalloc by default, but aarch64 build needs to run minject-arm64 manually, otherwise it will still use the system malloc.
The x86-64-v4 build uses rocketlake as the ISA baseline, but chooses the znver5 scheduling model (512bit vector width), so it can be used for rocketlake, tigerlake, znver4, znver5. However, due to DownFall mitigation (mandatory since 24H2) and AVX512 downclocking, performance regression is expected on Intel MSDT series CPUs.
The x86-64-v3 build uses skylake as the ISA baseline and applies compiler mitigation (-mno-gather
) to avoid the performance penalty of the DownFall microcode mitigation.
libmpv can't use mimalloc, the only alternative is system-wide Segment Heap:
reg add “HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Segment Heap” /v Enabled /t REG_DWORD /d 1 /f
The mpv is built with consoleAllocationPolicy, so make sure to use Windows 11 24H2 or higher otherwise you will see a console when starting mpv.
The profdata used by PGO is generated manually, so it usually only scrolls every few weeks, during which time there might be random performance regressions.
If LargePages support is enabled on your system, mimalloc will automatically use it, and you can also enable LargePages for exe:
reg add “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\mpv.exe” /v UseLargePages /t REG_DWORD /d 1 /f
You can use VMMap to check if LargePages works or is a placebo.
Private Data Locked WS are LargePages explicitly allocated by mimalloc via VirtualAlloc API.
Image Locked WS are LargePages coalesced by NT kernel for exe. Somehow usually only MinGW built exe can get multiple coalesced Image LargePages, the only exception is Telegram.
Based on https://github.com/Andarwinux/mpv-winbuild-cmake.
Checks the mpv repository every hour for updates. If there is an update and it is relevant to the windows build, it will automatically run the compilation and release it on success.
This repo only provides x86-64-v3/v4 and aarch64 version. If you need a 32-bit version, you can fork this repo and run MPV
workflow by yourself.
Note
mpv-dev-xxxx.7z
is libmpv, including the libmpv-2.dll
file.
Some media players based on libmpv use libmpv-2.dll
or mpv-2.dll
.You can upgrade their libmpv by overwriting this dll.
mpv-dev-lgpl-xxxx.7z
is libmpv under LGPLv2.1+ license, which disables LGPLv2.1+ incompatible packages and statically links to ffmpeg under LGPLv3.
I'm not a lawyer and can't guarantee that I've disabled all LGPL-incompatible packages, use at your own risk.
- The last 30 days of builds will be retained.
same as shinchiro
-
Git/Hg
- amf-headers
- ANGLE
- aom
- avisynth-headers
- bzip2
- dav1d
- davs2
- expat
- FFmpeg
- fontconfig
- freetype2
- fribidi
- harfbuzz
- lame
- lcms2
- libarchive
- libaribcaption
- libass
- libbluray
- libbs2b
- libdovi
- libdvdcss
- libdvdnav
- libdvdread
- libjpeg
- libjxl (with brotli, highway)
- libmodplug
- libmysofa
- libplacebo (with glad, fast_float, xxhash)
- libpng
- libsdl2
- libsoxr
- libsrt
- libssh
- libudfread
- libunibreak
- libva
- libvpl
- libvpx
- libwebp
- libxml2
- libzimg (with graphengine)
- libzvbi
- luajit
- mpv
- mujs
- nvcodec-headers
- ogg
- openal-soft
- openssl
- opus
- rubberband (with libsamplerate)
- shaderc (with spirv-headers, spirv-tools, glslang)
- speex
- spirv-cross
- svtav1
- uavs3d
- uchardet
- vorbis
- vulkan
- vulkan-header
- x264
- x265 (multilib)
- xz
- zlib
- zstd
- amf-headers
-
Zip
- xvidcore (1.3.7)
- lzo (2.10)
- libopenmpt (0.7.12)
- libiconv (1.18)
- vapoursynth