GStreamer
open source multimedia framework
Home
Features
News
Annual Conference
Planet (Blogs)
Download
Applications
Security Center
GitLab
Developers
Documentation
Forum
File a Bug
Artwork
@gstreamer on Twitter
@gstreamer on Mastodon
#gstreamer on Matrix

Download GStreamer

If you're on Linux or a BSD variant, you can install GStreamer using your package manager.

For other platforms listed below, we provide binary releases in the form of official installers or tarballs maintained by the GStreamer project.

Choose your platform below for more information.

Binary releases in the form of MSI installers are available. The installers are split into runtime and development packages. For development, you will want to install both packages.

For each of the above listed targets, a zip file with .msm modules is available for integration into your own WiX-based app installer.

If you are not sure which to pick between MSVC and MinGW, just pick MSVC. However, do see the toolchain compatibility notes below which may affect you based on what toolchain your app will be built with.

NOTE: The library names in MSVC are different from MinGW; specifically the DLLs are of the form foo.dll instead of libfoo.dll.

NOTE: GstSharp .NET bindings require the MSVC binaries starting with 1.18.

NOTE: Some of the plugins shipped with the MSVC binaries link to non-gstreamer libraries built with MinGW because they are built with Autotools. See below for what this means for your application.

Older 1.x binary releases are also available.

Universal Windows Platform

Binary releases built to target the Universal Windows Platform (UWP). Used for shipping apps on the Windows Store, such as for an XBox, HoloLens 2, etc.

UWP apps cannot use plugins that use dependencies built with MinGW because of forbidden APIs. Hence, these plugins are omitted from the binaries.

Toolchain Compatibility Notes

On Windows, you can use a number of different toolchains and versions thereof, and it is not always obvious how these can be mixed and matched with the binaries provided above by GStreamer.

The first step is ensuring that you're using the correct architecture. You should not try to mix 32-bit code built with any toolchain with 64-bit code built with any toolchain.

Next, understand that since GStreamer is written mostly in C, all APIs exported by GStreamer libraries and plugins use C ABIs. Even plugins written in other languages such as Rust, C++, C#, Python, etc, are loaded using the C ABI.

This means you can consume the GStreamer binaries from any toolchain that uses the same C ABI. Using the same CRT (C Runtime) is better, but it's not always a requirement. Here's the matrix outlining the CRT used for each GStreamer version:

GStreamer version MinGW MSVC
1.18+ ucrtbase.dll ucrtbase.dll
1.16 msvcrt.dll ucrtbase.dll
1.14 msvcrt.dll N/A

This is the toolchain compatibility matrix with the stable releases:

App Toolchain 1.16 MinGW 1.16 MSVC 1.18+ MinGW 1.18+ MSVC
Visual Studio 2015 and newer (ucrtbase.dll) PARTIAL FULL FULL FULL
Visual Studio 2013 and older (msvcrt.dll) PARTIAL PARTIAL PARTIAL PARTIAL
MinGW (msvcrt.dll) FULL PARTIAL PARTIAL PARTIAL
MinGW-w64 (msvcrt.dll) FULL PARTIAL PARTIAL PARTIAL
MSYS2 MinGW-w64 (msvcrt.dll) FULL PARTIAL PARTIAL PARTIAL
Cygwin NONE NONE NONE NONE

FULL means full C compatibility, including debugging symbols.

PARTIAL means mixing the two should be fine as long as you are careful while passing memory across CRT boundaries.

NONE means fully unsupported, and will lead to crashes.


Report a problem on this page.