Open Source Media Framework - GStreamer VAAPI/Intel® Media SDK Installation Environment

Published: 03/11/2022

To install basic dependent packages

1. To install basic dependencies on Ubuntu* (18.04)

Basic:

#apt-get install -y cifs-utils autoconf libtool libdrm-dev yasm libghc-x11-dev libxmuu-dev libxfixes-dev libxcb-glx0-dev libgegl-dev libegl1-mesa-dev libcogl-gles2-dev

#apt-get install –y cifs-utils git xutils-dev libpciaccess-dev xserver-xorg-dev meson

#apt-get install –y libv4l-dev

#apt-get install –y libasound2-dev

Gstreamer and Gstreamer Plugins dependencies:

  • To install related pkg for gst core

#apt-get install -y bison flex gtk-doc-tools libpackagekit-glib2-dev autopoint libgudev-1.0-dev

  • To install related pkg for gst-base

#apt-get install -y liboggz2-dev libvorbis-dev libtheora-dev

  • To install related pkg for gst-good

#apt-get install -y liborc-0.4-dev libjpeg-dev

  • To install related pkg for gst-devtools

#apt-get install -y libjson-glib-dev

2. To install basic dependencies on CentOS (7.5)

Basic:

#yum group install -y "Development Tools"

#yum install -y git autoconf.noarch automake.noarch xorg-x11-server-devel epel-release cmake cmake3 libtool meson ninja-build

Upgrade automake version to 1.14+ (gstreamer build required)

#wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.gz

#tar zxvf automake-1.14.1.tar.gz

#cd automake-1.14.1

#./configure --prefix=/usr

#make

#make install

Gstreamer and Gstreamer Plugins dependencies:

  • To install related pkg for gst core

#yum install -y gtk-doc glib2-devel

  • To install related pkg for gst-base

#yum install -y libvorbis-devel libtheora-devel

  • To install related pkg for gst-good

#yum install -y libjpeg-turbo-devel orc-devel

  • To install related pkg for gst-bad (using for gst-msdk)

#yum install -y libgudev1-devel

  • To install related pkg for gst-devtools

#yum install -y json-glib-devel

To setup downloaded source code and to build and install environment

#export ROOT_INSTALL_DIR=/opt/media/

#mkdir -p $ROOT_INSTALL_DIR

#export SRC_DIR=$HOME/media_src/

#mkdir -p $SRC_DIR

For Ubuntu(18.04)

#export PKG_CONFIG_PATH=$ROOT_INSTALL_DIR/lib/pkgconfig/:$PKG_CONFIG_PATH
#export LD_LIBRARY_PATH=$ROOT_INSTALL_DIR/lib:$ROOT_INSTALL_DIR/lib/mfx/:$ROOT_INSTALL_DIR/lib/xorg/:$LD_LIBRARY_PATH
#export LDFLAGS="-L$ROOT_INSTALL_DIR/lib"

For CentOS (7.5)

#export PKG_CONFIG_PATH=$ROOT_INSTALL_DIR/lib/pkgconfig/:$ROOT_INSTALL_DIR/lib64/pkgconfig/:$PKG_CONFIG_PATH
#export LD_LIBRARY_PATH=$ROOT_INSTALL_DIR/lib:$ROOT_INSTALL_DIR/lib64:$LD_LIBRARY_PATH
#export LDFLAGS="-L$ROOT_INSTALL_DIR/lib -L$ROOT_INSTALL_DIR/lib64"

#export CPPFLAGS="-I$ROOT_INSTALL_DIR/include $CPPFLAGS"

#export CFLAGS="-I$ROOT_INSTALL_DIR/include $CFLAGS"

#export CXXFLAGS="-I$ROOT_INSTALL_DIR/include $CXXFLAGS"

#export PATH=$ROOT_INSTALL_DIR/share/mfx/samples/:$ROOT_INSTALL_DIR/bin:$PATH

#export LIBVA_DRIVER_NAME=iHD

#export LIBVA_DRIVERS_PATH=$ROOT_INSTALL_DIR/lib/dri

#export GST_VAAPI_ALL_DRIVERS=1

#export GST_GL_PLATFORM=egl

#export DISPLAY=:0.0

To install GStreamer video stack dependent packages

This section includes hwo to build and install for x264/x265, libdrm, 2D Driver(xf86-video-intel), VAAPI(libva and Intel video driver - iHD), and mediaSDK 

Linux VAAPI Video Stack Basic Packages Installation

To install GStreamer

Gstreamer core

#git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git $SRC_DIR/gstreamer

#cd $SRC_DIR/gstreamer

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib build

#ninja -C build

#ninja -C build install

gst-plugins-base

#git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git $SRC_DIR/gst-plugins-base

#cd $SRC_DIR/gst-plugins-base

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Ddoc=disabled build

#ninja -C build

#ninja -C build install

gst-plugins-good

#git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git $SRC_DIR/gst-plugins-good

#cd $SRC_DIR/gst-plugins-good

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Dsoup=enabled -Dv4l2=enabled build

#ninja -C build

#ninja -C build install

gst-plugins-ugly

#git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly.git $SRC_DIR/gst-plugins-ugly

#cd $SRC_DIR/gst-plugins-ugly

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Dx264=enabled build

#ninja -C build

#ninja -C build install

gst-plugins-bad

#git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git $SRC_DIR/gst-plugins-bad/

#cd $SRC_DIR/gst-plugins-bad

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Dopenh264=enabled -Ddoc=disabled build

#ninja -C build

#ninja -C build install

gstreamer-vaapi

#git clone https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi.git $SRC_DIR/gstreamer-vaapi

#cd $SRC_DIR/gstreamer-vaapi

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib -Ddoc=disabled -Dwith_x11=no build

#ninja -C build

#ninja -C build install

gst-devtools

#git clone https://gitlab.freedesktop.org/gstreamer/gst-devtools.git $SRC_DIR/gst-devtools

#cd $SRC_DIR/gst-devtools

#meson -Dprefix=$ROOT_INSTALL_DIR -Dlibdir=$ROOT_INSTALL_DIR/lib build

#ninja -C build

#ninja -C build install

gst-checksum

#git clone https://github.com/xhaihao/gst-checksumsink.git $SRC_DIR/gst-checksum

#cd $SRC_DIR/gst-checksum

#./autogen.sh --prefix=$ROOT_INSTALL_DIR

#make -j8

#make install

gst-rawvideosrc

#git clone https://github.com/sreerenjb/gst-rawvideosrc $SRC_DIR/gst-rawvideosrc

#cd $SRC_DIR/gst-rawvideosrc

#./autogen.sh --prefix=$ROOT_INSTALL_DIR

#make -j8

#make install

gst-libav (Optional install)

Comments:

the gst-validate testing needs the gst-libav to do decode for some audio format;

The gst-libav has a dependency on gas-preprocessor which needs to setup a git proxy ( git://git.libav.org/gas-preprocessor.git)

#git clone https://gitlab.freedesktop.org/gstreamer/gst-libav.git $SRC_DIR/gst-libav

#cd $SRC_DIR/gst-libav

#./autogen.sh --prefix=$ROOT_INSTALL_DIR

#make -j8

#make install

To export related environment variables

To add the below command lines in the file of “$HOME/.bashrc” for auto configure

#ROOT_INSTALL_DIR=”/opt/media/”

#export LIBVA_DRIVER_NAME=iHD

#export LIBVA_DRIVERS_PATH=$ROOT_INSTALL_DIR/lib/dri

#export GST_VAAPI_ALL_DRIVERS=1

#export GST_GL_PLATFORM=egl

#export DISPLAY=:0.0

For Ubuntu(18.04)

#export PKG_CONFIG_PATH=$ROOT_INSTALL_DIR/lib/pkgconfig/:$PKG_CONFIG_PATH
#export LD_LIBRARY_PATH=$ROOT_INSTALL_DIR/lib:$ROOT_INSTALL_DIR/lib/mfx/:$ROOT_INSTALL_DIR/lib/xorg/:$LD_LIBRARY_PATH
#export LDFLAGS="-L$ROOT_INSTALL_DIR/lib"

For CentOS (7.5)

#export PKG_CONFIG_PATH=$ROOT_INSTALL_DIR/lib/pkgconfig/:$ROOT_INSTALL_DIR/lib64/pkgconfig/:$PKG_CONFIG_PATH
#export LD_LIBRARY_PATH=$ROOT_INSTALL_DIR/lib:$ROOT_INSTALL_DIR/lib64:$LD_LIBRARY_PATH
#export LDFLAGS="-L$ROOT_INSTALL_DIR/lib -L$ROOT_INSTALL_DIR/lib64"

#export PATH=$ROOT_INSTALL_DIR/share/mfx/samples/:$ROOT_INSTALL_DIR/bin:$PATH

#export CPPFLAGS="-I$ROOT_INSTALL_DIR/include $CPPFLAGS"

#export CFLAGS="-I$ROOT_INSTALL_DIR/include $CFLAGS"

#export CXXFLAGS="-I$ROOT_INSTALL_DIR/include $CXXFLAGS"

Project

Open Source Media Framework

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.