Awesome
mpv-winbuild
Uses Github Actions to build mpv for Windows daily, thanks to https://github.com/zhongfly/mpv-winbuild/
mpv is built from my fork of shinchiro's mpv-winbuild-cmake. My Scoop bucket, scoop-alts, installs this version (x64-v3) of mpv.
Note: if any dependency not introduced by me fails to build, I do not attempt to find a fix or rollback to a last-known-good commit. I usually wait for a fix to appear in shinchiro's mpv-winbuild-cmake. zhongfly works very hard to pretty much ensure a fresh mpv build each day; if that is important to you, you will be well served by his builds. This repo is just a small modification of his.
The notable changes are:
-
LuaJIT has its JIT compiler enabledI assume it's intentionally disabled by default because some scripts may not be compatible with it. But not the ones I use. 😎 If you start seeing problems with scripts that you weren't seeing before, try addingjit.off()
to the beginning of them.
As of 2022-08-31, shinchiro's builds have LuaJIT's JIT compiler enabled
-
LuaSocket is built and included, so simple-mpv-webui can be used out of the box
-
frei0r plugins are built. See the section below for more information.
-
The
mpv
here is built against the Oniguruma regex library to enable the use of thesub-filter-regex
option unofficially on Windows-
Yes, I know
sub-filter-jsre
is an option, but I would rather deal with an actual regex library than a JS engine -
I picked Oniguruma because it's C, reasonably fast and, most importantly, provides an API that emulates the POSIX
regex.h
. PCRE2 can also do this. If there's a tangible advantage to using PCRE2, I will switch to that -
Do not report any bugs relating to
sub-filter-regex
(maybe even subtitles in general) to the mpv team
-
Everything else is pretty much the same as shinchiro's builds.
As the mpv builds here have been modified with unofficial patches, please see if you can reproduce any bugs you may experience with shinchiro's pristine builds before making a bugreport to the mpv team. Let them know you're using this dirty build at the very least.
Auto-Builds
Builds run daily at 12:00 UTC and are automatically released on success.
On the first of every month, the cache will be automatically cleared. This ensures the underlying MinGW installation is fresh and up-to-date. This does cause successful builds to be released later than usual, however, on account of the increased build time.
Only 64-bit versions of mpv are provided. If you need a 32-bit version, you can fork this repo and edit mpv.yml. Or just use shinchiro/zhongfly's builds.
mpv-dev-x86_64-xxxx.7z
is 64-bit libmpv version, including thelibmpv-2.dll
file.Some media players based on libmpv use
libmpv-2.dll
ormpv-2.dll
. You can upgrade their libmpv version by overwriting this DLL file. You will need to add lua51.dll to the same folder as well.
Release Retention Policy
- Artifacts (from the Actions tab), and their corresponding build logs, are cleaned every 30 days
- Releases that are 30 days old should be removed
frei0r plugin support
-
I do not have a need for these personally. If they cause build failures, the first thing I will try is clamping the version to a known good commit (and check a long time in the future whether the latest version can be built again). Failing that, I will disable their build entirely.
-
Plugins that require Cairo, OpenCV or gavl are not built/included
-
As they are in the realm of 50 MB uncompressed, they are not bundled with the mpv build here proper.
-
You will need to download them separately from the releases and extract them to a path of your choosing
-
Most of the time, you will not need to keep redownloading them with every mpv release, especially if the plugins are built from the same Git commit. If their API changes (unlikely) and mpv can't load the DLLs, then yes, try then
-
-
You have three choices for getting mpv to see the frei0r plugins:
-
set the Windows environment variable
FREI0R_PATH
to the full path of the folder where you extracted the plugins -
extract the DLLs into
C:\usr\local\lib\frei0r-1\
-
Save main.lua into a folder called
frei0r_path
in your mpv configscripts
folder. With this script, you can either have the frei0r-1 folder next to the mpv.exe file or next to the main.lua script itself
-
Information about packages
same as shinchiro
-
Git/Hg
- ANGLE
- FFmpeg
- xz
- x264
- x265 (multilib)
- uchardet
- rubberband
- opus
- openal-soft
- mpv
- luajit
- luasocket
- libvpx
- libwebp
- libpng
- libsoxr
- libzimg (with graphengine)
- libdvdread
- libdvdnav
- libdvdcss
- libudfread
- libbluray
- libunibreak
- libass
- libmysofa
- lcms2
- lame
- harfbuzz
- game-music-emu
- freetype2
- mujs
- libarchive
- libjpeg
- shaderc (with spirv-headers, spirv-tools, glslang)
- vulkan-header
- vulkan
- spirv-cross
- fribidi
- frei0r
- oniguruma
- nettle
- libxml2
- amf-headers
- avisynth-headers
- nvcodec-headers
- libvpl
- aom
- dav1d
- libplacebo (with glad)
- fontconfig
- libbs2b
- libssh
- libsrt
- libjxl (with brotli, highway)
- libmodplug
- uavs3d
- davs2
- libdovi
- libva
- libzvbi
- rav1e
- libaribcaption
-
Zip