Scripts and patches to compile many multimedia utilities, including FFmpeg, with mingw-w64 for 64-bit Windows
C++ Objective-C Shell C Makefile Python Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bzip2-1.0.6
0000-build-fix.patch
0001-include-winsock2-before-windows.mingw.patch Bring patches together, create binary dist Aug 23, 2015
0001-mingw32-does-not-need-handholding.all.patch Convert to shared libraries (DLLs) Jan 13, 2016
0002-fix-header-conflict.mingw.patch Bring patches together, create binary dist Aug 23, 2015
0002-no-undefined-on.mingw.patch Convert to shared libraries (DLLs) Jan 13, 2016
0003-binary-stdin.all.patch
0003-silent-rules.mingw.patch Bring patches together, create binary dist Aug 23, 2015
0004-hack-around-dummy-alarm.mingw.patch Bring patches together, create binary dist Aug 23, 2015
0004-no-need-for-dllexport.mingw.patch Convert to shared libraries (DLLs) Jan 13, 2016
0005-fix-m4-dir.all.patch Bring patches together, create binary dist Aug 23, 2015
0005-silent.mingw.patch
0006-update-gettext-req.mingw.patch Bring patches together, create binary dist Aug 23, 2015
0007-link-to-libiconv-properly.mingw.patch
1394Camera.h Increase completeness of VLC player build Aug 4, 2017
1394CameraControl.h Increase completeness of VLC player build Aug 4, 2017
1394CameraControlSize.h Increase completeness of VLC player build Aug 4, 2017
1394CameraControlStrobe.h Increase completeness of VLC player build Aug 4, 2017
1394CameraControlTrigger.h Increase completeness of VLC player build Aug 4, 2017
1394camapi.h Increase completeness of VLC player build Aug 4, 2017
1394camera.def Increase completeness of VLC player build Aug 4, 2017
1394camera.dll Increase completeness of VLC player build Aug 4, 2017
1394camera.lib Increase completeness of VLC player build Aug 4, 2017
1394camera646-unsigned_src.zip Increase completeness of VLC player build Aug 4, 2017
1394common.h Increase completeness of VLC player build Aug 4, 2017
DeckLinkAPI.h
DeckLinkAPI.idl Compile VLC player. Many other updates/fixes. Jul 31, 2017
DeckLinkAPIVersion.h
DeckLinkAPI_i.c Recompile everything. Many updates/fixes/adds Jul 21, 2017
EbmlElement.h.patch
LICENSE Restore text-only LICENSE May 23, 2017
LICENSE.rtf Compile on Ubuntu on Windows. Various updates Oct 7, 2016
NDI-NewTek.tar.xz Add NDI SDK, and 'codec2' to FFmpeg Jun 24, 2018
OpenBLAS-makefile.patch
OpenCL.def Convert to shared libraries (DLLs) Jan 13, 2016
OpenCL.dll
README.md
SDL-declaration-after-statement.patch Update everything. Jan 20, 2018
SDL2-prevent-duplicate-d3d11-declarations.patch
SDL2-prevent-duplicate-scalbln.patch
SDL2-stdint.patch Update everything. Jan 20, 2018
SPIRV-Tools-shared.patch Add Vulkan graphics output/drivers Jun 12, 2018
ZlibResult.cmake Add libmatroska, libarchive extras Aug 4, 2017
a52dec-snapshot.tar.gz Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
angle-Export-shader-API-via-libGLESv2.dll.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
angle-Fix-dynamic-libraries.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
angle-Fix-generation-of-commit_id.h.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
angle-Link-against-dxguid-d3d9-and-gdi32.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
angle-Make-GLintptr-and-GLsizeiptr-match-those-from-Qt-5.patch
angle-Remove-copy_scripts-target.patch
angle-RendererD3D-cpp.patch Update ANGLE OpenGL library May 22, 2017
angle-entry_points_shader.cpp Install ANGLE rendering library and other improvements Sep 28, 2016
angle-future.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
angle-include-import-library-and-use-def-file.patch
angle-string_utils-cpp.patch Install ANGLE rendering library and other improvements Sep 28, 2016
aom-pthread.patch Upgrade boost, fix non-working URLs Feb 24, 2018
asdcplib-cth-wscript.patch New build script + gcc-7.2.0 Sep 9, 2017
asdcplib-shared.patch Convert to shared libraries (DLLs) Jan 13, 2016
asmoff.h Add mjpegtools and others. Aug 19, 2016
atomicparsley-min.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
bmxlib-bmx-apps-writers-Makefile-am.patch Improve doc, add Sofalize, J2K exes, wxWidgets Apr 14, 2016
boost-codecvt.patch New build script + gcc-7.2.0 Sep 9, 2017
build-mingw-updates.patch
build_shared.sh
bzip-2-cygming.patch Convert to shared libraries (DLLs) Jan 13, 2016
bzip2-1.0.6-progress.patch
bzip2_cross_compile.diff Bring patches together, create binary dist Aug 23, 2015
cairo-pdf-interchange-strndup.patch Switch to NSIS installer; repair Cairo PDF build Oct 2, 2016
cairomm-missing-M_PI.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
cairomm-win32_surface.patch Upgrade everything. Recompile from scratch. May 11, 2017
cddb-1.3.2-lib-cddb_net.c.patch
cdrkit-1.1.11-cross-compile.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
cdrkit-1.1.11-mingw.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
cfgmgr32.h.patch Add Filezilla and other fixes May 26, 2018
chromaprint-vector.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
codec2-CMakeFiles.txt.patch New build script + gcc-7.2.0 Sep 9, 2017
codec2-src-CMakeFiles.txt.patch Updates and fixes Mar 10, 2018
correct_headers.sh Fix GraphicsMagick paths and others Apr 14, 2018
cross_compile_ffmpeg_shared.sh
d3d11.h.patch
dcpomatic-LogColorspace.patch
dcpomatic-audio_ring_buffers.cc.patch New build script + gcc-7.2.0 Sep 9, 2017
dcpomatic-audio_ring_buffers.h.patch New build script + gcc-7.2.0 Sep 9, 2017
dcpomatic-boost.patch Update boost to 1.66.0 Feb 21, 2018
dcpomatic-ffmpeg.patch General updates. FFmpeg now mpv version. Nov 12, 2017
dcpomatic-libsub.patch Use correct libraries for DCP-o-Matic May 17, 2017
dcpomatic-src-wx-wscript.patch
dcpomatic-test-wscript.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
dcpomatic-wscript.patch Upgrade boost, fix non-working URLs Feb 24, 2018
devpkey.h.patch Add Filezilla and other fixes May 26, 2018
djv-FFmpeg.patch General updates. FFmpeg now mpv version. Nov 12, 2017
djv-djvFileInfo.cpp.patch Convert to shared libraries (DLLs) Jan 13, 2016
djv-djvSystem.cpp.patch Convert to shared libraries (DLLs) Jan 13, 2016
djv-djvSystem.cpp.patch2
doxygen-fix-CMake.patch Update everything from latest source. Nightmare but done. May 23, 2018
doxygen-fix-casts.patch
dv.patch Add mjpegtools and others. Aug 19, 2016
dvdauthor-compat-c-langinfo.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
dvdauthor-configure-ac.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
dvdauthor-dvdvob-sync.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
dvdauthor-mingw.patch Recompile everything. Many updates/fixes/adds Jul 21, 2017
dvdauthor-mkdir-mingw32.patch
dxgi1_2.h
dxgi1_3.h Compile VLC player. Many other updates/fixes. Jul 31, 2017
dxgi1_3.h.patch New build script + gcc-7.2.0 Sep 9, 2017
dxgi1_4.h Compile VLC player. Many other updates/fixes. Jul 31, 2017
dxgi1_5.h Compile VLC player. Many other updates/fixes. Jul 31, 2017
dxgi1_6.h
dxgitype-missing.patch New build script + gcc-7.2.0 Sep 9, 2017
eLut.h Convert to shared libraries (DLLs) Jan 13, 2016
ebur128-CMakeLists.txt-private.patch Update everything from latest source. Nightmare but done. May 23, 2018
exiv2-makernote.patch
fdkaac-aacenc.patch
ffmpeg-dash-demux.patch New build script + gcc-7.2.0 Sep 9, 2017
ffmpeg-decklink-teletext-1-reverse.patch Fix broken commit, various other fixes Aug 3, 2017
ffmpeg-decklink-teletext-1.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
ffmpeg-decklink-teletext-2-reverse.patch Fix broken commit, various other fixes Aug 3, 2017
ffmpeg-decklink-teletext-2.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
ffmpeg-framesync2.patch
ffmpeg-mcompand.patch Recompile everything. Many updates/fixes/adds Jul 21, 2017
ffmpeg-x264-depth-1.patch Update everything. Jan 20, 2018
ffmpeg-x264-depth-2.patch Update everything. Jan 20, 2018
ffms2.videosource.cpp.patch Bring patches together, create binary dist Aug 23, 2015
fftw-thread.patch Finish adding aubio library Jul 13, 2018
file-win32.patch Compile on Ubuntu on Windows. Various updates Oct 7, 2016
filezilla-install.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
fix-Qt-non-debug.py
flite-remove-inline.patch
fonts.conf Compile ffmpeg with opencv, fix patches for opencv Feb 9, 2017
frei0r-boost.patch
frei0r-facebl0r.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
frei0r-facedetect.cpp-brackets.patch Bring patches together, create binary dist Aug 23, 2015
frei0r-lightgraffiti.cpp.patch
frei0r-partik0l.cpp.patch Bring patches together, create binary dist Aug 23, 2015
frei0r-vignette.cpp.patch Bring patches together, create binary dist Aug 23, 2015
fribidi.diff Bring patches together, create binary dist Aug 23, 2015
gdk-pixbuf.patch Upgrade everything. Recompile from scratch. May 11, 2017
gettext-cross.patch Upgrade everything. Recompile from scratch. May 11, 2017
glew-CMakeLists-txt.patch Bump GCC to 6.1.1, QT to 5.7, add gtk+, repair dcpomatic Jul 9, 2016
glib-no-tests.patch Upgrade everything. Recompile from scratch. May 11, 2017
glibmm-2.53-mutex.patch Upgrade everything. Recompile from scratch. May 11, 2017
glibmm-mutex.patch Switch GCC5 to svn gcc-5-branch, bump versions generally May 13, 2016
glibmm-mutex.patch.new Upgrade everything. Recompile from scratch. May 11, 2017
glslang-install-missing-dll.patch Add Vulkan graphics output/drivers Jun 12, 2018
glslang-shared.patch Add Vulkan graphics output/drivers Jun 12, 2018
glslang-threads.patch Add Vulkan graphics output/drivers Jun 12, 2018
gobject-introspection.patch Update everything. Clean QT5 debug libs Sep 29, 2017
gpg-error-pid.patch Update everything. Jan 20, 2018
graphicmagick-mingw64.patch Updates, fix Qt-5.8, add ASIO to jackd Mar 9, 2017
gtk3-22-12.patch Upgrade everything. Recompile from scratch. May 11, 2017
gtk3-demos-gtk-demo-Makefile-am.patch Bump GCC to 6.1.1, QT to 5.7, add gtk+, repair dcpomatic Jul 9, 2016
gtk3-demos-widget-factory-Makefile-am.patch Bump GCC to 6.1.1, QT to 5.7, add gtk+, repair dcpomatic Jul 9, 2016
gtk3-introspection.patch Update GTK3 patch Mar 11, 2018
gtk3-modules-input-Makefile.am.patch
gtk3-update-icon-cache.patch Update everything. Jan 20, 2018
gzip-msvc-inval.c.patch
icu-59.patch Complete re-compile. Upgrade everything. New patches. Jul 2, 2017
icu-le-hb-shared.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
icu-mingw-locale.patch General updates, corrections, fixes Jan 19, 2017
icu_native-xlocale.patch Update everything. Jan 20, 2018
ilmbase-ilmthread-Makefile.am.patch Convert to shared libraries (DLLs) Jan 13, 2016
install-zipfile.cmd
install-zipfile.ps1 Add gcal, fix a few things Aug 7, 2016
jack-1-fixes.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
jack2-win32.patch Recompile everything. Many updates/fixes/adds Jul 21, 2017
jackmix-qt5.patch Fix problem with MPV player Nov 10, 2016
jasper-dll.patch
kconfigwidgets-cross.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
kernel32.def Compile VLC player. Many other updates/fixes. Jul 31, 2017
kxmlgui-header.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
lame-obsolete-code.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
lavfi-vfstack-reverse.patch Update everything, back out tricky ffmpeg vf_stack Aug 6, 2017
lavtools-Makefile.am.patch Add mjpegtools and others. Aug 19, 2016
lib1394camera.a Increase completeness of VLC player build Aug 4, 2017
libbdplus-dirs_win32.c.patch Updates, fix Qt-5.8, add ASIO to jackd Mar 9, 2017
libbluray-java.patch Add Vulkan graphics output/drivers Jun 12, 2018
libbs2b-snapshot.tar.xz Switch GCC5 to svn gcc-5-branch, bump versions generally May 13, 2016
libcaca-signals.patch Bring patches together, create binary dist Aug 23, 2015
libcaca-vsnprintf.patch Bring patches together, create binary dist Aug 23, 2015
libcddb-bootstrap.patch Convert to shared libraries (DLLs) Jan 13, 2016
libcdio-4b5eda30.tar.gz Use local libcdio copy because its git is faulty May 15, 2016
libcxml-libxml++3-check.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
libcxml-shared_ptr.patch General updates. FFmpeg now mpv version. Nov 12, 2017
libdash-case-fix.patch
libdcp-boost.patch Upgrade everything. Recompile from scratch. May 11, 2017
libdcp-gm.patch Switch to Debian on Windows May 28, 2018
libdcp-libxml.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
libdcp-reader.h.patch
libdcp-sub_time.h.patch
libdsm-pc.patch Increase completeness of VLC player build Aug 4, 2017
libdv-encodedv-Makefile.am.patch Add mjpegtools and others. Aug 19, 2016
libdv-enctest.c.patch Add mjpegtools and others. Aug 19, 2016
libdv-gasmoff.patch
libexif-largefile.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
libgcrypt-pkgconfig.patch General updates. FFmpeg now mpv version. Nov 12, 2017
libgnurx-1-build-static-lib.patch Bring patches together, create binary dist Aug 23, 2015
libgsm.patch
libiconv-1.14-iconv-fix-inline.patch Fix GCC-5.2.0 non-exported libiconv symbol Aug 25, 2015
libjpeg-turbo-simd-yasm.patch
libmatroska-typo.patch Add Filezilla and other fixes May 26, 2018
libmpeg2-inline.patch Increase completeness of VLC player build Aug 4, 2017
libmxf-win32-mmap-Makefile.am.patch Update all versions to latest and fix libmxf mmap files Nov 23, 2015
libmxf-win32-mmap-gcc.patch Update all versions to latest and fix libmxf mmap files Nov 23, 2015
libmysofa-zlib.patch
libopenjpeg-cmake-pkgconfig.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
libsigcplusplus.patch New build script + gcc-7.2.0 Sep 9, 2017
libssh-ctx-fix.patch Complete re-compile. Upgrade everything. New patches. Jul 2, 2017
libssh-win32.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
libsub-2-iostream.patch General updates. FFmpeg now mpv version. Nov 12, 2017
libsub-asdcplib-h__Writer.cpp.patch
libsub-wscript.patch New build script + gcc-7.2.0 Sep 9, 2017
libsub_iostream.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
libudfread-udfread-c.patch Add libudfread to libbluray, fix non-MSVC Windows compilation Dec 9, 2015
libuuid-mingw.patch Updates, fix Qt-5.8, add ASIO to jackd Mar 9, 2017
libvpx-vp8-common-threading-h-mingw.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
libxml++-2.4-ac.patch Upgrade everything. Recompile from scratch. May 11, 2017
lilv-mingw.patch
loudness-scanner-ffmpeg.patch General updates. FFmpeg now mpv version. Nov 12, 2017
lua-5.2.3-static-mingw.patch New build script + gcc-7.2.0 Sep 9, 2017
mediainfo-GUI_Main_Menu-cpp.patch
meson-cross.mingw.txt Switch to Debian on Windows May 28, 2018
mingw-w64-build-isl_fix.patch Compile on Ubuntu on Windows. Various updates Oct 7, 2016
mingw-w64-headers-d3d11_1.h.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
mingw-w64-headers-dxgi1_2.h.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
mingw-w64-headers-math.h.patch Fix broken commit, various other fixes Aug 3, 2017
mingw-w64-headers-processor_format.patch Compile VLC player. Many other updates/fixes. Jul 31, 2017
mjpeg-mingw32-patches.tar.bz2 Add mjpegtools including mplex Sep 7, 2016
mjpegtools-2.1.0-mingw.patch Add mjpegtools and others. Aug 19, 2016
mkvtoolnix-qt5-2.patch Update everything. Jan 20, 2018
mkvtoolnix-qt5.patch Update everything. Jan 20, 2018
mlt-mingw-sandbox.patch FFmpeg: add dashdec, add RtAudio, update MLT patch Apr 24, 2017
mlt-old-mingw-sandbox.patch Fix MLT compilation under mingw-w64 Oct 28, 2016
mlt-rtaudio.patch Update everything. Jan 20, 2018
movit-call_once.patch
movit-ffs.patch Update everything. Jan 20, 2018
movit-fp64.patch
mp4box-dashcast.patch
mpv-disable-rectangle.patch Add BD-J to libbluray, other fixes Jul 25, 2016
mpv-ytdl.patch
mpv.conf Complete re-compile. Upgrade everything. New patches. Jul 2, 2017
ncurses-rx.patch
netcdf-mingw.patch Fix netcdf-c compile on mingw May 11, 2018
netcdf-shared.patch Update netcdf patch Mar 25, 2018
nvidia-sdk-headers-8.0.14.tar.xz
opencv-boost-thread.patch Update boost to 1.66.0 Feb 21, 2018
opencv-location.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
opencv-mutex-boost.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
opencv-strict.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
opencv-wrong-slash.patch Recompile from scratch. Fix various items. Apr 4, 2017
opendcp-CMakeLists.txt-static.patch Switch from opendcp to dcpomatic, add liba52, add libmagic May 9, 2016
opendcp-CMakeLists.txt.patch
opendcp-brackets.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
opendcp-libasdcp-KM_prng.cpp.patch Convert to shared libraries (DLLs) Jan 13, 2016
opendcp-libav.patch
opendcp-libopendcp-CMakeLists.txt.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
opendcp-packages-CMakeLists.txt-static.patch Bring patches together, create binary dist Aug 23, 2015
opendcp-toolchains-win32.cmake.libs.patch Bring patches together, create binary dist Aug 23, 2015
opendcp-toolchains-win32.cmake.openjpeg-2.1.patch
opendcp-toolchains-win32.cmake.patch Bring patches together, create binary dist Aug 23, 2015
opendcp-toolchains-win32.cmake.windres.patch Bring patches together, create binary dist Aug 23, 2015
opendcp-win32.cmake.patch General updates. FFmpeg now mpv version. Nov 12, 2017
openexr-IlmBase-Half-Makefile.am Convert to shared libraries (DLLs) Jan 13, 2016
opus-nostatic.patch Switch opus to git latest, fix shared compile May 1, 2017
opus11.patch Some shared libraries to save space. Aug 27, 2015
pngcrush.patch
popt-get-w32-console-maxcols.patch
popt-no-uid.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
portaudio-1-fixes-crlf.patch Add BD-J to libbluray, other fixes Jul 25, 2016
portaudio-pa_win_wasapi.c.patch Add Jack visual utility, update other items Jul 20, 2016
portaudio.patch Compile on Ubuntu on Windows. Various updates Oct 7, 2016
private-strndup.h
qfiledialog.cpp.patch Bring patches together, create binary dist Aug 23, 2015
qjackctl-MainForm.patch General updates. FFmpeg now mpv version. Nov 12, 2017
qplatformdefs.h.patch Bring patches together, create binary dist Aug 23, 2015
qt-include.patch
qt-permissive.patch Upgrade GCC, fix strange x265/libx265 linkage Sep 12, 2016
qt-pkg-config.patch
qt5-no-mapbox-gl-native.patch
qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
qt5-qtwebkit-use-linux-shell.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
qt5-skip-mapboxglnative.patch Update everything. Jan 20, 2018
qtwebkit-dont-use-bundled-angle-libraries.patch Improve Qt5 support, add Jack and Exif Jan 16, 2016
readline-mingw32.patch Compile on Ubuntu on Windows. Various updates Oct 7, 2016
rtaudio-configure.patch Fix netcdf-c compile on mingw May 11, 2018
rubberband-mingw-shared.patch
sal.h.patch Add Filezilla and other fixes May 26, 2018
sdl-stdout.patch
sdl2.xinput.patch Various fixes and updates. Mar 3, 2017
shaderc-build.patch Add Vulkan graphics output/drivers Jun 12, 2018
shaderc.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
snappy-shared-dll.patch Permit compilation of snappy as shared DLL Feb 6, 2016
swftools-lib-pdf-Makefile-in.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
swftools-xpdf-unlink.patch Update QT to 5.6, add AtomicParsley, dvdauthor, poppler, etc. Apr 9, 2016
synaesthesia-case.patch
synaesthesia-missing-icon.patch
tesseract-chrono.patch Update nearly everything. Opendcp now works with QT5 Jan 5, 2017
tesseract-libgomp.patch
tesseract-thread.patch
theora-examples-encoder_example.c.patch Bring patches together, create binary dist Aug 23, 2015
toFloat.h Convert to shared libraries (DLLs) Jan 13, 2016
utv.diff
vamp-M_PI.patch Upgrade everything. Recompile from scratch. May 11, 2017
vamp-configure.patch
vlc-aom.patch Update tools script, fix aom change Jan 27, 2018
vlc-dll-dirs.patch
vlc-more-static.patch Switch to Debian on Windows May 28, 2018
vlc-qt5.patch Updates and fixes. QT now 5.11.1. OpenCV V3 Jun 23, 2018
vlc-vpx.patch Add Filezilla and other fixes May 26, 2018
vulkan-threads.patch Add Vulkan graphics output/drivers Jun 12, 2018
x265-headers-revert.patch General updates. FFmpeg now mpv version. Nov 12, 2017
x265-missing-bool.patch Patch missing stdbool.h in x265 Aug 31, 2015
xmlsec1-x509.patch General updates. FFmpeg now mpv version. Nov 12, 2017
xsltsec-Makefile.in.patch Bring patches together, create binary dist Aug 23, 2015
zlib-Makefile-gcc.patch Various fixes and updates. Mar 3, 2017
zvbi-ioctl.patch
zvbi-shared-dll.patch
zvbi-win32.patch Bring patches together, create binary dist Aug 23, 2015

README.md

MultimediaTools W64

Scripts and patches to cross-compile, for Windows 64-bit, many multimedia utilities, including FFmpeg, Dcp-o-matic, SoX, the mpv player, and all the BBC Avid-compatible MXF utilities. Also includes all Qt5 (version 5.7) libraries that will compile on mingw-w64, GraphicMagick, Poppler-utils (for PDF files) and many, many more.

How To Install

A binary package is available for download from this address: http://gallery.johnwarburton.net/MultimediaTools-mingw-w64-Open-source.exe

These files are tested here when installed to C:\Program Files\ffmpeg. Other locations may work, but have not been tested.

These binaries are for Windows 64-bit editions only, and have been tested only on Windows 10.

Your Windows installation needs to have certain packages installed:

  • Python 3.5 or later
  • Perl, the multi-threaded version

...and, if you use some of my scripts for on-line television viewing,

  • The Python m3u8 module (run "pip install m3u8" from an Administrator prompt)

The installer sets certain environment variables for some facilities to work properly.

  • FONTCONFIG_FILE=fonts.conf
  • FONTCONFIG_PATH=C:\Users\---YOUR-USER-NAME---\AppData\Local\fontconfig
  • FREI0R_PATH=C:\Program Files\ffmpeg\lib\frei0r-1
  • TESSDATA_PREFIX=C:\Program Files\ffmpeg\share\ (note that TESSDATA_PREFIX is the parent of the tessdata language directory)
  • TERMINFO=C:\Program Files\ffmpeg\share\terminfo
  • VIMRUNTIME=C:\Program Files\ffmpeg\share\vim

After Installing

You will need to run fc-cache.exe as an Administrator, to help fontconfig put a cache of your Windows fonts into a suitable place. I'd make the installer do it for you, but I haven't worked out how to do this yet.

You might also want to play with the defaults for the mpv player, in %APPDATA%\Roaming\mpv (mpv.conf). It's a highly configurable player, and you may want to adjust it manually for best performance in your environment. An example file is included in this distribution in the share directory for mpv. Copy it to where you need it.

How To Compile

  1. Compiling is becoming increasingly difficult. Source packages are constantly being updated (for which we rejoice, of course), and I am keeping up with these changes quite well. However, some changes that might break compilation go un-noticed because I only accomplish a completely clean build about once a month. Otherwise, packages such as GCC and QT-5.7 remain old. This does not affect the latest and greatest versions of ffmpeg, mpv, vim/gvim, x264, x265 and their associated libraries that are all compiled from development sources.
  2. Ensure your development requirement is adequate. I now develop on a Docker container, using Fedora Latest.
  3. Update everything.
  4. Install the pre-requisites. On Debian running under Windows, you can do this.

First, upgrade your system to Debian Stretch:

sed -i 's/stretch/buster/g' /etc/apt/sources.list

Then, after upgrading everything, pull in the packages you'll need. There are a lot of them.

apt install extra-cmake-modules libsdl1.2debian libsdl1.2-dev libsdl2-2.0 libsdl2-dev ant asciidoc autoconf autoconf-archive autogen autopoint bison bzr cmake curl cvs docbook2x ed flex g++-8 libgdk-pixbuf2.0-dev gengetopt git gperf gtk-doc-tools gtk-update-icon-cache gyp intltool libsamplerate-dev libtasn1-bin librhash0 libtool libtool-bin lua5.3 mercurial meson nsis mm-common nasm openjdk-8-jdk patchutils pax pxz python-dev ragel rsync ruby-json rake-compiler ruby-ronn sassc libspeex-dev libspeexdsp-dev sshpass sssd-tools subversion libwxbase3.0-dev wx-common xutils-dev yasm
  1. Link an executable, thus: ln -s /usr/bin/luac5.3 /usr/bin/luac
  2. Clone my package from git (see the address at the top of this page).
  3. cd into the top directory of the git tree.
  4. Read the top of ./build_script, and edit the location to which scp should copy your binary archive.
  5. Execute ./build_script, and give it the password for your scp when prompted.
  6. Wait for a long, long time. On an eight-core i7 at 4.5GHz with 16GB RAM and solid state drives, the compile takes about two days.
  7. The archive you can copy and unpack has been placed in the root of your build tree and has been sent by scp to the webserver of your choice. Note that the scp copy will only succeed if you have already used ssh to login to the remote server under the username you're using.
  8. To recompile only the packages that have been updated, simply run the script again. You may need manually to clear out mpv, vim and vim_console

Tools Included

With these scripts, you can compile binaries, ready to run on 64-bit Windows. Many libraries are included. Here are some of the executables that link to these libraries. THIS LIST IS OUT OF DATE.

  • libfdk_aac
    • aac-enc — simple AAC encoder including HE-AACv2 and two low-delay versions of the codec
    • fdkaac — complex and fine-tuned AAC encoder allowing adjustment of many parameters
  • GraphicsMagick, an improvement on ImageMagick, including the following utilities:
    • compare — compare two images
    • composite — composite images together
    • conjure — execute a Magick Scripting Language (MSL) XML script
    • convert — convert an image or a sequence of images
    • gm — interface to many GraphicsMagic tools
    • identify — describe an image or an image sequence
    • mogrify — transform an image or an image sequence
    • montage — create a composite image in a grid from separate images
  • FFmpeg
    • ffmpeg — a very full build of the multimedia file processing utility
    • ffplay — simple command-line multimedia player
    • ffprobe — prints information gleaned by FFmpeg libraries from a given file
  • libfftw
    • fftw-wisdom — create pre-planned/optimised transforms for specified sizes
  • SoX — the Swiss Army Knife of audio
  • sox — the command-line audio utility with many built-in effects
  • soxi — gives information about audio files
  • play — plays and optionally processes audio data using the capabilities of sox
  • rec — records audio data using the capabilities of sox
  • mjpegtools — many tools for motion JPEG files and DVD creation
  • mpeg2enc — flexible program to encode MPEG2 video streams
  • mplex — multiplexes many types of MPEG streams
  • jpeg2yuv — pipes a sequence of JPEG files to stdout, converted to YUV
  • lav2wav — extracts audio from lav-readable files
  • lav2yuv — converts MJPEG video sequence to raw YUV data
  • lavaddwav — adds a WAV file as a soundtrak to an AVI file
  • lavpipe — creates raw YUV streams from pipe list scripts
  • lavplay — plays and edits MJPEG video, including certain hardware acceleration
  • lavtrans — converts MJPEG videos to other MJPEG video formats
  • matteblend.flt — unknown - takes 3 parameters
  • mjpeg_simd_helper — returns list of possible values for environment variable MJPEGTOOLS_SIMD_DISABLE
  • multiblend.flt — blends two MJPEG streams by selectable mask
  • png2yuv — pipes a sequence of PNG files to stdout as YUV4MPEG data stream
  • pnmtoy4m — reads raw PNM/PAM images and produces YUV4MPEG2 stream on stdout. Converts colourspace
  • ppmtoy4m — reads raw PPM images and produes YUV4MPEG2 stream out stdout. Converts colourspace
  • transist.flt — reads two frame-interlaced YUV4MPEG streams from stdin and writes out translation from one to the other
  • y4mcolorpars — generates standard SMPTE test pattern
  • y4mstabilizer — stabilizes video stream
  • y4mtopnm — reads YUV4MPEG2 stream on stdin, produces PPM, PGM or PAM images on stdout. Converts colourspace
  • y4mtoppm — reads YUV4MPEG2 stream on stdin, produces PPM, PGM or PAM images on stdout. Converts colourspace
  • ypipe — interlaces output of two YUV4MPEG-emitting programs into one output stream
  • yuv2lav — converts raw YUV data to MJPEG video sequence
  • yuvfps — resamples yuv video stream to dfferent frame rate
  • yuvinactive — sets part of incoming image to be blank or filled with colour
  • yuvplay — plays back an MJPEG file with various alterations if requested
  • y4mdenoise — denoises video according to several user-selectable methods
  • y4mscaler — scales incoming video in a flexible way
  • y4munsharp — applies unsharp filter to video, optionally legalizes output
  • pgmtoy4m — converts the PGM output of "mpeg2dec -o pgmpipe" to YUV4MPEG2
  • y4mblack — creates black video
  • y4mhist — creates text-mode histogram/vectorscope from incoming video
  • y4minterlace — creates interlaced output from double-frame-rate progressive input
  • y4mivtc — removes 2:3 pulldown correctly
  • y4mshift — shifts picture data within the frame
  • y4mspatialfilter — FIR filter for noise/bandwidth reduction without scaling
  • y4mtoyuv — converts YUV4MPEG2 to EYUV format
  • yuv4mpeg — converts EYUV to YUV4MPEG2
  • yuvmedianfilter — looks around the current point for a radius and averages values within threshold
  • yuyvtoy4m — relacks YUYV and UYVY into YUV4MPEG2
  • yuvcorrect — applies many colour and interlacing corrections
  • yuvdeinterlae — deinterlaces applying motion compensation
  • yuvdenoise — reduces noise temporally or specially, with fine-tuning
  • yuvkineco — automatically try to remove pulldown patterns
  • yuvycsnoise — denoiser especially for NTSC Y/C separation noise
  • yuvscaler — scales incoming video to many pre-set sizes
  • Synaesthesia
  • synaesthesia - the original sound-to-light program
  • Movit
  • libmovit - for image processing in certain applications
  • libdv — processing library and some utilities for DV digital video streams
  • dubdv — inserts audio into a DV stream, discarding existing audio if any
  • encodedv — encodes incoming uncompressed video or image sequence into DV format
  • fix_headers — might fix DV headers. Documentation and code comments non-existent
  • scan_packet_headers — appears to perform basic packet detection on DV stream into stdin
  • steal_header — appears to write header from one stream onto data of another
  • Swftools
    • as3compile — a stand-alone ActionScript 3.0 compiler to SWF
    • font2swf — converts a freetype-supported font to SWF
    • jpeg2swf — creates SWF from JPEG files
    • png2swf — creates SWF from PNG files
    • swfbbox — calculates, displays and manipulates bounding boxes in SWF files
    • swfc — creates SWF files from simple script files, supporting ActionScript 2.0 and ActionScript 3.0
    • swfcombine — inserts SWFs into Wrapper SWFs, contatenates SWFs, stacks SWFs or manipulates parameters
    • swfdump — retrieves data in SWFs, e.g. images, fonts, sounds; disassembles code, cross-references and bounding box data
    • swfextract — extracts movies, animations, audio, images etc., from SWF files
    • swfrender — renders SWF file to series of static images, suitable for input into film editing
    • swfstrings — outputs text data found in SWF files
    • wav2swf — converts WAV audio to SWF file
  • libpng — library for manipulating, coding and decoding PNG files
  • pngfix — detects and optionally fixes many problems that might occur within PNG files
  • png-fix-itxt — fixes a PNG file written with libpng-1.6.0 or 1.6.1 that has one or more uncompressed iTXt chunks
  • Chromaprint — audio fingerprint library
  • fpcalc — calculate audio fingerprint from incoming file
  • libfribidi — unicode bidirectional algorithm implementation library
  • fribidi — command-line interface to GNU FriBidi library
  • gavl — Gmerlin Audio Video Library
  • gavfdump — prints data from certain files through libgavl
  • GDB — the GNU debugger
  • gdb — the GNU debugger compiled for mingw-w64 debugging
  • gdbserver — the GNU debugger server, for additional facilities
  • dbus — library for inter-process communication
  • gdbus — a tool for working with D-Bus objects
  • gio-querymodules — GIO cache creation
  • qdbus — interrogates a D-Bus server
  • qdbusviewer — QT5 application that interrogates a D-Bus server
  • DCP-o-matic
  • dcpomatic2 — a very flexible DCP creation package
  • dcpdiff — compares metadata and content, ignoring timestamps, of two DCPs
  • dcpdumpsub — extracts subtitles from DCP MXF
  • dcpinfo — outputs information about a DCP
  • dcpomatic2_batch — dcpomatic batch worker
  • dcpomatic2_cli — CLI to DCP-o-matic server
  • dcpomatic2_create — create DCP
  • dcpomatic2_kdm — DCP-o-matic KDM creator with GUI
  • dcpomatic2_kdm_cli — CLI DCP-o-matic KDM creator
  • dcpomatic2_server — DCP-o-matic server
  • dcpomatic_server_cli — CLI to DCP-o-matic server
  • OpenDCP — create SMTPE and Interop DCP packages
  • opendcp_j2k — creates OpenDCP compliant JPEG2000 images in XYZ colourspace from TIFF files
  • opendcp_largefile — tests for large-file support
  • opendcp_mxf — wraps J2K files or audio files in OpenDCP compliant MXF containers
  • opendcp_xml — creates the XML files that provide metadata for MXF containers within a DCP
  • opendcp_xml_verify — verifies the digital signature of an XML DCP file
  • openssl — package to generate, test and manipulate cryptographic keys
  • openssl — shell into libopenssl, for generating, testing and manipulating cryptographic keys and encryption/decryption
  • libebur128 — library and utilities for measuring loudness to EBU R.128 standard
  • loudness — measures EBU R.128 loudness of file, and optionally tag it with this data
  • taglib — library for manipulating metadata of many media file types
  • tagreader — Displays some basic tag information about a file
  • tagreader_c — as 'tagreader' but written in plain C
  • tagwriter — adds metadata to a media file
  • strip_id3v1 — removes the v1 tag in an MP* audio file
  • framelist — offers certain information about id3v1 and id3v2 tags, or APE tags
  • libzip — library and utilities for zip files
  • ziptool — modifies zip files
  • zipmerge — merges zip files
  • zipcmp — compares many details of zip files
  • libOpus — encodes, decodes and manipulates audio using the Opus codec
  • opusdec — decodes Opus audio files
  • opusenc — encodes and tags Opus audio files
  • opusinfo — shows metadata about Opus audio files
  • libspeex — library for encoding and decoding audio with the Speex codec
  • speexenc — encodes audio data using the Speex codec
  • speecdec — decodes compressed audio data using the Speex codec
  • liborc — library for compiling and running simple programs on arrays of data
  • orc-bugreport — processor opcode testing tool
  • orcc — compiles orc instructions
  • asdcp-lib utilities for testing and manipulating Digital Cinema Package (DCP) files
    • asdcp-info — show basic information about files forming part of DCPs
    • asdcp-test — manipulate, disassemble and test DCP files
    • asdcp-unwrap — unwrap DCP file elements, and re-wrap some elements
    • asdcp-util — useful asdcp-lib functions exposed through a command line utility
    • asdcp-wrap — wrap DCP elements (e.g. J2K images and audio) into DCP
    • blackwave — create silent audio elements
    • j2c-test — JP2K parser test
    • klvsplit — split KLV packets
    • klvwalk — test structure of MXF
    • kmfilegen — large file test program
    • kmrandgen — pseudo-random number generator utility
    • knuuidgen — UUID generator
    • MXFDump — test or unwrap MXF files, especially those created for DCPs
    • wavesplit — creates a WAV file for each channel in the input file
  • LAME — Lame Ain't an MPEG Encoder
  • lame — the open-source MP3 encoder
  • WavPack — audio compression that can be lossless
  • wavpack — compress audio losslessly (with lossy option if requested)
  • wavunpack — decompress WavPack compressed audio files
  • wvgain — ReplayGain scanner and tagger
  • libx262 — library using x264 techniques to encode MPEG-2 video
  • x262 — encodes video using the MPEG-2 standard. Better than FFmpeg native coder
  • libx264 — very well-maintained H.264 codec library
  • x264 — encodes video using the H.264/AVC standard
  • libx265 — very well-maintained HEVC (H.265) codec library
  • x265 encodes video using the H.265/HEVC standard
  • libxavs — library implementing the xavs video coding standard
  • xavx — encodes and decodes video compressed with the Xavx codec
  • JACK audio server
  • jack_alias — list active Jack ports and optionally display extra information
  • jack_bufsize — set Jack buffer size
  • jack_connect — connects two Jack ports together
  • jack_cpu_load — observe the CPU load on a Jack server
  • jack_evmon — display client, port and graph events as they happen
  • jack_freewheel — testing tool to switch Jack into freewheeling mode
  • jack_latent_client — simple demo client, copying input to output
  • jack_load — example client, which loads the specified plugin and creates a client
  • jack_lsp — lists active ports
  • jack_metro — metronome
  • jack_midi_dump — listens for MIDI events on a JACK MIDI port
  • jack_midi_latency_test — measures MIDI latency and jitter
  • jack_midiseq — simple command-line MIDI sequencer
  • jack_midisine — generate sine waves
  • jack_monitor_client — monitors server inputs
  • jack_net_master — unknown
  • jack_net_slave — activate slave client
  • jack_rec — write audio from a Jack port to a file
  • jack_samplerate — prints current samplerate
  • jack_server_control — control a Jack server
  • jack_session_notify — unknown
  • jack_showtime — displays current timebase information
  • jack_simple_client — a very simple Jack client
  • jack_simple_session_client — very simple Jack clinet with session manager functions
  • jack_thru — copy input port to output port
  • jack_transport — provides control over the Jack transport system
  • jack_unload — unload a Jack client
  • jack_wait — check for Jack existence, or wait, until it either quits or gets started
  • jack_zombie — close down Jack server
  • jackd — Jack audio server daemon
  • qjackctl — visual control utility for the Jack Audio Daemon
  • libGLEW — the GNU OpenGL Extension Wrangler library
  • glewinfo — write OpenGL information to glewinfo.txt
  • visualinfo — comprehensively lists local machine's OpenGL capabilities
  • libvpx — modern patent-free media encoding/decoding (picture, audio and more) from the WebM project
  • vpxdec — decodes moving pictures in VPn codecs including VP10
  • vpxenc — encodes moving pictures in VPn codecs including VP10
  • libnettle — a low-level crypto library
  • nettle-hash — computes a file's hash using one of a group of selectable algorithms
  • nettle-lfib-stream — generates a pseudorandom stream, using the Knuth lfib (non-cryptographic) pseudorandom generator
  • nettle-pbkdf2 — PKCS #5 password-based key derivation function PBKDF2, see RFC 2898
  • pkcs1-conv — converts private and public RSA keys from PKCS #1 format to sexp format
  • sexp-conv — reads an s-expression on stdin, and outputs the same sexp on stdout, possibly with a different syntax
  • libgpg-error — library that defines common error values for all GnuPG components
  • gbg-error — print all GnuPG error codes
  • libsndfile — library handling and processing many types of sound files
  • sndfile-cmp — compares the PCM data of two sound files
  • sndfile-concat — concatenates audio data of incoming files. Output file has same format as first input. Channels must be identical
  • sndfile-convert — converts between many audio formats, mostly requiring no tuning settings
  • sndfile-deinterleave — splits a multichannel audio file into a group of mono files
  • sndfile-info — displays information about sound files, optionally including instruments and BWAV data
  • sndfile-interleave — merges two or more mono files into a multichannel audio file
  • sndfile-metadata-get — displays many kinds of metadata from audio files, including BWAV data
  • sndfile-metadata-set — sets many kinds of metadata in audio files, including BWAV data
  • sndfile-play — plays audio file readable by libsndfile
  • sndfile-regtest — requires libsqlite3, which we do not currently include
  • sndfile-resample — uses libsamplerate to resample files readable/writable by libsndfile. Many algorithms
  • sndfile-salvage — salvages audio data from conventional WAV files that are over 4GB in size, converts in W64 format
  • LCMS — Little Colour Management System v. 2, a colour management library
  • psicc — generates ICC Postscript using colour management
  • tificc — applies a colour profile to TIFF files, with options to control CMYK printing
  • transicc — calculates conversions between colourspaces
  • jpcicc — applies a colour profile to JPEG files, with options to control CMYK printing
  • linkicc — links profiles into a single devicelink
  • NetCDF — library for creation, access, and sharing of array-oriented scientific data
  • ncgen — generates a program to create a NetCDF data set (older version)
  • ncgen3 — generates a program to create a NetCDF data set (newer version)
  • nccopy — copies and optionally compresses and chunks netCDF data
  • ncdump — converts netCDF data to human-readable form
  • Glib — the GNU extension library
  • glib-compile-resources — compile a resource specification into a resource file
  • glib-compile-schemas — compile all GSettings schema files into a schema cache
  • glib-genmarshal — generates C code marshallers for callback functions of the GClosure mechanism in the GObject sublibrary of GLib
  • gobject-query — display a tree of types
  • gresource — list and extract resources that have been compiled into a resource file or included in an ELF binary
  • gsettings — configuration tool for GSettings
  • gspawn-win64-helper — assists spawning process. Not for user execution
  • gspawn-win64-helper-console — assists spawning process. Not for user execution
  • AtomicParsley — the ultimate MP4 tagger
  • atomicparsley — very comprehensively manipulate tags on MP4 files
  • libMXF and friends
    • avidmxfinfo — displays full details of an Avid Op-Atom MXF file
    • archive_mxf_info, unpicking OP1A MXF files (not Avid Op-Atom files)
    • bmxparse — return detailed internal information about certain media files
    • bmxtranswrap — rewrap from one MXF format to another, including broadcasters' shims
    • h264dump — analyse raw H.264 file (e.g. unwrapped with bmx2raw from OP1a MXF)
    • movdump — very detailed analysis of MP4 or QuickTime file
    • mxf2raw — unwrap MXF files
    • raw2bmx — industry standard wrapper for DPP and Avid MXF files, among others
    • writeavidmxf — obsolete utility that wraps video and audio data in an Avid Op-Atom MXF container
  • gpac — MP4 manipulation utilities from GPAC
  • MP4Box — very comprehensive utility to wrap source files in MP4 container and tag in many ways
  • MP4Client — test MP4 player. Needs plugins (unfinished work)
  • MP42TS — repackage MP4 streams
  • bs2b Bauer binaural processing
    • bs2bconvert — processes stereo files with Bauer binaural algorithms
    • b2sbstream — apply Bauer binaural algorithms to data stream STDIN->STDOUT
  • libbz2
    • bunzip2 — uncompress files compressed with BZ2 algorithm
    • bzcat — uncompress files compressed with BZ2 algorithm to STDOUT
    • bzip2 — compress files with BZ2 algorithm
    • bzip2recover — attempt to repair a BZ2 compressed file
  • libcaca — library to 'display' images on a text-only terminal
    • cacaclock — displays a clock. Font not found, at present
    • cacademo — shows some capabilities of libcaca on a standard text-only terminal
    • cacafire — simulates flames on a text terminal
    • cacaplay — replays libcaca animation files
    • cacaview — display BMP images on a text terminal
    • img2txt — convert a BMP image to text, with a choice of encoding
  • libQT5
    • canbusutil — display data received via the CanBUS automotive protocol
    • qml — interprets/plays QML language
    • qmlscene — loads and displays QML documents even before the application is complete
    • qmltestrunner — runs tests in QML language programs
    • qtdiag — retrieve much information relating to QT5's interaction with a host
    • qtpaths — command line client to QStandardPaths
    • qtplugininfo — Qt5 plugin meta-data dumper
    • xmlpatterns — runs XQuery queries
    • xmlpatternsvalidator — validates XML patterns
  • Tesseract — well-maintained optical character recognition (OCR) package
  • tesseract — command-line OCR
  • libtermcap
    • captoinfo — translates termcap entries
    • clear — clears the terminal window or screen
    • infocmp — displays information about current terminal, or named terminal
    • infotocap — translates terminfo entry to termcap entry
    • tabs — displays or manipulates tab stops
  • libcdio
    • audio — a simple command-line CD player (requires development)
    • cdchange — prompts user to change CD, then detects change
    • cd-drive — retrieves and displays information about CD drive(s)
    • cd-info — retrieves and displays information from inserted CD
    • cdio-eject — eject a CD
    • cd-paranoia — uses libparanoia to perform accurate reading of CD-DA
    • cd-read — performs raw block reading of a CD or file image
    • cdtext — read and display CDTEXT from inserted CD
    • device — read and display capabilities of CD drives
    • discid — calculate ID from inserted audio CD for CDDB enquiry
    • drives — query all drives capable of holding optical media
    • eject — ejects optical disc from given drive
    • extract — extract the full contents of either an UDF or ISO9660 image file.
    • isofile — test program to extract one file from an ISO9660 image
    • isofile2 — test program to extract a file from a CDRWIN cue/bin CD image
    • isofuzzy — test program to show fuzzy ISO-9660 detection/reading
    • iso-info — display information about an ISO9660 image file
    • isolist — show directories found in an ISO9660 image file
    • isolsn — get a file path for a given LSN of an ISO-9660 image
    • iso-read — extract a named file from an ISO9660 image
    • isorr — demo showing using libiso9660 how to see if a file has Rock-Ridge Extensions
    • logging — program showing how to set log verbosity
    • mmc1 — a demo program showing the 'INQUIRY' command given to an optical drive
    • mmc2 — MMC command to list CD and drive features from a SCSI-MMC GET_CONFIGURATION command
    • mmc2a — prints MMC MODE_SENSE page 2A parameters. Page 2a are the CD/DVD Capabilities and Mechanical Status
    • mmc3 — a further demo program
    • mmc-tool — issues libcdio multimedia commands
    • sample3 — discovers the type of CD inserted by using cdio_guess_cd_type()
    • sample4 — discovers the type of CD inserted by using cdio_guess_cd_type()
    • tracks — shows logical sector numbers for each track on an audio CD (CD-DA)
    • udf1 — demonstrates how to list files contained within a UDF image
    • udffile — simple program using libudf to extract a file within a UDF image
  • libdvdread — library for reading DVDs
  • lsdvd — list contents of DVD, in detail
  • lua — interpreted language
  • lua — lua language interpreter (version 5.2.3)
  • luac — lua language compiler (version 5.2.3)
  • Mediainfo — library and utility for parsing many types of media files
  • mediainfo — command-line program for recognising and displaying data about many types of media files
  • mediainfo-gui — the GUI for Mediainfo. Temporarily lacks icons
  • MLT — Multimedia Framework
  • melt — command-line interface to MLT libraries, plugins, filters, etc.
  • GnuTLS
    • certtool — create, test and display certificates and their data
    • gnutls-cli — GnuTLS client shell
    • gnutls-cli-debug — sets up multiple TLS connections to a server to test and query its capabilities
    • gnutls-serv — server that listens to incoming TLS connections
    • ocsptool — parses and prints information about OCSP requests/responses, generates requests and verifies responses
    • pkstool — generates random keys for use with TLS-PSK. The keys are stored in hexadecimal format in a key file
    • srptool — emulates the programs in the Stanford SRP (Secure Remote Password) libraries
  • libjpeg
    • cjpeg — the original program to convert bitmaps to JPEG files
    • djpeg — the original program to convert JPEG files to bitmaps
    • jpegtrans — manipulate JPEG files without recoding
    • rdjpgcom — reads and displays comments found in JPEG files
    • wrjpgcom — writes and replaces comments into JPEG files
  • libjpeg-turbo
  • tjbench — benchmark and test libjpeg-turbo
  • OpenJPEG and OpenJPEG2 — create, decode and manipulate JPEG 2000 images
  • opj_compress — the standard JPEG 2000 compressor. Compresses with many options
  • opj_decompress — the standard JPEG 2000 decompressor. Decompresses to several formats
  • opj_dump — dumps JPEG 2000 datastream
  • OpenCV — artificial intelligence applied to imaging
  • opencv_annotation — add annotations to images
  • opencv_createsamples — produces dataset of positive samples in a format that is supported by both opencv_haartraining and opencv_traincascade applications
  • opencv_traincascade — trains cascade classifier to produce data for identifying objects within images
  • libcddb
    • cddb_query — retrieves CD data from server (crashes, cause unknown)
  • libbluray
    • bd_info — displays information about a Blu-Ray disc
  • libTIFF
    • bmp2tiff — converts and optionally compresses BMP to TIFF
    • fax2ps — converts TIFF fax image to Postscript
    • fax2tiff — converts raw fax data to TIFF
    • gif2tiff — converts GIF file to TIFF
    • pal2rgb — converts palletized TIFF file to full-colour RGB TIFF file
    • ppm2tiff — converts PPM file to TIFF file
    • ras2tiff — converts a file in the Sun rasterfile format to TIFF
    • raw2tiff — converts a raw byte sequence into TIFF
    • rgb2ycbcr — converts RGB TIFF into YCbCr TIFF using Rec.601 coefficients (hard-coded)
    • thumbnail — creates a TIFF file with embedded thumbnail image
    • tiff2bw — converts colour TIFF file to monochrome, with simple fixed coefficients
    • tiff2pdf — generates PDF equivalent of TIFF file including image conversion
    • tiff2ps — generates PostScript equivalent of TIFF file including image conversion
    • tiff2rgba — converts a TIFF file to RGBA colourspace
    • tiffcmp — compares image data of two TIFF files
    • tiffcp — combines and converts TIFF images. Image data is not altered, but its representation may be changed
    • tiffcrop — crops and optionally converts TIFF images
    • tiffdither — converts greyscale TIFF to bilevel with dithering
    • tiffdump — retrieve much information about TIFF files
    • tiffinfo — retrieve human-readable information about TIFF files
    • tiffmedian — applies the median cut transform to a TIFF file to generate a palletized image
    • tiffset — sets tags within TIFF files
    • tiffsplit — splits a multi-page or multi-image TIFF file into individual images
  • librtmp — handlers for RTMP content
  • rtmpdump — dumps media content streamed over RTMP
  • rtmpgw — gateways between RTMP and HTTP
  • rtmpsrv — logs connect and play parameters from client that connects to it then invokes rtmpdump with those parameters to retrieve the stream
  • rtmpsuck — transparent proxy that tees data to a file while client also retrieves RTMP data
  • poppler — library and utilities to manipulate, generate, read and convert PDF files
  • pdfdetach — lists and saves attachments found in PDF files
  • pdffonts — lists fonts found in PDF files
  • pdfimages — discovers images within PDF files and saves them
  • pdfinfo — prints information about PDF files
  • pdfseparate — splits multi-page PDF file into its constituent pages
  • pdftohtml — converts PDF files into HTML files, with many user-selectable options
  • pdftoppm — converts PDF files into PPM graphics files
  • pdftops — remakes PDF files as Postscript files
  • pdftotext — extracts text from PDF files, with control over layout and parsed areas
  • pdfunite — joins many PDF files into one
  • poppler-qt5viewer — displays PDF file in graphical window: a simple PDF reader program
  • cuetools — manipulates CUE and BIN files associated with audio CD mastering or ripping
  • cueconvert — converts between CUE and TOC formats
  • cuebreakpoints — prints the breakpoints from a CUE or TOC file
  • cueprint — prints disc and track information for a CUE or TOC file
  • cuetag — tags files based on CUE or TOC information
  • libpcre — Perl-compatible regular expression library
  • pcregrep — grep using the PCRE regular expression library, compatible with the regular expressions of Perl 5
  • pcretest — performs tests upon regular expressions using the PCRE library
  • Leptonica — image processing package
    • convertsegfilestopdf — converts all segmented image files in the given directory with matching substring to a mixed-raster pdf
    • convertsegfilestops — converts all segmented image files in the given directory with matching substring to a mixed-raster ps
    • converttopdf — converts all image files in the given directory with matching substring to a pdf
    • converttops — converts all image files in the given directory with matching substring to a ps
    • fileinfo — provide low-level input about image files, comparing data to header
    • printimage — converts image to PostScript, optionally sends to lpr-style printer. Very insecure program
    • printsplitimage — like printimage but splits image across any number of pages. Also insecure
    • printtiff — like printimage but handles vertical scaling of fax files correctly. Also insecure
    • splitimage2pdf — converts image to PDF, split across pages in two dimensions
    • xtractprotos — extracts prototypes from source files
  • Youtube-DL — Python program for downloading media files from many websites including YouTube
  • youtube-dl — command-line interface for the above
  • libcurl
    • curl — extremely versatile URL grabber
  • libwebp — Google's static image format
    • cwebp — compress image to webp image
    • dwebp — decompress webp image
  • libdcadec — DTS Coherent Acoustics decoding library
    • dcadec — decode DTS files and optionally provide information about them
  • ICU — International Components for Unicode
    • derb — disassembles and saves resource bundle files
    • genbrk — reads in break interation rules text, and writes out the binary data
    • genccode — reads binary input files and creates a .c file with a byte array containing the input data
    • gencfu — reads in Unicode confusable character definitions and writes out the binary data
    • gencmn — takes a set of files and packages them as an ICU memory-mappable data file
    • gencnval — reads convrtrs.txt and creates icudt56l_cnvalias.icu
    • gendict — reads in a word list, and writes out a string trie dictionary
    • gennorm2 — reads input files with normalization data and creates a binary or .c file with the data
    • genrb — reads a list of resource bundle source files, and creates binary version of resource bundles
    • gensprep — reads specified files and creates a binary file with the StringPrep profile data
    • icuinfo — returns information on ICU implementation
    • icupkg — extracts and/or modifies ICU .dat archive
    • makeconv — reads .ucm codepage mapping files and writes .cnv file
    • pkgdata — produces packaged ICU data from the given list(s) of files
    • uconv — intelligently converts from one character set to another following ICU standards
  • Mediainfo — libraries and executable to parse many types of media files
  • mediainfo — command-line media file parser
  • mediainfo-gui — GUI to mediainfo. Icons lacking at time of writing
  • Get_Iplayer — package to download and save BBC iPlayer programmes, and hear live radio. Licence-fee payers may also watch live TV
  • get_iplayer.cmd — command-line launcher for get_iplayer
  • get_iplayer.pl — Perl program interacting with BBC iPlayer media servers
  • gettext — tools providing a framework to help other GNU packages produce multi-lingual messages
  • envsubst — Substitutes the values of environment variables, copying STDIN->STDOUT
  • gettext — display native language translation of a textual message *
  • msgattrib — filters the messages of a translation catalog according to their attributes, and manipulates the attributes
  • msgcat — concatenates and merges specified PO files
  • msgcmp — compares two Uniforum style .po files to check that both contain the same set of msgid strings
  • msgcomm — finds messages that are common to two or more of the specified PO files
  • msgconv — converts a translation catalogue to a different character encoding
  • msgen — creates an English translation catalogue
  • msgexec — applies a command to all translations of a translation catalogue
  • msgfilter — applies a filter to all translations of a translation catalogue
  • msgfmt — generates binary message catalogue from textual translation description
  • msggrep — extracts all messages of a translation catalogue that match a given pattern or belong to some given source files
  • msginit — creates a new PO file, initializing the meta information with values from the user's environment
  • msgmerge — merges two Uniforum style .po files together
  • msgunfmt — convertsbinary message catalogue to Uniforum style .po file
  • msguniq — unifies duplicate translations in a translation catalogue
  • ngettext — displays native language translation of a textual message whose grammatical form depends on a number
  • recode-sr-latin — recodes Serbian text from Cyrillic to Latin script, STDIN->STDOUT
  • xgettext — extracts translatable strings from input files
  • DJV — versatile and accurate professional image sequence decoder and viewer
    • djv_convert — batch processing and conversion of images and video files
    • djv_info — report basic information on all video and image files within a directory
    • djv_ls — directory listing
    • djv_view — versatile viewer for high-end video files or image sequences
    • djvGlslTest — test graphic manipulation capabilities
    • djvImagePlayTest — test rendering speed
    • djvImageViewTest — test rendering capability
    • djvTest
    • djvWidgetTest — test many different widget types
  • GTK+-3 The GIMP Toolkit widget set, version 3
  • doxygen — generate and update in-code documentation
  • liba52 — decode and separate A52 audio (Dolby AC-3)
  • a52dec — decodes and outputs audio from AC-3 encoded streams
  • extract_a52 — demultiplexes AC-3 audio from transport stream
  • librubberband — pitch and tempo shifting
  • rubberband — manipulates pitch and tempo of audio files. Inferior to facility in SoX
  • libgcrypt
    • dumpsexp — debug tool for S-expressions
    • hmac256 — compute an HMAC-SHA-256 message authentication code
    • mpicalc — Reverse Polish Notation interactive big integer calculator
  • wxWidgets — GUI library
  • wxrc — compiles binary resource files
  • MPV — modern multimedia player using FFmpeg libav* foundation
  • mpv — player for multimedia files
  • dvdauthor — very comprehensive toolkit for DVD authoring
  • dvdauthor — creates DVD file structure using source files controlled by XML
  • mpeg2desc — multiplex or demultiplex streams using MPEG2 containers
  • dvdunauthor — removes DVD file structure, deleting your work
  • dvdbackup — rip DVDs including CSS-protected discs
  • spumux — encodes subtitles and multiplexes them into an MPEG-2 program stream
  • spuunmux — demultiplexes subtitles from an existing MPEG-2 program stream
  • exif — query and modify exif data within image files
  • exiv2 — query exif data within image files, more fine-grained than exif
  • fontconfig
    • fc-cache — build font information caches
    • fc-cat — read font information cache
    • fc-list — list fonts known to fontconfig
    • fc-match — list best font matching a given pattern
    • fc-pattern — list best font matching a given pattern
    • fc-query — query font file and return pattern
    • fc-scan — scan font files and directories, and print resulting pattern(s)
    • fc-validate — validate font files and print results
  • libiconv — handle text encoding and conversions between encodings
  • iconv — convert text from one encoding to another encoding
  • Gcal — the very flexible GNU calendar program
  • gcal — phenomenally powerful calendar printing and calculation program
  • libFLAC
  • flac — very comprehensive FLAC encoder and decoder
  • metaflac — very comprehensive parser and editor for FLAC metadata
  • MkvToolNix — libraries and utilities for examining and manipulating files in Matroska containers
  • mkvextract — extract files, tags, attachments and/or chapters from Matroska containers
  • mkvinfo — very detailed parser for Matroska containers
  • mkvmerge — create Matroska files with very fine-grained control
  • mkvpropedit — detailed control/listing of properties of Matroska file
  • mkvtoolnix-gui — Qt5 interface to perform many operations creating, parsing and editing Matroska files
  • ncurses — library for control over many types of text terminal and virtual terminals
  • reset — attempts to reset a terminal to sensible defaults after a problem
  • tic — compiles or translates terminal information between termcap and terminfo
  • toe — creates table of entries of terminals known to local installation of ncurses
  • tput — initialize a terminal or query terminfo database
  • tset — reset a terminal
  • libtwolame — library to encode MPEG Layer II audio (MP2)
  • twolame — encoder for MPEG Layer II audio (MP2)
  • Vim — Vi Improved, a version of the venerable vi screen editing program
  • vim — the original editor running in a command shell window
  • gvim — Vim running in a Windows graphical window, with menus, etc.
  • libXML2 — library for handling XML
  • xmlcatalog — parses the catalog file and queries it for the entities
  • xmllint — parses the XML files and returns the result(s) of the parsing
  • libxslt — processor library for XML transformations
  • xsltproc — processes XML file with stylesheet

BINARY DISTRIBUTION

I keep a binary installer on my website. http://gallery.johnwarburton.net/MultimediaTools-mingw-w64-Open-source.exe

Some of the binaries use shared libraries, ending in .dll. Like the executable programs, they're in the /bin/ directory of the distribution. Please keep them together with the .exe programs.

BACKGROUND

Supporting the cross-compilation of the very versatile FFmpeg utilities under mingw-w64, Roger Pack with Zeranoe and others publish a set of patches and a build script to, first, compile a working mingw-w64 environment on a POSIX system, then compile a very full FFmpeg and associated libraries and utilities within mingw-w64 ready for installation on a Windows 64-bit system.

With grateful thanks to the Zeranoe and other developers especially Roger Pack, I have extended this build system for my own purposes. At first, this was developed using the Cygwin compatibility suite for Windows, but now it is developed on GNU/Linux.

THANKS

LICENCE

My script, very much derived from others' work, is released under the GNU Affero GPL Version 3 licence. You will find it at the top of this repository. Please adhere to it. All other programs have their own open source licences, which can be found within their source trees.

The version of FFmpeg built here is non-redistributable.