Awesome
mpv-winbuild-arm64
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
- openssl
- x265
- svtav1
- zstd
- telegram-bot-api
- qBittorrent-Enhanced-Edition
[!NOTE] x86-64-v3 version is built with PGO + LLVM Polly and mimalloc to improve overall performance and reduce binary size.
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 mpv is built with consoleAllocationPolicy, so make sure to use Windows 11 24H2 or higher otherwise you will see a console when starting mpv.
qBittorrent-Enhanced-Edition is built with Qt main branch so it might be unstable.
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 may notice x86-64 builds are slightly slower than upstream builds in some ways, in two main cases: ASM and PGO.
Aggressive global vectorization and LTO cross-module inlining can break assembly code's assumptions about instruction composition, most commonly in the case of AVX2 downclocking and AVX-SSE transition penalties, which can be difficult to mitigate since assembly code is invisible to the compiler. For GAS style assembly code (openssl), the AVX-SSE transition penalties can be fixed by Clang IAS's -Wa,-msse2avx, but most x86 assembly code is NASM style (FFmpeg).
PGO will make the hot path faster, but will in turn make the cold path slower, if you find performance degradation in any C/C++ code, it's usually because I didn't cover them in the PGO training, feel free to report it!
Based on https://github.com/Andarwinux/mpv-winbuild-cmake.
Auto-Builds
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 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 thelibmpv-2.dll
file.Some media players based on libmpv use
libmpv-2.dll
ormpv-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.
Release Retention Policy
- The last 30 days of builds will be retained.
Information about packages
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
-
Zip
- xvidcore (1.3.7)
- lzo (2.10)
- libopenmpt (0.7.8)
- libiconv (1.17)
- vapoursynth