インストール - GStreamer

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要



依存関係のライブラリのインストール

GStreamerをビルドおよびインストールするため、以下の依存関係のライブラリをインストールする。
MesonとNinjaのインストールは、インストール - Mesonを参照すること。

  • GStreamer Plugins Good
    公式が利用を推奨するプラグイン(LGPL)である。
  • GStreamer Plugins Ugly
    ライセンスで縛られており、完全なオープンソースではないので、利用する際は注意が必要となる。
  • GStreamer Plugins Bad
    無保証のプラグインである。
    品質、テスト、レビュー、ドキュメント等が欠けており、まだGoodプラグインになれないライブラリのこと。
    これら全てが解決された段階で、GoodまたはUglyに昇格する。


# GStreamer
sudo zypper install cmake git autoconf glib2-devel libcap-devel libcapstone-devel gobject-introspection-devel gtk3-devel gtk-doc \
                    libunwind-devel libdw-devel gsl-devel libgslcblas0  bash-completion-devel openh264-devel \
                    xorg-x11-devel libX11-devel libGLU1 glu-devel freeglut-devel glew glew-devel Mesa-libGL-devel

# GStreamer Plugins Base
sudo zypper install libtheora-devel libvorbis-devel cdparanoia-devel alsa-devel libopus-devel libvisual-devel pango-devel

# GStreamer Plugins Good
sudo zypper install wavpack-devel speex-devel libjack-devel libjpeg62-devel openjpeg-devel  openjpeg2-devel libmjpegutils-devel \
                    libdv-devel libsoup-devel libunistring-devel cairo-devel \
                    libqt5-qtbase-common-devel libqt5-qtbase-devel libqt5-qtdeclarative-devel libqt5-qttools-devel \
                    libQt53DQuick-devel libqt5-qtx11extras-devel

# GStreamer Plugins Ugly
sudo zypper install libx264-devel

# GStreamer Plugins Bad
sudo zypper install libx264-devel libx265-devel libnice-devel libvo-aacenc-devel libvo-amrwbenc-devel

# GStreamer libAV
sudo zypper install yasm-devel nasm libbz2-devel xz-devel

# GStreamer Python
sudo zypper install python3-devel python3-gobject-devel python3-gobject2-devel python3-google-cloud-storage 

# その他
sudo zypper install \
                    openh264-devel openexr-devel libopenaptx-devel openal-soft-devel openal-soft-devel-32bit libofa-devel libneon-devel \
                    libmodplug-devel libnettle-devel libnettle-devel-32bit libstorage-ng-devel libstoragemgmt-devel \
                    fluidsynth-devel fdk-aac-devel libdca-devel libcurl-devel liblcms2-devel libchromaprint-devel libbs2b-devel libcmocka-devel \
                    libavtp-devel libaom-devel libass-devel libmfx-devel bluez-devel libltc-devel libva-devel libva-gl-devel \
                    opencv-devel libgnutls-devel libgnutlsxx-devel libtwolame-devel libvpx-devel libtag-devel taglib-extras-devel \
                    glslang-devel vulkan-devel Mesa-libVulkan-devel libgupnp-igd-devel valgrind-devel \
                    libntlm-devel krb5-devel sysprof-devel libidn-devel libidn2-devel libicu-devel libpsl-devel \
                    libbrotli-devel xz-devel readline-devel libiconv_hook-devel libxml2-devel popt-devel libcaca-devel libselinux-devel \
                    sqlite3-devel libshout-devel libpulse-devel mpg123-devel libraw1394-devel libavc1394-devel libiec61883-devel \
                    libmp3lame-devel libXdamage-devel libXfixes-devel libv4l-devel v4l-utils-devel-tools libgudev-1_0-devel nasm \
                    libSDL2-devel libXft-devel ragel-devel chafa-devel libpixman-1-0-devel librsvg-devel \
                    libpoppler-glib-devel libspectre-devel libXext-devel docbook2x libexpat-devel fontconfig-devel lzo-devel \
                    libpng12-devel libpng16-devel freetype2-devel harfbuzz-devel libthai-devel fribidi-devel \
                    libogg-devel libgraphene-devel iso-codes-devel \
                    pcre-devel pcre2-devel gtkglext-devel gdk-pixbuf-devel dbus-1-devel libcap-devel libffi-devel libmount-devel \
                    libcelt-devel libgme-devel libgcrypt-devel codec2-devel libgsm-devel ilbc-devel snappy-devel soxr-devel \
                    libwebp-devel zimg-devel libzmq5 zvbi-devel pocketsphinx-devel libcamera-devel \
                    librabbitmq-devel librtmp-devel libshine-devel libssh-devel libssh2-devel srt-devel tesseract-ocr-devel \
                    ffnvcodec-devel liblilv-0-devel libbluray-devel libdc1394-devel libdrm-devel libkvazaar-devel dav1d-devel ffmpeg-4-libavfilter-devel \
                    libwebrtc_audio_processing-devel zxing-cpp-devel libzbar-devel libexif-devel liba52-devel libopencore-amr-devel libcgroup-devel \
                    libfaac-devel qrencode-devel sbc-devel soundtouch-devel libsrtp-devel libsrtp2-devel flac-devel \
                    libmpcdec-devel liblrdf-devel ldacBT-devel libde265-devel \
                    wxWidgets-3_2-devel wpebackend-fdo-devel ffhevc kvazaar spandsp-devel \
                    libcdio-devel libmpeg2-devel libdvdnav-devel libdvdread-devel libwebrtc_audio_processing-devel dssim \
                    gsl-devel 


オープンソースまたはプロプライエタリのGPUのドライバをインストールしている場合は、以下の依存関係のライブラリをインストールする。

# オープンソースのAMD GPUドライバをインストールしている場合
sudo zypper install wayland-devel wayland-protocols-devel libwayland-egl-devel 

# プロプライエタリのAMD GPUドライバをインストールしている場合
sudo zypper install wayland-amdgpu-devel wayland-protocols-amdgpu-devel wayland-devel wayland-protocols-devel \
                    mesa-amdgpu-libEGL-devel libwayland-amdgpu-cursor


以下の依存関係のライブラリは不要の可能性がある。

sudo zypper install libjpeg8-devel



GStreamerのインストール

GStreamerの公式WebサイトまたはGStreamerのGitLabから、GStreamerのソースコードをダウンロードする。
または、 git cloneコマンドを使用して、ソースコードをダウンロードする。

GStreamer本体のソースコードをダウンロードする。

git clone --depth 1 https://gitlab.freedesktop.org/gstreamer/gstreamer.git
または
git clone --depth 1 https://gitlab.freedesktop.org/gstreamer/gstreamer.git -b <ブランチ名>
または
git://anongit.freedesktop.org/git/gstreamer/gstreamer

cd gstreamer


GStreamerをビルドおよびインストールする。

meson --prefix=<GStreamerのインストールディレクトリ> -Dgpl=enabled -Dgood=enabled -Dgst-plugins-good:qt5=enabled build
ninja -C build
ninja -C build install