mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 21:28:45 +00:00
203 lines
7.3 KiB
XML
203 lines
7.3 KiB
XML
<sect1 id="chapter-using">
|
|
<title id="title-using">Using GStreamer</title>
|
|
<qandaset defaultlabel="qanda">
|
|
|
|
<qandaentry>
|
|
<question id="using-getting-started">
|
|
<para>Ok, I've installed GStreamer. What can I do next ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
First of all, verify that you have a working registry and that you can
|
|
inspect them by typing
|
|
<programlisting>
|
|
$ gst-inspect-1.0 fakesrc
|
|
</programlisting>
|
|
This should print out a bunch of information about this particular element.
|
|
If this tells you that there is "no such element or plugin", you haven't
|
|
installed GStreamer correctly. Please check
|
|
<link linkend="chapter-getting">how to get GStreamer</link>
|
|
If this fails with any other message, we would appreciate a
|
|
<link linkend="using-bugs-where">bug report</link>.
|
|
</para>
|
|
<para>
|
|
It's time to try out a few things. Start with gst-launch and two plug-ins
|
|
that you really should have : fakesrc and fakesink. They do nothing except
|
|
pass empty buffers. Type this at the command-line :
|
|
<programlisting>
|
|
$ gst-launch-1.0 -v fakesrc silent=0 num-buffers=3 ! fakesink silent=0
|
|
</programlisting>
|
|
This will print out output that looks similar to this :
|
|
<programlisting>
|
|
RUNNING pipeline ...
|
|
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 0) 0x8057510"
|
|
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 0) 0x8057510"
|
|
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 1) 0x8057510"
|
|
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 1) 0x8057510"
|
|
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 2) 0x8057510"
|
|
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 2) 0x8057510"
|
|
execution ended after 5 iterations (sum 301479000 ns, average 60295800 ns, min 3000 ns, max 105482000 ns)
|
|
</programlisting>
|
|
(Some parts of output have been removed for clarity) If it looks similar, then
|
|
GStreamer itself is running correctly.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question id="using-sound">
|
|
<para>Can my system play sound through GStreamer ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
You can test this by trying to play a sine tone. For this, you need to
|
|
link the audiotestsrc element to an output element that matches your hardware.
|
|
A (non-complete) list of output plug-ins for audio is
|
|
<itemizedlist>
|
|
<listitem><para>pulsesink for Pulseaudio output</para></listitem>
|
|
<listitem><para>osssink for OSS output</para></listitem>
|
|
<listitem><para>esdsink for ESound output</para></listitem>
|
|
<listitem><para>alsasink for ALSA output</para></listitem>
|
|
<listitem><para>alsaspdifsink for ALSA S/PDIF output</para></listitem>
|
|
<listitem><para>jackaudiosink for JACK output</para></listitem>
|
|
</itemizedlist>
|
|
First of all, run gst-inspect-1.0 on the output plug-in you want to use to
|
|
make sure you have it installed. For example, if you use Pulseaudio, run
|
|
<programlisting>
|
|
$ gst-inspect-1.0 pulsesink
|
|
</programlisting>
|
|
and see if that prints out a bunch of properties for the plug-in.
|
|
</para>
|
|
<para>
|
|
Then try to play the sine tone by running
|
|
<programlisting>
|
|
$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! pulsesink
|
|
</programlisting>
|
|
and see if you hear something. Make sure your volume is turned up,
|
|
but also make sure it is not too loud and you are not wearing your headphones.
|
|
</para>
|
|
<para>
|
|
In GNOME, you can configure audio output for most applications by running
|
|
<programlisting>
|
|
$ gstreamer-properties
|
|
</programlisting>
|
|
which can also be found in the start menu (Applications -> Preferences ->
|
|
Multimedia Systems Selector). In KDE, there is not yet a shared way of
|
|
setting audio output for all applications; however, applications such
|
|
as Amarok allow you to specify an audio output in their preferences dialog.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question id="using-gst-inspect">
|
|
<para>How can I see what GStreamer plugins I have on my system ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
To do this you use the gst-inspect
|
|
command-line tool, which comes standard with GStreamer.
|
|
Invoked without any arguments,
|
|
<programlisting>
|
|
$ gst-inspect-1.0
|
|
</programlisting>
|
|
will print out a listing of installed plugins.
|
|
To learn more about a particular plugin, pass its name on the command line.
|
|
For example,
|
|
<programlisting>
|
|
$ gst-inspect-1.0 volume
|
|
</programlisting>
|
|
will give you information about the volume plugin.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question id="using-bugs-where">
|
|
<para>Where should I report bugs ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
Bug management is now hosted on GNOME's Bugzilla at
|
|
<ulink url="http://bugzilla.gnome.org">http://bugzilla.gnome.org</ulink>,
|
|
under the product GStreamer.
|
|
Using bugzilla you can view past bug history, report new bugs, etc.
|
|
Bugzilla requires you to make an account here, which might seem cumbersome,
|
|
but allows us to at least have a chance at contacting you for further
|
|
information, as we will most likely have to.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
|
|
<qandaentry>
|
|
<question id="using-bugs-how">
|
|
<para>How should I report bugs ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
When doing a bug report, you should at least describe
|
|
<itemizedlist>
|
|
<listitem><para>your distribution</para></listitem>
|
|
<listitem><para>
|
|
how you installed GStreamer (from git, source, packages, which ?)</para></listitem>
|
|
<listitem><para>if you installed GStreamer before</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
If the application you are having problems with is segfaulting, then
|
|
provide us with the necessary gdb output. See
|
|
<xref linkend="troubleshooting-segfault" endterm="troubleshooting-segfault"/>
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question id="using-gst-launch">
|
|
<para>How do I use the GStreamer command line interface ?</para>
|
|
</question>
|
|
<answer>
|
|
<para>
|
|
You access the GStreamer command line interface using the command gst-launch.
|
|
To decode an mp3 and play it through Pulseaudio, you could use
|
|
<programlisting>
|
|
gst-launch-1.0 filesrc location=thesong.mp3 ! mad ! pulsesink
|
|
</programlisting>.
|
|
More examples can be found in the gst-launch man page.
|
|
</para>
|
|
<para>
|
|
To automatically detect the right codec in a pipeline, try
|
|
<programlisting>
|
|
gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin !
|
|
pulsesink
|
|
</programlisting>.
|
|
or
|
|
<programlisting>
|
|
gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin !
|
|
videoconvert ! xvimagesink
|
|
</programlisting>
|
|
Something more complicated:
|
|
<programlisting>
|
|
gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin name=decoder
|
|
decoder. ! videoconvert ! xvimagesink
|
|
decoder. ! audioconvert ! pulsesink
|
|
</programlisting>
|
|
</para>
|
|
<para>
|
|
We also have a basic media playing plugin that will take care of most things
|
|
for you. This plugin is called playbin. Try this:
|
|
<programlisting>
|
|
gst-launch-1.0 playbin uri=file:///home/joe/my-random-media-file.mpeg
|
|
</programlisting>
|
|
This should play the file if the format is supported, ie. you have all the
|
|
necessary demuxing and decoding and some output plugins installed.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</sect1>
|