0

I'm compiling and building vmaf on a Windows 10 development machine for on another Windows system using MSYS2. I'm not a software developer but was hoping I could follow these instructions under Netflix/vmaf on Github.

Building vmaf on Windows

I thought the build process would statically link vmaf with all it's needed dependances. It did not. When I run the built vmaf.exe on the dev machine, it complains about missing 3 DLLs that are actually found in the C:\msys64\mingw64\bin directory. These are:

  • libgcc_s_seh-1.dll

  • libstdc++-6.dll

  • libwinpthread-1.dll

I had originally used the MSYS2 launcher shell but that didn't do a static link. So I started over after deleting the various directories and tried the mingw64 launcher shell with the same result. The vmaf.exe file is missing those 3 DLLs.

Here's what I did. After installing MSYS2 and getting the various dependencies required to compile and link vmaf according to that doc, I created a /projects directory and use the git command to clone Netflix/vmaf. I created a /vmaf-install directory, changed to the /projects/vmaf directory and issued these commands as specified in the vmaf "Building VMAF for Windows" doc.

meson setup libvmaf libvmaf/build --buildtype release --default-library static --prefix C:/vmaf-install

meson install -C libvmaf/build

It seemed to build correctly and the c:\vmaf-install directory now contained three subdirectories, bin, include and lib. It works if I run it on the system it was built on.

However running vmaf.exe on another system fails due to the missing 3 DLLs that are part of MSYS2 or MINGW64 on the build system.

I'm assuming I did something wrong or used the wrong build options.

I'd be grateful if someone can tell me how to actually create a statically linked vmaf.exe for Windows with all it's required DLLs.

SDMark
  • 1

0 Answers0