GStreamer

From ArchWiki
Jump to navigation Jump to search

GStreamer is a pipeline-based multimedia framework written in the C programming language with the type system based on GObject.

GStreamer allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. The pipeline design serves as a base to create many types of multimedia applications such as video editors, streaming media broadcasters, and media players.

Designed to be cross-platform, it is known to work on Linux (x86, PowerPC and ARM), Solaris (Intel and SPARC), macOS, Microsoft Windows and OS/400. GStreamer has bindings for programming-languages like Python, C++, Perl, GNU Guile (guile), and Ruby. GStreamer is free software, licensed under the GNU Lesser General Public License.

Installation

Install the gstreamer package.

To make GStreamer useful, install the plugins packages you require. See official documentation for list of features in each plugin.

Integration

PulseAudio

PulseAudio support is provided by the gst-plugins-good package.

KDE / Phonon integration

See Phonon.

Hardware video acceleration

See Hardware video acceleration.

GStreamer will automatically detect and use the correct API [1]. Depending on the system install:

Ignore driver whitelist

GStreamer uses a whitelist of VA-API drivers. To ignore the whitelist and allow support for other drivers like intel-media-driver, set GST_VAAPI_ALL_DRIVERS=1 as environment variable.

Verify VA-API/VDPAU support

To verify VA-API support:

$ gst-inspect-1.0 vaapi
Plugin Details:
  Name                     vaapi
  Description              VA-API based elements
  Filename                 /usr/lib/gstreamer-1.0/libgstvaapi.so
  Version                  1.16.2
  License                  LGPL
  Source module            gstreamer-vaapi
  Binary package           gstreamer-vaapi
  Origin URL               https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

  vaapijpegdec: VA-API JPEG decoder
  vaapimpeg2dec: VA-API MPEG2 decoder
  vaapih264dec: VA-API H264 decoder
  vaapivc1dec: VA-API VC1 decoder
  vaapih265dec: VA-API H265 decoder
  vaapipostproc: VA-API video postprocessing
  vaapidecodebin: VA-API Decode Bin
  vaapisink: VA-API sink
  vaapih265enc: VA-API H265 encoder
  vaapih264enc: VA-API H264 encoder

  10 features:
  +-- 10 elements

To verify VDPAU support:

$ gst-inspect-1.0 vdpau
Plugin Details:
  Name                     vdpau
  Description              Various elements utilizing VDPAU
  Filename                 /usr/lib/gstreamer-1.0/libgstvdpau.so
  Version                  1.16.2
  License                  LGPL
  Source module            gst-plugins-bad
  Binary package           GStreamer Bad Plugins (Arch Linux)
  Origin URL               https://www.archlinux.org/

  vdpaumpegdec: VDPAU Mpeg Decoder

  1 features:
  +-- 1 elements

See also