mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
488 lines
18 KiB
Groff
488 lines
18 KiB
Groff
.TH "GStreamer" "1" "May 2007"
|
|
.SH "NAME"
|
|
gst\-launch \- build and run a GStreamer pipeline
|
|
.SH "SYNOPSIS"
|
|
\fBgst\-launch\fR \fI[OPTION...]\fR PIPELINE\-DESCRIPTION
|
|
.SH "DESCRIPTION"
|
|
.LP
|
|
\fIgst\-launch\fP is a tool that builds and runs basic
|
|
\fIGStreamer\fP pipelines.
|
|
|
|
In simple form, a PIPELINE\-DESCRIPTION is a list of
|
|
elements separated by exclamation marks (!). Properties may be appended to
|
|
elements, in the form \fIproperty=value\fR.
|
|
|
|
For a complete description of possible PIPELINE-DESCRIPTIONS see the section
|
|
\fIpipeline description\fR below or consult the GStreamer documentation.
|
|
|
|
Please note that \fIgst\-launch\fP is primarily a debugging tool for
|
|
developers and users. You should not build applications on top of it. For
|
|
applications, use the gst_parse_launch() function of the GStreamer API as an
|
|
easy way to construct pipelines from pipeline descriptions.
|
|
.
|
|
.SH "OPTIONS"
|
|
.l
|
|
\fIgst\-launch\fP accepts the following options:
|
|
.TP 8
|
|
.B \-\-help
|
|
Print help synopsis and available FLAGS
|
|
.TP 8
|
|
.B \-v, \-\-verbose
|
|
Output status information and property notifications
|
|
.TP 8
|
|
.B \-q, \-\-quiet
|
|
Do not print any progress information
|
|
.TP 8
|
|
.B \-m, \-\-messages
|
|
Output messages posted on the pipeline's bus
|
|
.TP 8
|
|
.B \-t, \-\-tags
|
|
Output tags (also known as metadata)
|
|
.TP 8
|
|
.B \-e, \-\-eos\-on\-shutdown
|
|
Force an EOS event on sources before shutting the pipeline down. This is
|
|
useful to make sure muxers create readable files when a muxing pipeline is
|
|
shut down forcefully via Control-C.
|
|
.TP 8
|
|
.B \-i, \-\-index
|
|
Gather and print index statistics. This is mostly useful for playback or
|
|
recording pipelines.
|
|
.TP 8
|
|
.B \-f, \-\-no\-fault
|
|
Do not install a fault handler
|
|
.TP 8
|
|
.B \-T, \-\-trace
|
|
Print memory allocation traces. The feature must be enabled at compile time to
|
|
work.
|
|
.TP 8
|
|
|
|
.
|
|
.SH "GSTREAMER OPTIONS"
|
|
.l
|
|
\fIgst\-launch\fP also accepts the following options that are common
|
|
to all GStreamer applications:
|
|
.TP 8
|
|
.B \-\-gst\-version
|
|
Prints the version string of the \fIGStreamer\fP core library.
|
|
.TP 8
|
|
.B \-\-gst\-fatal\-warnings
|
|
Causes \fIGStreamer\fP to abort if a warning message occurs. This is equivalent
|
|
to setting the environment variable G_DEBUG to 'fatal_warnings' (see the
|
|
section \fIenvironment variables\fR below for further information).
|
|
.TP 8
|
|
.B \-\-gst\-debug=STRING
|
|
A comma separated list of category_name:level pairs to specify debugging levels
|
|
for each category. Level is in the range 0-9 where 0 will show no messages, and
|
|
9 will show all messages. The wildcard * can be used to match category names.
|
|
Note that the order of categories and levels is important, wildcards at the
|
|
end may override levels set earlier. The log levels are: 1=ERROR, 2=WARNING,
|
|
3=FIXME, 4=INFO, 5=DEBUG, 6=LOG, 7=TRACE, 9=MEMDUMP. Since GStreamer 1.2 one
|
|
can also use the debug level names, e.g. \-\-gst\-debug=*sink:LOG. A full
|
|
description of the various debug levels can be found in the GStreamer core
|
|
library API documentation, in the "Running GStreamer Applications" section.
|
|
|
|
Use \-\-gst\-debug\-help to show category names
|
|
|
|
Example:
|
|
GST_CAT:5,GST_ELEMENT_*:3,oggdemux:5
|
|
|
|
.TP 8
|
|
.B \-\-gst\-debug\-level=LEVEL
|
|
Sets the threshold for printing debugging messages. A higher level
|
|
will print more messages. The useful range is 0-9, with the default
|
|
being 0. Level 6 (LOG level) will show all information that is usually
|
|
required for debugging purposes. Higher levels are only useful in very
|
|
specific cases. See above for the full list of levels.
|
|
.TP 8
|
|
.B \-\-gst\-debug\-no\-color
|
|
\fIGStreamer\fP normally prints debugging messages so that the
|
|
messages are color-coded when printed to a terminal that handles
|
|
ANSI escape sequences. Using this option causes \fIGStreamer\fP
|
|
to print messages without color. Setting the \fBGST_DEBUG_NO_COLOR\fR
|
|
environment variable will achieve the same thing.
|
|
.TP 8
|
|
.B \-\-gst\-debug\-color\-mode
|
|
\fIGStreamer\fP normally prints debugging messages so that the
|
|
messages are color-coded when printed to a terminal that handles
|
|
ANSI escape sequences (on *nix), or uses W32 console API to color the
|
|
messages printed into a console (on W32). Using this option causes
|
|
\fIGStreamer\fP to print messages without color ('off' or 'disable'),
|
|
print messages with default colors ('on' or 'auto'), or print messages
|
|
using ANSI escape sequences for coloring ('unix'). Setting the
|
|
\fBGST_DEBUG_COLOR_MODE\fR environment variable will achieve the same thing.
|
|
.TP 8
|
|
.B \-\-gst\-debug\-disable
|
|
Disables debugging.
|
|
.TP 8
|
|
.B \-\-gst\-debug\-help
|
|
Prints a list of available debug categories and their default debugging level.
|
|
.TP 8
|
|
.B \-\-gst\-plugin\-spew
|
|
\fIGStreamer\fP info flags to set
|
|
Enable printout of errors while loading \fIGStreamer\fP plugins
|
|
.TP 8
|
|
.B \-\-gst\-plugin\-path=PATH
|
|
Add directories separated with ':' to the plugin search path
|
|
.TP 8
|
|
.B \-\-gst\-plugin\-load=PLUGINS
|
|
Preload plugins specified in a comma-separated list. Another way to specify
|
|
plugins to preload is to use the environment variable GST_PLUGIN_PATH
|
|
|
|
.SH "PIPELINE DESCRIPTION"
|
|
|
|
A pipeline consists \fIelements\fR and \fIlinks\fR. \fIElements\fR can be put
|
|
into \fIbins\fR of different sorts. \fIElements\fR, \fIlinks\fR and \fIbins\fR
|
|
can be specified in a pipeline description in any order.
|
|
|
|
.B Elements
|
|
|
|
ELEMENTTYPE \fI[PROPERTY1 ...]\fR
|
|
|
|
Creates an element of type ELEMENTTYPE and sets the PROPERTIES.
|
|
|
|
.B Properties
|
|
|
|
PROPERTY=VALUE ...
|
|
|
|
Sets the property to the specified value. You can use \fBgst\-inspect\fR(1) to
|
|
find out about properties and allowed values of different elements.
|
|
.br
|
|
Enumeration properties can be set by name, nick or value.
|
|
|
|
.B Bins
|
|
|
|
\fI[BINTYPE.]\fR ( \fI[PROPERTY1 ...]\fR PIPELINE-DESCRIPTION )
|
|
.br
|
|
|
|
Specifies that a bin of type BINTYPE is created and the given properties are
|
|
set. Every element between the braces is put into the bin. Please note the dot
|
|
that has to be used after the BINTYPE. You will almost never need this
|
|
functionality, it is only really useful for applications using the
|
|
gst_launch_parse() API with 'bin' as bintype. That way it is possible to build
|
|
partial pipelines instead of a full-fledged top-level pipeline.
|
|
|
|
.B Links
|
|
|
|
\fI[[SRCELEMENT].[PAD1,...]]\fR ! \fI[[SINKELEMENT].[PAD1,...]]\fR
|
|
\fI[[SRCELEMENT].[PAD1,...]]\fR ! CAPS ! \fI[[SINKELEMENT].[PAD1,...]]\fR
|
|
|
|
Links the element with name SRCELEMENT to the element with name SINKELEMENT,
|
|
using the caps specified in CAPS as a filter.
|
|
Names can be set on elements with the name property. If the name is omitted, the
|
|
element that was specified directly in front of or after the link is used. This
|
|
works across bins. If a padname is given, the link is done with these pads. If
|
|
no pad names are given all possibilities are tried and a matching pad is used.
|
|
If multiple padnames are given, both sides must have the same number of pads
|
|
specified and multiple links are done in the given order.
|
|
.br
|
|
So the simplest link is a simple exclamation mark, that links the element to
|
|
the left of it to the element right of it.
|
|
.br
|
|
|
|
.B Caps
|
|
|
|
MEDIATYPE \fI[, PROPERTY[, PROPERTY ...]]]\fR \fI[; CAPS[; CAPS ...]]\fR
|
|
|
|
Creates a capability with the given media type and optionally with given
|
|
properties. The media type can be escaped using " or '.
|
|
If you want to chain caps, you can add more caps in the same format afterwards.
|
|
|
|
.B Properties
|
|
|
|
NAME=\fI[(TYPE)]\fRVALUE
|
|
.br
|
|
in lists and ranges: \fI[(TYPE)]\fRVALUE
|
|
|
|
Sets the requested property in capabilities. The name is an alphanumeric value
|
|
and the type can have the following case-insensitive values:
|
|
.br
|
|
- \fBi\fR or \fBint\fR for integer values or ranges
|
|
.br
|
|
- \fBf\fR or \fBfloat\fR for float values or ranges
|
|
.br
|
|
- \fBb\fR, \fBbool\fR or \fBboolean\fR for boolean values
|
|
.br
|
|
- \fBs\fR, \fBstr\fR or \fBstring\fR for strings
|
|
.br
|
|
- \fBfraction\fR for fractions (framerate, pixel-aspect-ratio)
|
|
.br
|
|
- \fBl\fR or \fBlist\fR for lists
|
|
.br
|
|
If no type was given, the following order is tried: integer, float, boolean,
|
|
string.
|
|
.br
|
|
Integer values must be parsable by \fBstrtol()\fP, floats by \fBstrtod()\fP. FOURCC values may
|
|
either be integers or strings. Boolean values are (case insensitive) \fIyes\fR,
|
|
\fIno\fR, \fItrue\fR or \fIfalse\fR and may like strings be escaped with " or '.
|
|
.br
|
|
Ranges are in this format: [ VALUE, VALUE ]
|
|
.br
|
|
Lists use this format: { VALUE \fI[, VALUE ...]\fR }
|
|
|
|
.SH "PIPELINE EXAMPLES"
|
|
|
|
The examples below assume that you have the correct plug-ins available.
|
|
In general, "osssink" can be substituted with another audio output
|
|
plug-in such as "esdsink", "alsasink", "osxaudiosink", or "artsdsink".
|
|
Likewise, "xvimagesink" can be substituted with "ximagesink", "sdlvideosink",
|
|
"osxvideosink", or "aasink". Keep in mind though that different sinks might
|
|
accept different formats and even the same sink might accept different formats
|
|
on different machines, so you might need to add converter elements like
|
|
audioconvert and audioresample (for audio) or videoconvert (for video)
|
|
in front of the sink to make things work.
|
|
|
|
.B Audio playback
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.mp3 ! mad ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play the mp3 music file "music.mp3" using a libmad-based plug-in and
|
|
output to an OSS device
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play an Ogg Vorbis format file
|
|
|
|
.B
|
|
gst\-launch gnomevfssrc location=music.mp3 ! mad ! osssink
|
|
.br
|
|
.B
|
|
gst\-launch gnomevfssrc location=http://domain.com/music.mp3 ! mad ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play an mp3 file or an http stream using GNOME\-VFS
|
|
|
|
.B
|
|
gst\-launch gnomevfssrc location=smb://computer/music.mp3 ! mad ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Use GNOME\-VFS to play an mp3 file located on an SMB server
|
|
|
|
.B Format conversion
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.mp3 ! mad ! audioconvert ! vorbisenc ! oggmux ! filesink location=music.ogg
|
|
.br
|
|
Convert an mp3 music file to an Ogg Vorbis file
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.mp3 ! mad ! audioconvert ! flacenc ! filesink location=test.flac
|
|
.br
|
|
Convert to the FLAC format
|
|
|
|
.B Other
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.wav ! wavparse ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Plays a .WAV file that contains raw audio data (PCM).
|
|
|
|
.B
|
|
gst\-launch filesrc location=music.wav ! wavparse ! audioconvert ! vorbisenc ! oggmux ! filesink location=music.ogg
|
|
.br
|
|
.B
|
|
gst\-launch filesrc location=music.wav ! wavparse ! audioconvert ! lame ! filesink location=music.mp3
|
|
.br
|
|
Convert a .WAV file containing raw audio data into an Ogg Vorbis or mp3 file
|
|
|
|
.B
|
|
gst\-launch cdparanoiasrc mode=continuous ! audioconvert ! lame ! id3v2mux ! filesink location=cd.mp3
|
|
.br
|
|
rips all tracks from compact disc and convert them into a single mp3 file
|
|
|
|
.B
|
|
gst\-launch cdparanoiasrc track=5 ! audioconvert ! lame ! id3v2mux ! filesink location=track5.mp3
|
|
.br
|
|
rips track 5 from the CD and converts it into a single mp3 file
|
|
|
|
Using \fBgst\-inspect\fR(1), it is possible to discover settings like the above
|
|
for cdparanoiasrc that will tell it to rip the entire cd or only tracks of it.
|
|
Alternatively, you can use an URI and gst-launch will find an element (such as
|
|
cdparanoia) that supports that protocol for you, e.g.:
|
|
.B
|
|
gst\-launch cdda://5 ! lame vbr=new vbr-quality=6 ! filesink location=track5.mp3
|
|
|
|
.B
|
|
gst\-launch osssrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=input.ogg
|
|
.br
|
|
records sound from your audio input and encodes it into an ogg file
|
|
|
|
.B Video
|
|
|
|
.B
|
|
gst\-launch filesrc location=JB_FF9_TheGravityOfLove.mpg ! dvddemux ! mpeg2dec ! xvimagesink
|
|
.br
|
|
Display only the video portion of an MPEG-1 video file, outputting to
|
|
an X display window
|
|
|
|
.B
|
|
gst\-launch filesrc location=/flflfj.vob ! dvddemux ! mpeg2dec ! sdlvideosink
|
|
.br
|
|
Display the video portion of a .vob file (used on DVDs), outputting to
|
|
an SDL window
|
|
|
|
.B
|
|
gst\-launch filesrc location=movie.mpg ! dvddemux name=demuxer demuxer. ! queue ! mpeg2dec ! sdlvideosink demuxer. ! queue ! mad ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play both video and audio portions of an MPEG movie
|
|
|
|
.B
|
|
gst\-launch filesrc location=movie.mpg ! mpegdemux name=demuxer demuxer. ! queue ! mpeg2dec ! videoconvert ! sdlvideosink demuxer. ! queue ! mad ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play an AVI movie with an external text subtitle stream
|
|
|
|
This example also shows how to refer to specific pads by name if an element
|
|
(here: textoverlay) has multiple sink or source pads.
|
|
|
|
.B
|
|
gst\-launch textoverlay name=overlay ! videoconvert ! videoscale ! autovideosink filesrc location=movie.avi ! decodebin ! videoconvert ! overlay.video_sink filesrc location=movie.srt ! subparse ! overlay.text_sink
|
|
|
|
.br
|
|
Play an AVI movie with an external text subtitle stream using playbin
|
|
|
|
.B
|
|
gst\-launch playbin uri=file:///path/to/movie.avi suburi=file:///path/to/movie.srt
|
|
|
|
.B Network streaming
|
|
|
|
Stream video using RTP and network elements.
|
|
|
|
.B
|
|
gst\-launch v4l2src ! video/x-raw,width=128,height=96,format=UYVY ! videoconvert ! ffenc_h263 ! video/x-h263 ! rtph263ppay pt=96 ! udpsink host=192.168.1.1 port=5000
|
|
.br
|
|
This command would be run on the transmitter
|
|
|
|
.B
|
|
gst\-launch udpsrc port=5000 ! application/x-rtp, clock-rate=90000,payload=96 ! rtph263pdepay queue-delay=0 ! ffdec_h263 ! xvimagesink
|
|
.br
|
|
Use this command on the receiver
|
|
|
|
.B Diagnostic
|
|
|
|
.B
|
|
gst\-launch -v fakesrc num-buffers=16 ! fakesink
|
|
.br
|
|
Generate a null stream and ignore it (and print out details).
|
|
|
|
.B
|
|
gst\-launch audiotestsrc ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Generate a pure sine tone to test the audio output
|
|
|
|
.B
|
|
gst\-launch videotestsrc ! xvimagesink
|
|
.br
|
|
.B
|
|
gst\-launch videotestsrc ! ximagesink
|
|
.br
|
|
Generate a familiar test pattern to test the video output
|
|
|
|
.B Automatic linking
|
|
|
|
You can use the decodebin element to automatically select the right elements
|
|
to get a working pipeline.
|
|
|
|
.B
|
|
gst\-launch filesrc location=musicfile ! decodebin ! audioconvert ! audioresample ! osssink
|
|
.br
|
|
Play any supported audio format
|
|
|
|
.B
|
|
gst\-launch filesrc location=videofile ! decodebin name=decoder decoder. ! queue ! audioconvert ! audioresample ! osssink decoder. ! videoconvert ! xvimagesink
|
|
.br
|
|
Play any supported video format with video and audio output. Threads are used
|
|
automatically. To make this even easier, you can use the playbin element:
|
|
|
|
.B
|
|
gst\-launch playbin uri=file:///home/joe/foo.avi
|
|
.br
|
|
|
|
|
|
.B Filtered connections
|
|
|
|
These examples show you how to use filtered caps.
|
|
|
|
.B
|
|
gst\-launch videotestsrc ! 'video/x-raw,format=YUY2;video/x-raw,format=YV12' ! xvimagesink
|
|
.br
|
|
Show a test image and use the YUY2 or YV12 video format for this.
|
|
|
|
.B
|
|
gst\-launch osssrc ! 'audio/x-raw,rate=[32000,64000],format={S16LE,S24LE,S32LE}' ! wavenc ! filesink location=recording.wav
|
|
.br
|
|
record audio and write it to a .wav file. Force usage of signed 16 to 32 bit
|
|
samples and a sample rate between 32kHz and 64KHz.
|
|
|
|
|
|
.SH "ENVIRONMENT VARIABLES"
|
|
.TP
|
|
\fBGST_DEBUG\fR
|
|
Comma-separated list of debug categories and levels (e.g.
|
|
GST_DEBUG=totem:4,typefind:5). '*' is allowed as a wildcard as part of
|
|
debug category names (e.g. GST_DEBUG=*sink:6,*audio*:6). Since 1.2.0 it is
|
|
also possible to specify the log level by name (1=ERROR, 2=WARN, 3=FIXME,
|
|
4=INFO, 5=DEBUG, 6=LOG, 7=TRACE, 9=MEMDUMP) (e.g. GST_DEBUG=*audio*:LOG)
|
|
.TP
|
|
\fBGST_DEBUG_NO_COLOR\fR
|
|
When this environment variable is set, coloured debug output is disabled.
|
|
.TP
|
|
\fBGST_DEBUG_DUMP_DOT_DIR\fR
|
|
When set to a filesystem path, store 'dot' files of pipeline graphs there.
|
|
These can then later be converted into an image using the 'dot' utility from
|
|
the graphviz set of tools, like this: dot foo.dot -Tsvg -o foo.svg (png or jpg
|
|
are also possible as output format). There is also a utility called 'xdot'
|
|
which allows you to view the .dot file directly without converting it first.
|
|
.TP
|
|
\fBGST_REGISTRY\fR
|
|
Path of the plugin registry file. Default is
|
|
~/.cache/gstreamer-GST_API_VERSION/registry-CPU.bin where CPU is the
|
|
machine/cpu type GStreamer was compiled for, e.g. 'i486', 'i686', 'x86-64',
|
|
'ppc', etc. (check the output of "uname -i" and "uname -m" for details).
|
|
.TP
|
|
\fBGST_REGISTRY_UPDATE\fR
|
|
Set to "no" to force GStreamer to assume that no plugins have changed,
|
|
been added or been removed. This will make GStreamer skip the initial check
|
|
whether a rebuild of the registry cache is required or not. This may be useful
|
|
in embedded environments where the installed plugins never change. Do not
|
|
use this option in any other setup.
|
|
.TP
|
|
\fBGST_PLUGIN_PATH\fR
|
|
Specifies a list of directories to scan for additional plugins.
|
|
These take precedence over the system plugins.
|
|
.TP
|
|
\fBGST_PLUGIN_SYSTEM_PATH\fR
|
|
Specifies a list of plugins that are always loaded by default. If not set,
|
|
this defaults to the system-installed path, and the plugins installed in the
|
|
user's home directory
|
|
.TP
|
|
\fBGST_DEBUG_FILE\fR
|
|
Set this variable to a file path to redirect all GStreamer debug
|
|
messages to this file. If left unset, debug messages with be output
|
|
unto the standard error.
|
|
.TP
|
|
\fBORC_CODE\fR
|
|
Useful Orc environment variable. Set ORC_CODE=debug to enable debuggers
|
|
such as gdb to create useful backtraces from Orc-generated code. Set
|
|
ORC_CODE=backup or ORC_CODE=emulate if you suspect Orc's SIMD code
|
|
generator is producing incorrect code. (Quite a few important
|
|
GStreamer plugins like videotestsrc, audioconvert or audioresample use Orc).
|
|
.TP
|
|
\fBG_DEBUG\fR
|
|
Useful GLib environment variable. Set G_DEBUG=fatal_warnings to make
|
|
GStreamer programs abort when a critical warning such as an assertion failure
|
|
occurs. This is useful if you want to find out which part of the code caused
|
|
that warning to be triggered and under what circumstances. Simply set G_DEBUG
|
|
as mentioned above and run the program in gdb (or let it core dump). Then get
|
|
a stack trace in the usual way.
|
|
.
|
|
.SH FILES
|
|
.TP 8
|
|
~/.cache/gstreamer-GST_API_VERSION/registry-*.bin
|
|
The plugin cache; can be deleted at any time, will be re-created
|
|
automatically when it does not exist yet or plugins change. Based on
|
|
XDG_CACHE_DIR, so may be in a different location than the one suggested.
|
|
.
|
|
.SH "SEE ALSO"
|
|
.BR gst\-inspect\-GST_API_VERSION (1),
|
|
.BR gst\-launch\-GST_API_VERSION (1),
|
|
.SH "AUTHOR"
|
|
The GStreamer team at http://gstreamer.freedesktop.org/
|