1. Tech

Your suggestion is on its way!

An email with a link to:


was emailed to:

Thanks for sharing About.com with others!

Linux / Unix Command: gst-launch
Command Library


gst-launch - build and run a GStreamer pipeline  




gst-launch is a tool that builds and runs basic GStreamer pipelines.

In simple form, a PIPELINE-DESCRIPTION is a list of elements separated by exclamation marks (!). Options may be appended to elements, in the form "option=value". A group of elements surrounded by curly braces {, } will be executed in a separate thread.

Connections between non-consecutive elements are created by specifying a element names and pad names immediately before and after the exclamation mark, in the form "element0.sinkpad!element1.srcpad". The default name given to an element is the name of its class followed by an index. If the element names are omitted, the previous and next elements in the PIPELINE-DESCRIPTION will be used. If the pad names are omitted, a default pad of the correct type (source or sink) is found on the given element, typically named "src" or "sink".

See the GStreamer documentation for a complete description of a a PIPELINE-DESCRIPTION.



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", or "artsdsink". Likewise, "xvideosink" can be substituted with "sdlvideosink" or "aasink".

Audio playback

Play the mp3 music file "music.mp3" using a libmad-based plug-in and output to an OSS device:

        gst-launch filesrc location=music.mp3 ! mad ! osssink

Play an Ogg Vorbis format file:

        gst-launch filesrc location=music.ogg ! vorbisfile ! osssink

Play an mp3 file or stream retrieved via http:

        gst-launch httpsrc location=http://domain.com/music.mp3 ! mad ! osssink

Play an mp3 file or stream using GNOME-VFS:

        gst-launch gnomevfssrc location=music.mp3 ! mad ! osssink

        gst-launch gnomevfssrc location=http://domain.com/music.mp3 ! mad ! osssink

Use GNOME-VFS to play an mp3 file located on an SMB server:

        gst-launch gnomevfssrc location=smb://computer/music.mp3 ! mad ! osssink

Format conversion

Convert an mp3 music file to an Ogg Vorbis file:

        gst-launch filesrc location=music.mp3 ! mad ! vorbisenc ! filesink location=music.ogg

Alternatively, to convert to the FLAC format, use the command line:

        gst-launch filesrc location=claptrap.mp3 ! mad ! flacenc ! filesink location=test.flac


Plays a .WAV file:

        gst-launch filesrc location=music.wav ! wavparse ! osssink

Convert a .WAV file into Ogg Vorbis (or mp3) file:

        gst-launch filesrc location=music.wav ! wavparse ! vorbisenc ! filesink location=music.ogg

        gst-launch filesrc location=music.wav ! wavparse ! mpegaudio ! filesink location=music.mp3

Alternatively, if you have lame installed (and have the lame plug-in), you can substitute lame for mpegaudio in the previous example. It gives better results than mpegaudio.

Rip all tracks from compact disc and convert them into a single mp3 file:

        gst-launch cdparanoia ! mpegaudio ! filesink location=cd.mp3

Using gst-inspect, it is possible to discover settings for cdparanoia that will tell it to rip individual tracks.

Record sound from your audio input and encode it into an ogg file:

        gst-launch osssrc ! vorbisenc ! filesink location=input.ogg


Display only the video portion of an MPEG-1 video file, outputting to an X display window (The "queue" element is necessary to buffer data between the threads):

        gst-launch filesrc location=JB_FF9_TheGravityOfLove.mpg ! mpegdemux video_%02d!src { queue ! mpeg2dec ! xvideosink }

Display the video portion of a .vob file (used on DVDs), outputting to an SDL window:

        gst-launch filesrc location=/flflfj.vob ! mpegdemux video_%02d!src { queue ! mpeg2dec ! sdlvideosink }

Play both video and audio portions of an MPEG movie:

        gst-launch filesrc location=movie.mpg ! mpegdemux video_%02d!src { queue ! mpeg2dec ! sdlvideosink } mpegdemux0.audio_%02d!src { queue ! mad ! osssink }

Play an AVI movie:

        gst-launch filesrc location=movie.avi ! avidemux video_%02d!src { queue ! windec ! sdlvideosink }

Network streaming

An MPEG-1 system stream can be streamed via RTP from one machine to another. On the receiver, execute:
          gst-launch rtprecv media_type=mpeg1_sys ! mpegdemux video_%02d!src { queue ! mpeg2dec ! xvideosink } mpegdemux0.audio_%02d!src { queue ! mad ! osssink }

On the transmitter, execute:

        gst-launch filesrc location=mpeg1system.mpeg ! mpegparse ! rtpsend ip=IPorHostname


Generate a null stream and ignore it:

        gst-launch fakesrc ! fakesink

Generate a pure tone to test the audio output:

        gst-launch sinesrc ! osssink

Generate a familiar test pattern to test the video output:

        gst-launch videotestsrc ! xvideosink



gst-launch accepts the following options:
Print help synopsis and available FLAGS
Do not output status information
--exclude=TYPE, -XTYPE
Do not output status information of TYPE
--output=FILE, -oFILE
Save XML representation of pipeline to FILE and exit
GStreamer info flags to set (list with --help)
GStreamer debugging flags to set (list with --help)
GStreamer info and debugging flags to set (list with --help)
GStreamer info flags to set Enable printout of errors while loading GStreamer plugins
Add directories separated with ':' to the plugin search path


gst-complete(1), gst-register(1), gst-inspect(1)  

Important: Use the man command (% man) to see how a command is used on your particular computer.

>> Linux/Unix Command Library

>> Shell Command Library

©2015 About.com. All rights reserved.