Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GStreamer
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Plug-ins=== GStreamer uses a [[Plug-in (computing)|plug-in]] architecture which makes the most of GStreamer's functionality implemented as [[Library (computing)|shared libraries]].<ref>{{citation |url=https://gstreamer.freedesktop.org/modules/ |title=Overview of the modules |publisher=Gstreamer.freedesktop.org |access-date=8 February 2012 |archive-date=25 January 2012 |archive-url=https://web.archive.org/web/20120125050306/http://gstreamer.freedesktop.org/modules/ |url-status=live }}</ref> GStreamer's base functionality contains functions for registering and loading plug-ins and for providing the fundamentals of all classes in the form of [[base class]]es. Plug-in libraries get dynamically loaded to support a wide spectrum of [[codec]]s, [[container format (digital)|container format]]s, [[Device driver|input/output drivers]] and effects. Plug-ins can be installed semi-automatically when they are first needed. For that purpose distributions can register a backend that resolves feature-descriptions to package-names. Since version 0.9, the plug-ins come grouped into three sets (named after the film ''[[The Good, the Bad and the Ugly]]'').<ref>{{citation |url=https://gstreamer.freedesktop.org/documentation/splitup.html |title=GStreamer 0.9 development series - Hung by a Thread |publisher=Gstreamer.freedesktop.org |access-date=24 February 2013 |archive-date=27 January 2013 |archive-url=https://web.archive.org/web/20130127081645/http://gstreamer.freedesktop.org/documentation/splitup.html |url-status=live }}</ref> {| class="wikitable" |- ! Plug-in set name ! Description |- | Good | This package contains the GStreamer plug-ins from the "good" set, a set of high quality plug-ins under the LGPL license.<ref>{{cite web |url=https://gstreamer.freedesktop.org/modules/gst-plugins-good.html |title=GStreamer Good Plug-ins |access-date=2019-02-05 |archive-date=2019-02-07 |archive-url=https://web.archive.org/web/20190207020112/https://gstreamer.freedesktop.org/modules/gst-plugins-good.html |url-status=live }}</ref> |- | Bad | GStreamer Bad Plug-ins comprises a set of plug-ins not up-to-par compared to the rest. They might closely approach good-quality plug-ins, but they lack something: perhaps a good [[code review]], some documentation, a set of tests, a real live maintainer, or some actual wide use.<ref>{{cite web |url=https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html |title=GStreamer Bad Plug-ins |access-date=2019-02-05 |archive-date=2019-02-07 |archive-url=https://web.archive.org/web/20190207020406/https://gstreamer.freedesktop.org/modules/gst-plugins-bad.html |url-status=live }}</ref> |- | Ugly | This package contains plug-ins from the "ugly" set, a set of good-quality plug-ins that might pose distribution problems.<ref>{{cite web |url=https://gstreamer.freedesktop.org/modules/gst-plugins-ugly.html |title=GStreamer Ugly Plug-ins |access-date=2019-02-05 |archive-date=2019-02-07 |archive-url=https://web.archive.org/web/20190207015847/https://gstreamer.freedesktop.org/modules/gst-plugins-ugly.html |url-status=live }}</ref> |} Individual distributions may further sub-classify these plug-ins: for example [[Ubuntu]] groups the "bad" and "ugly" sets into the "Universe" or the [[Universe ubuntu|"Multiverse"]] components. In addition, there is a '''GStreamer FFmpeg plug-in''' (called ''gst-libav'' for historic reasons<ref>{{Cite web |title=subprojects/gst-libav/README.md 路 47ac79d7b8cc078f4890d0ce21f47e1c1af2c736 路 GStreamer / gstreamer 路 GitLab |url=https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/47ac79d7b8cc078f4890d0ce21f47e1c1af2c736/subprojects/gst-libav/README.md |access-date=2022-07-12 |website=GitLab |date=24 September 2021 |language=en}}</ref>) that extends the number of supported media formats. ====Video acceleration==== [[File:GStreamer and TI DMAI.svg|thumb|Through special plugins provided by Texas Instruments, GStreamer makes use of hardware acceleration provided by e.g. [[Texas Instruments DaVinci]].]] There are various [[Semiconductor intellectual property core|SIP blocks]] that can do the computations to decode certain video codecs, such as [[Nvidia PureVideo|PureVideo]], [[Unified Video Decoder|UVD]], [[Intel Quick Sync Video|QuickSync Video]], [[OMAP 4|TI Ducati]] and more. Such needs to be supported by the [[device driver]], which in turn provides one or multiple [[Application programming interface|interfaces]], like [[Video Decode and Presentation API for Unix|VDPAU]], [[Video Acceleration API|VAAPI]], [[Distributed Codec Engine]] or [[DirectX Video Acceleration|DXVA]] to end-user software like MPlayer to access this hardware and offload computation to it. * It is possible to use [[Video Coding Engine]] with GStreamer through the [[OpenMAX IL]] wrapper plugin {{mono|gst-omx}}.<ref>{{cite web |url=https://gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html |title=GStreamer OpenMAX IL wrapper plugin |website=gstreamer.freedesktop.org |access-date=2017-07-21 |archive-date=2017-07-10 |archive-url=https://web.archive.org/web/20170710025641/https://gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html |url-status=live }}</ref> This is for example possible on the [[Raspberry Pi]].<ref>{{cite web|url=https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=34250&p=599066&hilit=gstreamer#p599066|title=Gstreamer 1.0 for raspbian|website=GRaspberrypi.org|access-date=2017-07-21|archive-date=2017-07-10|archive-url=https://web.archive.org/web/20170710095711/https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=34250&p=599066&hilit=gstreamer#p599066|url-status=live}}</ref> * The [[Semiconductor intellectual property core|SIP core]] present on some [[Texas Instruments]] SoCs is also accessible through GStreamer: {{mono|gst-dmai}}, {{mono|gst-openmax}}, {{mono|gst-dsp}}.<ref>{{cite web|url=https://processors.wiki.ti.com/index.php/GStreamer|title=GStreamer Plug-ins for TI hardware|website=Processors.wiki.ti.com|access-date=2017-07-21|archive-date=2017-06-28|archive-url=https://web.archive.org/web/20170628173254/http://processors.wiki.ti.com/index.php/GStreamer|url-status=live}}</ref> * [[Video Decode and Presentation API for Unix|VDPAU]] and [[Video Acceleration API|VAAPI]] are supported with [[GNOME Videos]] >= 2.28.0 and GStreamer >= 0.10.26 since 2010<ref>{{cite web|url=http://eu.fluendo.com/press/fluendo-codec-pack-release-11-keeping-technologies-fast-pace/ |archive-url=https://archive.today/20140624184008/http://eu.fluendo.com/press/fluendo-codec-pack-release-11-keeping-technologies-fast-pace/ |url-status=dead |archive-date=2014-06-24 |title=Fluendo Codec Pack Release 11 bring VDPAU and VAAPI support |date=2010-03-25 }}</ref> * [[Broadcom Crystal HD]] is supported<ref>{{cite web |author=Debian Webmaster|url=https://packages.debian.org/wheezy/gstreamer0.10-crystalhd |title=Debian - Details of package gstreamer0.10-crystalhd in wheezy |website=Packages.debian.org |access-date=2017-07-21 |archive-date=2017-06-29 |archive-url=https://web.archive.org/web/20170629060143/https://packages.debian.org/wheezy/gstreamer0.10-crystalhd |url-status=live }}</ref> ====Media formats==== The Good, Bad and Ugly GStreamer plugins mentioned earlier provide, alongside processing elements/filters of all kinds, support for a wide variety of file formats, protocols and multimedia codecs.<!-- TODO - this section should have a list of formats/codecs provided specifically by gstreamer, see also https://bugzilla.gnome.org/show_bug.cgi?id=698589 --> In addition to those, support for more than a hundred compression formats (including [[MPEG-1]], [[MPEG-2]], [[MPEG-4]], [[H.261]], [[H.263]], [[H.264/MPEG-4 AVC|H.264]], [[RealVideo]], [[MP3]], [[Windows Media Video|WMV]], etc.<ref>{{Cite web |title=subprojects/gst-libav/ext/libav/gstavcodecmap.c 路 47ac79d7b8cc078f4890d0ce21f47e1c1af2c736 路 GStreamer / gstreamer 路 GitLab |url=https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/47ac79d7b8cc078f4890d0ce21f47e1c1af2c736/subprojects/gst-libav/ext/libav/gstavcodecmap.c |access-date=2022-07-12 |website=GitLab |date=16 January 2022 |language=en}}</ref>) is transparently provided through the ''gst-libav'' plug-in.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)