Last active
October 4, 2021 18:06
-
-
Save djthorpe/864c11ef7cba2d0f8341eacc836ecec4 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
#!/bin/bash | |
# | |
# Build gstreamer for Raspberry Pi | |
# Edit the SRC and DEST environment variables at the top and then | |
# run this script. You'll need to add the following two envronment | |
# variables to your .profile | |
# | |
# LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PREFIX}/lib" | |
# PATH="${PATH}:${PREFIX}/bin" | |
# | |
# Then logout and log back in again. | |
# | |
# Author: David Thorpe <[email protected]> | |
# Install parameters | |
SRC="${HOME}/projects/gstreamer" | |
DEST="/opt" | |
PREFIX="${DEST}/gstreamer" | |
VC="/opt/vc/lib/pkgconfig" | |
# Preamble | |
echo GStreamer installation: | |
echo | |
echo " SRC=${SRC}" | |
echo " PREFIX=${PREFIX}" | |
echo | |
# Create build folder | |
if [ ! -d "${SRC}" ]; then | |
install -d "${SRC}" || exit -1 | |
fi | |
# Munge pkgconfig | |
cd "${VC}" | |
if [ ! -f "${VC}/egl.pc" ]; then | |
sudo ln -s brcmegl.pc egl.pc | |
fi | |
if [ ! -f "${VC}/glesv2.pc" ]; then | |
sudo ln -s brcmglesv2.pc glesv2.pc | |
fi | |
# Create destination folders | |
if [ ! -w "${DEST}" ]; then | |
sudo chgrp users "${DEST}" | |
sudo chmod g+w "${DEST}" | |
fi | |
if [ ! -d "${PREFIX}" ]; then | |
install -d "${PREFIX}" || exit -1 | |
fi | |
# Install dependencies | |
sudo apt-get -y -q install \ | |
meson libglib2.0-dev flex bison \ | |
libvorbis-dev libtheora-dev libflac-dev libdv4-dev \ | |
libwavpack-dev libopus-dev liba52-0.7.4-dev \ | |
libmp3lame-dev libmpeg2-4-dev libx264-dev libx265-dev \ | |
libsoup2.4-dev | |
# Get gst-build repo | |
cd "${SRC}" | |
[ ! -d gst-build ] && git clone git://anongit.freedesktop.org/git/gstreamer/gst-build | |
# Configure and build | |
cd "${SRC}/gst-build" | |
PKG_CONFIG_PATH="${VC}" meson --prefix="${PREFIX}" build \ | |
-D gst-plugins-base:gl_api=gles2 \ | |
-D gst-plugins-base:gl_platform=egl \ | |
-D gst-plugins-base:gl_winsys=dispmanx \ | |
-D gst-plugins-base:gles2_module_name=/opt/vc/lib/libbrcmGLESv2.so \ | |
-D gst-plugins-base:egl_module_name=/opt/vc/lib/libbrcmEGL.so \ | |
-D gst-plugins-bad:bluez=disabled -D gst-plugins-bad:opencv=disabled -D bad=enabled \ | |
-D omx=enabled -D gst-omx:header_path=/opt/vc/include/IL -D gst-omx:target=rpi \ | |
-D python=disabled -D introspection=disabled -D examples=disabled || exit -1 | |
ninja -C build install || exit -1 | |
# End with success | |
echo | |
echo Add the following lines to your .profile file: | |
echo | |
echo " LD_LIBRARY_PATH=\"\${LD_LIBRARY_PATH}:${PREFIX}/lib\"" | |
echo " PATH=\"\${PATH}:${PREFIX}/bin\"" | |
echo | |
echo ...then logout and log back in again. | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment