No, GStreamer is a development framework for creating applications like
media players, video editors, streaming media broadcasters and so on.
That said, very good media players can easily be built on top of GStreamer
-especially when using the high-level object called playbin.
+especially when using the high-level APIs we provide such as `GstPlayer` or
+the `playbin` and `playbin3` elements.
## Why is GStreamer written in C ? Why not C++/Objective-C/... ?
- Use of C integrates nicely with Gtk+ and GNOME. Some people like
this a lot, but neither Gtk+ nor GNOME are required by GStreamer.
+There are also historical reasons: When GStreamer was started, C++ and
+free and open source C++ compilers were not as stable and mature as they
+are today, and there was the desire to provide a certain degree of
+API and ABI stability.
+
So, in closing, we like C. If you don't, that's fine; if you still want
to help out on GStreamer, we always need more language binding people.
And if not, don't bother us; we're working :-)
-## What applications are available for GStreamer ?
+## What kind of applications have been written in GStreamer?
+
+GStreamer has been designed from the start to be a general-purpose multimedia
+framework that can be used to write all kinds of multimedia applications.
-Many media player applications have chosen GStreamer for their
-backend. Also a couple of media format conversion tools have been
-written using the powers of GStreamer. With the advent of GStreamer-0.10
-several media editing applications have been started.
+There are a huge number of media playback applications of course, but also
+audio and video capture applications that record to file or live stream the
+captured content. Audio CD and DVD backup applications. Media format conversion
+and transcoding tools. Streaming servers, both for small embedded devices where
+resource usage needs to be tightly controlled, and for servers where scalability
+is key. And of course audio and video editing applications.
For a list of projects, look at the [application
list](http://gstreamer.freedesktop.org/apps/) on the GStreamer project
## Does GStreamer support the format of my media files?
+GStreamer is plugin based and was designed to be extensible from the start,
+so it can pretty much support any media format provided suitable plugins
+are available.
+
+It features demuxers, parsers and decoders for all common media formats and
+hundreds of uncommon ones. If you have trouble playing back a file please
+first make sure you have all the required plug-ins installed.
+
GStreamer aims to support every format imaginable, but that
doesn't mean the developers have managed to achieve that aim yet. If a
GStreamer enabled application doesn't play back your files, you can help
- ways to obtain mediafiles in that format to test.
-## What are the exact licensing terms for GStreamer and its plugins
-?
+## What are the exact licensing terms for GStreamer and its plugins?
All of GStreamer, including our own plugin code, is licensed
under the [GNU LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html)
license. Some of the libraries we use for some of the plugins are
however under the GPL, which means that those plugins can not be used by
-a non-GPL-compatible application.
+a non-GPL-compatible application. Those are few and far between though
+and there are usually non-GPL alternatives available for those GPL libraries.
As part of the GStreamer source download you find a file called
LICENSE\_readme in gst-plugins package. That file contains information
and only use GPL or proprietary libraries where no good LGPL or BSD
alternatives are available.
-From GStreamer 0.4.2 on, we implemented a license field for all of the
-plugins, and in the future we might have the application enforce a
+You can see the effective license of a plugin as license field in
+`gst-inspect-1.0`. In the future we might have the application enforce a
stricter policy (much like tainting in the kernel).
## Is GStreamer a sound server ?
No, GStreamer is not a soundserver. GStreamer does however have
plugins supporting most of the major soundservers available today,
-including pulseaudio, ESD, aRTSd, Jack and others.
+including pulseaudio, Jack and others.
-## Will GStreamer be available for platforms other than Unix ?
+## Is GStreamer available for platforms other than Linux?
-Depends. Our main target is the Unix platform. It also works on
-Win32 and Mac OS X, but it may still be a bit challenging to get
-everything up and running. That said, interest has been expressed in
-porting GStreamer to other platforms and the GStreamer core team will
-gladly accept patches to accomplish this.
+Yes, GStreamer is a cross-platform multimedia framework that
+works on all major operating systems, including but not limited to
+Linux, Android, iOS, macOS, Windows, and *BSD, and there are official
+SDK binary packages for Android, iOS, macOS and Windows made available
+with every GStreamer release.
## What is GStreamer's relationship with the GNOME community ?
-While GStreamer is operated as an independent project, we do have
+GStreamer is an independent project, but we do traditionally have
a close relationship with the GNOME community. Many of our hackers
consider themselves also to be members of the GNOME community. GStreamer
-is officialy bundled with the GNOME desktop, as lots of packages (like
-gnome-media, totem and rhythmbox) are using it. This does not exclude
-use of GStreamer by other communities at all, of course.
+is officially bundled with the GNOME desktop, as lots of GNOME applications
+are using it. This does not exclude use of GStreamer by other communities
+at all, of course.
## What is GStreamer's relationship with the KDE community ?
The GStreamer community wants to have as good a relationship as
possible with KDE, and we hope that someday KDE decides to adopt
-GStreamer as their multimedia API (planned for KDE 4). There have been
-contacts from time to time between the GStreamer community and KDE and
-we do already have support for the aRTSd sound server used by KDE. Also,
+GStreamer as their multimedia platform. There have been contacts
+from time to time between the GStreamer community and KDE and
+GStreamer is used by various KDE and Qt multimedia APIs. Also,
some of the KDE hackers have created Qt bindings of GStreamer, made a
simple video player and using it in some audio players (JuK and AmaroK).
That doesn't really make sense. GStreamer is not a sound server,
so you don't output directly to GStreamer, and it's not an intermediate
API between audio data and different kinds of audio sinks. It is a
-fundamental design decision to use GStreamer in your app; there are no
-easy ways of somehow 'transfering' data from your app to GStreamer.
-Instead, your app would have to use or implement a number of GStreamer
+fundamental design decision to use GStreamer in your application; there are
+no easy ways of somehow 'transfering' data from your app to GStreamer (well,
+there are of course, but they would be reserved for special use cases).
+Instead, your application would have to use or implement a number of GStreamer
elements, string them together, and tell them to run. In that manner the
data would all be internal to the GStreamer pipeline.
That said, it is possible to write a plugin specific to your app that
-can get at the audio data.
+can get at the audio or video data.