Created
October 21, 2023 11:42
-
-
Save bigface0202/43d2b01024af400b5b64a91e849f05b7 to your computer and use it in GitHub Desktop.
Building gstreamer v1.19.2 on Raspberry Pi 4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:18.04 | |
USER root | |
# Set time zone | |
ENV TZ=Asia/Tokyo | |
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone | |
# Install Python | |
RUN apt update && apt -y --no-install-recommends install \ | |
sudo \ | |
python3 \ | |
python3-dev \ | |
python3-pip \ | |
wget | |
RUN sudo apt install -y python3.8 | |
# Set Python3.8 as default python3 | |
RUN sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 | |
RUN sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2 | |
RUN sudo update-alternatives --auto python3 | |
RUN sudo update-alternatives --config python3 | |
# Install meson | |
RUN sudo python3.8 -m pip install -U pip && sudo python3.8 -m pip install meson | |
# Install cmake | |
RUN sudo apt install build-essential checkinstall zlib1g-dev libssl-dev -y | |
WORKDIR /home | |
RUN wget https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz | |
RUN tar -zxvf cmake-3.25.1.tar.gz | |
RUN cd cmake-3.25.1 && sudo ./bootstrap && sudo make && sudo make install | |
WORKDIR /home | |
# Install dependent libraries | |
RUN sudo apt -y --no-install-recommends install \ | |
vim \ | |
wget \ | |
pkg-config \ | |
git \ | |
autoconf \ | |
automake \ | |
libtool \ | |
flex \ | |
bison \ | |
libglib2.0-dev \ | |
libjpeg-dev \ | |
libx264-dev \ | |
libgtk2.0-dev \ | |
libcanberra-gtk* \ | |
libgtk-3-dev \ | |
libasound2-dev \ | |
libegl1-mesa-dev \ | |
libglfw3-dev \ | |
libgles2-mesa-dev \ | |
libjpeg-dev \ | |
librtmp-dev \ | |
libvo-aacenc-dev \ | |
ca-certificates \ | |
ninja-build \ | |
libxml2-dev \ | |
libffi6 \ | |
libffi-dev | |
# Build and install latest wayland | |
RUN git clone https://gitlab.freedesktop.org/wayland/wayland.git | |
WORKDIR /home/wayland | |
RUN export WLD=/usr && meson build/ -Ddocumentation=false && meson build/ --prefix=$WLD && ninja -C build/ install | |
# Build and install latest wayland-protocols | |
WORKDIR /home | |
RUN git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git | |
WORKDIR /home/wayland-protocols | |
RUN export WLD=/usr && meson build/ --prefix=$WLD && ninja -C build/ install | |
# Create directory | |
WORKDIR /home | |
RUN mkdir gst | |
# Install gstreamer core | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.19.2.tar.xz && tar -xf gstreamer-1.19.2.tar.xz | |
WORKDIR /home/gst/gstreamer-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
--wrap-mode=nofallback \ | |
-D gst_debug=true \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ \ | |
-D package-name="GStreamer 1.19.2 BLFS" .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig | |
# plugin-base | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.19.2.tar.xz && tar -xf gst-plugins-base-1.19.2.tar.xz | |
WORKDIR /home/gst/gst-plugins-base-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
-D gl_winsys=wayland \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig | |
# plugin-good | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.19.2.tar.xz && tar -xf gst-plugins-good-1.19.2.tar.xz | |
WORKDIR /home/gst/gst-plugins-good-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ \ | |
-D package-name="GStreamer 1.19.2 BLFS" .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig | |
# plugin-bad | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.19.2.tar.xz && tar -xf gst-plugins-bad-1.19.2.tar.xz | |
WORKDIR /home/gst/gst-plugins-bad-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ \ | |
-D package-name="GStreamer 1.19.2 BLFS" .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig | |
# plugin-ugly | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.19.2.tar.xz && tar -xf gst-plugins-ugly-1.19.2.tar.xz | |
WORKDIR /home/gst/gst-plugins-ugly-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ \ | |
-D package-name="GStreamer 1.19.2 BLFS" .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig | |
# RTSP-server | |
WORKDIR /home/gst | |
RUN wget https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.19.2.tar.xz && tar -xf gst-rtsp-server-1.19.2.tar.xz | |
WORKDIR /home/gst/gst-rtsp-server-1.19.2 | |
RUN mkdir build && cd build && meson --prefix=/usr \ | |
--wrap-mode=nofallback \ | |
-D package-origin=https://gstreamer.freedesktop.org/src/gstreamer/ \ | |
-D package-name="GStreamer 1.19.2 BLFS" .. \ | |
&& ninja -j4 && sudo ninja install && sudo ldconfig |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment