Skip to content

Instantly share code, notes, and snippets.

@darfink
Created December 8, 2023 14:58
Show Gist options
  • Save darfink/78051a36377edf0ca0ff3c8081e81af1 to your computer and use it in GitHub Desktop.
Save darfink/78051a36377edf0ca0ff3c8081e81af1 to your computer and use it in GitHub Desktop.
Build Gstreamer (1.23) from source for Ubuntu 23.04
# Use Ubuntu as the base image
FROM ubuntu:23.04
# Update package lists and install necessary dependencies
RUN apt-get update && \
apt-get install -y \
build-essential \
libgstreamer1.0-dev \
meson \
flex \
bison \
libaom-dev libass-dev libbs2b-dev libbz2-dev libc-dev libcairo-dev libchromaprint-dev libcurl3-gnutls libdc1394-dev libdca-dev libde265-dev libdirectfb-dev libdrm-dev libdvdnav-dev libdvdread-dev libfaad-dev libfluidsynth-dev libfreeaptx-dev libglib2.0-dev libgme-dev libgsm1-dev libgudev-1.0-dev libimath-dev libjson-glib-dev libkate-dev liblcms2-dev libldacbt-enc-dev liblilv-dev liblrdf-dev libltc-dev libmodplug-dev libmpcdec-dev libneon27-dev libopenal-dev libopenexr-dev libopenh264-dev libopenjp2-7-dev libopenmpt-dev libopenni2-dev libopus-dev liborc-dev libpango1.0-dev libqrencode-dev librsvg2-dev librtmp-dev libsbc-dev libsndfile-dev libsoundtouch-dev libspandsp-dev libsrt-openssl-dev libsrtp2-dev libssl-dev libusb-dev libva-dev libvo-aacenc-dev libvo-amrwbenc-dev libwebp-dev libwebrtc-audio-processing-dev libwildmidi-dev libx11-dev libx265-dev libxml2-dev libzbar-dev libzvbi-dev libzxing-dev libfaac-dev \
ninja-build \
wget \
pip \
git
# Ensure meson >= 1.1 is used for gstreamer
RUN python3 -m pip install --break-system-packages --upgrade meson
# Create a working directory
WORKDIR /app
# Clone the GStreamer repository
RUN git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git
RUN git config --global user.name docker && git config --global user.email default@foobar.com
# Enter the gstreamer directory
WORKDIR /app/gstreamer
# Build all features by default
WORKDIR /app/gstreamer/build
RUN meson setup .. \
--buildtype=release \
-Dgpl=enabled \
-Dpackage-origin=https://gitlab.freedesktop.org/gstreamer/gstreamer.git
RUN ninja
RUN ninja install
# Replace with proper arch if necessary
ENV LD_LIBRARY_PATH="/usr/local/lib/aarch64-linux-gnu"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment