docker-gstreamer
Ubuntu 22.04-based container images with upstream GStreamer and plugins pre-installed
Following components are present:
- GStreamer
- gst-plugins-base
- gst-plugins-good
- gst-plugins-bad (with
msdk
) - gst-plugins-ugly
- gst-libav
- gstreamer-vaapi
- libnice (newer version from git)
- WPE WebKit (newer version from upstream release)
- gstcefsrc
GStreamer and components are tracking upstream master branches (with minor fixes on top) and are usually updated a few times a month. There are also builds of stable upstream releases available as well.
Base OS is Ubuntu 22.04.
NOTE:
- 1.18.2.0 images and older were based on Ubuntu 20.04
- 2020-12-30T23-16-11Z images and older were based on Ubuntu 20.04
- 1.18.4.0 images and older were based on Ubuntu 20.10
- 2021-06-08T14-12-58Z images and older were based on Ubuntu 20.10
SCCache support
The sysroot includes WPEWebKit, which is a huge project and requires a good build machine. However in case you have access to a SCCache scheduler online, you can use it to build WPEWebKit:
export SCCACHE_SCHEDULER=https://sccache.corp.com
export SCCACHE_AUTH_TOKEN=s3cr3t
export WEBKIT_USE_SCCACHE=1
./build-latest.sh
The configuration template stored in sccache.toml
is filled with the scheduler
address and authentication token supplied through the corresponding environment
variables.
Builds on Docker Hub
Builds use Restream-specific patches by default, but there are also vanilla upstream builds available.
There are 4 kinds of images pushed to Docker Hub:
- restreamio/gstreamer:x86_64-latest-dev-with-source - includes unoptimized build with debug symbols and even source code it was built with
- restreamio/gstreamer:x86_64-latest-dev - same as above, but without source code for development purposes
- restreamio/gstreamer:x86_64-latest-prod - optimized (
-O3
andLTO
) build without debug symbols for production purposes - restreamio/gstreamer:x86_64-latest-prod-dbg - optimized (
-O2
only) build with debug symbols included for production purposes with better debugging experience
For Linux/ARM64 builds, replace x86_64
with aarch64
in the Docker tags. For
further convenience, multi-arch images aggregating both builds are available as
well, just remove the $ARCH-
prefix from docker labels.
There are also above tags prefixed with build date for stable reference.
Finally, starting with 1.18.1
there are also vanilla builds using stable upstream releases with no patches applied, whose tags you can also find on Docker Hub.
Stable released have 2 tags:
- regular like
1.18.1
that is a latest build of that upstream release - stable reference with one more number after regular
major.minor.patch
that starts with 0 and is incremented if there are multiple builds for the same upstream stable version (like1.18.1.0
)
Contribution
Feel free to create issues and send pull requests, they are highly appreciated!
License
Zero-Clause BSD