Difference between revisions of "GStreamer"

From ArchWiki
Jump to: navigation, search
(Bugs)
m (OS X is now called macOS)
 
(23 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[Category:Audio/Video]]
+
[[Category:Multimedia]]
 +
[[es:GStreamer]]
 +
[[ja:GStreamer]]
 +
[[zh-CN:GStreamer]]
 
GStreamer is a pipeline-based multimedia framework written in the C programming language with the type system based on GObject.
 
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.
 
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), Mac OS X, Microsoft Windows and OS/400. GStreamer has bindings for programming-languages like [[Python]], C++, Perl, GNU Guile ({{Pkg|guile}}), and [[Ruby]]. GStreamer is free software, licensed under the GNU Lesser General Public License.
+
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 ({{Pkg|guile}}), and [[Ruby]]. GStreamer is free software, licensed under the GNU Lesser General Public License.
  
 
== Installation ==
 
== Installation ==
Install the {{Pkg|gstreamer0.10-base}} package from the [[Official Repositories|official repositories]].
+
 
 +
Install a GStreamer version from the [[official repositories]]:
 +
* {{Pkg|gstreamer}} - Current version.
 +
* {{Pkg|gstreamer0.10}} - Legacy version.
 +
 
 +
To make GStreamer useful, install the plugins packages you require.
 +
 
 +
=== Current version plugins ===
 +
 
 +
* {{Pkg|gst-libav}} - Libav-based plugin containing many decoders and encoders.
 +
* {{Pkg|gst-plugins-bad}} - Plugins that need more quality, testing or documentation.
 +
* {{Pkg|gst-plugins-base}} - Essential exemplary set of elements.
 +
* {{Pkg|gst-plugins-good}} - Good-quality plugins under LGPL license.
 +
* {{Pkg|gst-plugins-ugly}} - Good-quality plugins that might pose distribution problems.
 +
* {{AUR|gst-plugin-libde265}} - {{AUR|libde265}} plugin (an open h.265 video codec implementation) for gstreamer.
 +
 
 +
=== Legacy version plugins ===
 +
 
 +
{{Tip|Install all of them at once as {{Grp|gstreamer0.10-plugins}}.}}
 +
 
 +
* {{Pkg|gstreamer0.10-bad-plugins}} - Plugins that need more quality, testing or documentation.
 +
* {{Pkg|gstreamer0.10-base-plugins}} - Essential exemplary set of elements.
 +
* {{Pkg|gstreamer0.10-ffmpeg}} - Libav-based plugin containing many decoders and encoders.
 +
* {{Pkg|gstreamer0.10-good-plugins}} - Good-quality plugins under LGPL license.
 +
* {{AUR|gstreamer0.10-good-plugins-slim}}{{Broken package link|{{aur-mirror|gstreamer0.10-good-plugins-slim}}}} - Good-quality plugins under LGPL license. GNOME and ASCII-art dependency removed.
 +
* {{Pkg|gstreamer0.10-ugly-plugins}} - Good-quality plugins that might pose distribution problems.
 +
* {{AUR|gstreamer0.10-plugin-libde265}}{{Broken package link|{{aur-mirror|gstreamer0.10-plugin-libde265}}}} - {{AUR|libde265}} plugin (an open h.265 video codec implementation) for gstreamer0.10.
  
 
== Integration ==
 
== Integration ==
GStreamer should already support [[PulseAudio]] for all applications since {{Ic|gstreamer-pulse}} is now a part of {{Pkg|gstreamer0.10-good-plugins}}.
 
  
To avoid lots of dependencies, you may choose to install {{AUR|gstreamer0.10-good-plugins-slim}} from the [[AUR]] instead.
+
=== PulseAudio ===
 +
 
 +
[[PulseAudio]] support is provided by ''good'' plugins packages.
 +
 
 +
=== Lightweight desktops ===
 +
 
 +
To configure GStreamer, for example to change the audio output device, use ''gstreamer-properties'' from package {{AUR|gstreamer-properties}}. This can be run by each user or as root for all users. Per-user configuration files are under {{ic|$HOME/.gconf/system/gstreamer}} and the global files are in {{ic|/etc/gconf/gconf.xml.defaults}}.
 +
 
 +
=== KDE / Phonon integration ===
 +
 
 +
See [[Phonon]].
  
If you use [[KDE]] (and thus, {{Pkg|phonon}}), you can easily install the GStreamer backend: {{Pkg|phonon-gstreamer}}.  After installation, be sure gstreamer is the first engine on the list under ''SystemSettings --> Multimedia --> Backend''.
+
=== Hardware acceleration ===
  
Lightweight desktop users: to configure GStreamer, for example to change the audio output device, use {{ic|gstreamer-properties}} from package {{Pkg|gnome-media}}.  This can be run by each user or as root for all users.  Per-user configuration files are under {{Ic|$HOME/.gconf/system/gstreamer}} and the global files are in {{Ic|/etc/gconf/gconf.xml.defaults}}.
+
See [[Hardware video acceleration]].
  
== Hardware Acceleration ==
+
GStreamer will automatically detect and use the correct API [http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+8%3A+Hardware-accelerated+video+decoding]. Depending on your system you can [[install]]:
 +
* {{pkg|gstreamer-vaapi}} for VA-API support.
 +
* {{pkg|gst-plugins-bad}} for VDPAU support.
  
For hardware acceleration on VAAPI (Intel) hardware, install {{AUR|gstreamer-vaapi}}.
+
== Troubleshooting ==
  
More information on hardware acceleration can be found at [http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+8%3A+Hardware-accelerated+video+decoding Hardware Accelerated Video Decoding]
+
=== assertion 'mini_object->refcount > 0' failed ===
  
== Bugs ==
+
If you get an {{ic|GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed}} error (which usually occurs when recording video), you can [[install]] {{Pkg|gstreamer0.10-ffmpeg}} to fix it.
  
In case of error {{ic|GStreamer-CRITICAL **: gst_mini_object_unref: assertion
+
== See also ==
`mini_object->refcount > 0' failed}} which usually occurs when recording video through recording software,
+
install {{ic|gstreamer0.10-ffmpeg}} to fix.
+
  
== Links ==
 
 
* [[Sound]]
 
* [[Sound]]
 
* http://gstreamer.freedesktop.org/
 
* http://gstreamer.freedesktop.org/

Latest revision as of 10:46, 14 September 2016

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 a GStreamer version from the official repositories:

To make GStreamer useful, install the plugins packages you require.

Current version plugins

Legacy version plugins

Tip: Install all of them at once as gstreamer0.10-plugins.

Integration

PulseAudio

PulseAudio support is provided by good plugins packages.

Lightweight desktops

To configure GStreamer, for example to change the audio output device, use gstreamer-properties from package gstreamer-propertiesAUR. This can be run by each user or as root for all users. Per-user configuration files are under $HOME/.gconf/system/gstreamer and the global files are in /etc/gconf/gconf.xml.defaults.

KDE / Phonon integration

See Phonon.

Hardware acceleration

See Hardware video acceleration.

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

Troubleshooting

assertion 'mini_object->refcount > 0' failed

If you get an GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed error (which usually occurs when recording video), you can install gstreamer0.10-ffmpeg to fix it.

See also