MPV
Motivation
MPV is a frree media player that plays a variety of formats.
Status
Working using clang and msys2 via wenv.
Compiling
Mainly based on this page, with a few tweaks: mpv/DOCS/compile-windows.md at master · mpv-player/mpv
An assumption has been made that the paths were left at default for wenv.
THIS HAS ONLY BEEN TESTED ON AN ARM64 HOST MACHINE.
Set up and install wenv: linaro / WindowsOnArm / wenv · GitLab
Activate wenv to launch a shell (PS or CMD)
Modify the file at
C:\wenv\msys2\msys64\etc\pacman.conf
and uncomment the[clangarm64]
line, and the one below itExecute:
C:\wenv\msys2\msys64\clangarm64.exe
In the window that opens (same for all subsequent commands also), execute
pacman -Syu
(OPTIONAL) The previous command may close the msys window, if so, execute the command from Step 4 and return to window for all subsequent commands
In the msys2 window, execute
pacman -Su
Then the following commands:
pacman -S git $MINGW_PACKAGE_PREFIX-{python,pkgconf,meson,clang,cmake}
pacman -S $MINGW_PACKAGE_PREFIX-{ffmpeg,libjpeg-turbo,spirv-cross,shaderc}
Clone MPV from the repo: GitHub - mpv-player/mpv: 🎥 Command line video player and
cd
into itCopy the file attached to the bottom of this section into the root of the cloned directory
Execute the following commands:
meson setup build --prefix=$MSYSTEM_PREFIX --cross-file=clang-arm64.txt -Dgl=disabled
meson compile -C build
Wait for compilation to finish, and observe the presence of the file
build\mpv.exe
Notes
OpenGL has specifically been disabled, as it would not compile without modifications (function name clashed with a winnt.h macro), and regardless will likely require users to install the OpenGL compatibility pack. For WoA D3D11 is the better choice.
Running
Run the MPV executables as normal. Tested with Big Buck Bunny 1080p/60fps.
Status
To enable MPV, the above setup should be enough. The PR request stalled because the effort needed was to update documentation. At this time, this is not a priority. Also, MPV is primary built and used as a library by other projects.