http://archive.org/details/vlc-compil...
VLC Media Player 2.2.6 Umbrella for Win32.
The official VLC guide is the starting point, but it doesn't mean that we won't need to read many other references, until we get fully familiarized with building every final VLC release:
http://wiki.videolan.org/Category:Bui...
Video showing how to compile VLC Media Player 2.2.6 Umbrella from scratch to learn by modifying the source code (for example, to translate functions to pure x86 Portable Assembly and making them portable to any x86 platform without many dependencies).
We have compiled all VLC libraries and components from scratch since I could never fix the errors that appeared when trying to use the prebuilt binary libraries. It's better, since we now have learned how to compile a massive number of important libraries. With this we can see that VLC is like the Linux of the video/audio/streaming world. It's very complex. It took me 1 week to finally figure out that I had to use MSYS2 under Win7-64, and Ubuntu 64 16.04, for a successful VLC compilation and packaging finally produced from Linux.
libgcrypt and libgpg-error are more easily compiled under Win7-64. We need to copy those libraries, previously compiled at the Win7-64 MSYS2/MinGW32 side, into the VLC source directory we have inside Linux. It's the easiest way I've found for VLC 2.2.6.
Specially Qt4 is more easily compiled under Ubuntu 16.04 64-bit. It's transparent, unlike under Windows.
The rest can be easily compiled under Win7-64 or Ubuntu 16.04 64-bit, but the final compile will be left better from Ubuntu, at least for VLC 2.2.6.
In Ubuntu, we need to install the user and development Wine packages to obtain the IDL headers for DirectX, which VLC will need.
We need to download packages or manually download any tool or library that the compile errors tell us that are preventing from building at any given point.
Apparently it's better if we use the source code of the current stable VLC version because nightlies or newer unstable versions could in fact be incomplete code bases that would require an impractically massive amount of fixing the code, just like the official VLC team. For example, it's possible that many nightlies aren't finished and ready for compilation, but we don't know which ones, so we might risk trying to compile a code that will never build as is if we try anything other than the latest final stable source code version.
It there are libraries that we cannot build under Linux but that we could build from MSYS2/Win7-64, then we simply need to try copying them into the Linux VLC source directory instead of trying to modify C or H files, for example, into the contrib/win32 directory of libraries.
I had to modify a "windres.rc.in" for libgcrypt because it contained a "," character at the end of version numbers, at line 21 and 22, manually typing the version number so it was generated without errors. It didn't happen under Windows MSYS2, but it's too trivial to not do under Linux (with gedit, etc).
We can probably compile VLC with 32-bit Windows and Linux, but by now I used 64 versions.
I used the libgcrypt and libgpg-error obtained from the latest VLC 2.2.7 source after compiling it under Win7-64, for being able to successfully compiling VLC 2.2.6 under Ubuntu. I obtained those libraries and the rest with the "make fetch" command from the VLC 2.2.7 source.