GStreamer - ArchWiki

# 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.

- gst-libav - Libav-based plugin containing many decoders and encoders.
- gst-plugins-bad - Plugins that need more quality, testing or documentation.
- gst-plugins-base - Essential exemplary set of elements.
- gst-plugins-good - Good-quality plugins under LGPL license.
- gst-plugins-ugly - Good-quality plugins that might pose distribution problems.
- gst-plugin-libde265AUR - libde265 plugin (an open h.265 video codec implementation) for gstreamer.

## 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:

- gstreamer-vaapi for VA-API support.
- gst-plugins-bad for VDPAU support. (NVDECODE/NVENCODE is disabled in the Arch package)

#### 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               http://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

- Sound system
- website

Category:

- Multimedia