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.

Sources

For building the aforementioned binary releases, you need to use the Cerbero build aggregator maintained by the GStreamer project which supports building on Linux, macOS, and Windows.

For downloading each GStreamer module individually, check our modules page, or go straight to our source download directory.

Generally, you should not need to build from source yourself unless you need features that are only available in a newer version of GStreamer than is provided by your distribution or in the last stable release.

For doing GStreamer development, we recommend using the GStreamer monorepo build from Git which will build all the main GStreamer modules in one go using Meson's subproject feature.

Windows

The latest stable release is 1.28.8. Installers are available for the following targets:

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.

Starting with 1.28, the installers are built with Inno Setup 6, which now allows user-only as well as system-wide installs. The default installation directory is %LOCALAPPDATA%\Programs\gstreamer\1.0\abi>_<arch> for user-only installs, and %ProgramFiles%\gstreamer\1.0\<abi>_<arch> for system-wide installs. This can be changed from the installation wizard or from the command line (see below).

The installers also accept optional command line parameters. These can be useful for unattended installations. Here's a short list of the most important ones:

  • /DIR=path sets the full path to the installation directory, e.g. /DIR=z:/path/to/gst will result in gst-launch-1.0 being installed to z:/path/to/gst/bin/gst-launch-1.0.exe. This parameter allows slashes and backslashes for directory separator.
  • /TYPE=debug (or devel, runtime) sets the installation type to "Runtime, development headers and debug symbols", "Runtime and development headers", and "Only runtime", respectively.
  • /ALLUSERS and /CURRENTUSER set the installation to be performed for all users or just the current user, respectively.
  • /SILENT just displays the progress dialog; /VERYSILENT displays no dialogs at all except when an error occurs. They are usually coupled with /NORESTART to avoid unattended reboots.

You can read more about them in the Inno Setup Help.

Python wheels are also available via PyPI, starting with 1.28.0. Simply run:

pip install gstreamer-bundle

NOTE: The libraries built with MSVC are named differently 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.

Older 1.x binary releases are also available. Older installers are split into runtime and development packages, so for app development, you will want to install both packages.

The Universal Windows Platform builds are in the download archive.

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 versionMinGWMSVC
1.18+ucrtbase.dllucrtbase.dll
1.16msvcrt.dllucrtbase.dll
1.14msvcrt.dllN/A

This is the toolchain compatibility matrix with the stable releases:

App Toolchain1.16 MinGW1.16 MSVC1.18+ MinGW1.18+ MSVC
Visual Studio 2015 and newer (ucrtbase.dll)PARTIALFULLFULLFULL
Visual Studio 2013 and older (msvcrt.dll)PARTIALPARTIALPARTIALPARTIAL
MinGW (msvcrt.dll)FULLPARTIALPARTIALPARTIAL
MinGW-w64 (msvcrt.dll)FULLPARTIALPARTIALPARTIAL
MSYS2 MinGW-w64 (msvcrt.dll)FULLPARTIALPARTIALPARTIAL
CygwinNONENONENONENONE

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.

macOS

Binary releases in the form of .pkg framework installers are available. The installers are split into runtime, development, and debug packages. For development, you will want to install both runtime and development packages. The oldest supported macOS is 10.13 (High Sierra).

Python wheels are also available via PyPI, starting with 1.28.0. Simply run:

pip install gstreamer-bundle

GStreamer is also maintained by third-parties in the Homebrew package. You should be able to use that, but please note that some plugins are not shipped by Homebrew, and you should avoid mixing Homebrew and the official installers on the same system.

Older 1.x binary releases are also available.

Linux

All Linux distributions and many BSD variants provide packages of GStreamer. You will find these in your distribution's package repository.

Arch package Debian 14 package Debian unstable package Fedora 44 package Fedora rawhide package Manjaro stable package Manjaro unstable package openSUSE Leap 15.6 package openSUSE Tumbleweed package Ubuntu 24.04 LTS package Ubuntu 26.04 package

Note that some distributions split the GStreamer plugins up further than the upstream sources. Additionally, some distributions do not include some plugins from the gst-plugins-bad package, or omit the gst-plugins-ugly and gst-libav packages entirely in their main repository for legal reasons.

gst-plugins-rs is another large set of plugins that aren't packaged by some distros. Since these are in a standalone repository, it is straightforward for developers to build them by hand with cargo-c.

Android

Binary releases are available with each in the form of a single "universal" tarball with armv7, arm64, x86, and x86_64 architectures in subfolders.

The Android NDKs used by our stable releases are:

GStreamer versionNDK Version
1.28.xr25c
1.26.xr25c
1.24.xr25c
1.22.xr21
1.20.xr21
1.18.xr21
1.16.xr18b

The Android APIs targeted by our stable release(s) are:

ArchitectureAPI Targeted (GStreamer 1.22 - 1.26)API Targeted (GStreamer >= 1.28)
armv7v21 (Lollipop)v24 (Nougat)
x86v21 (Lollipop)v24 (Nougat)
arm64v21 (Lollipop)v24 (Nougat)
x86_64v21 (Lollipop)v24 (Nougat)

Older 1.x binary releases are also available.

iOS, tvOS

Binary releases are available in two forms: a legacy framework, and an xcframework (1.28+). The legacy framework only supports iOS and an iOS Simulator on an Intel Mac. The xcframework supports iOS and iOS Simulator (ARM64 and X86_64). Starting with 1.28.8, it also supports tvOS, and tvOS Simulator (ARM64 and X86_64).

The legacy framework downloads are in the download archive.

Older 1.x binary releases are also available.