To develop applications using the GStreamer SDK on Linux you will need one of the following supported distributions:
- Ubuntu Precise Pangolin (12.04)
- Ubuntu Quantal Quetzal (12.10)
- Ubuntu Raring Ringtail (13.04)
- Debian Squeeze (6.0)
- Debian Wheezy (7.0)
- Fedora 17
- Fedora 18
Other distributions or version might work, but they have not been tested. If you want to try, do it at your own risk!
All the commands given in this section are intended to be typed in from a terminal.
Make sure you have superuser (root) access rights to install the GStreamer SDK.
Download and install the SDK
The GStreamer SDK provides a set of binary packages for supported Linux distributions. Detailed instructions on how to install the packages for each supported distribution can be found below. Optionally, you can download the source code and build the SDK yourself, which should then work on any platform.
These packages will install the SDK at
/opt/gstreamer-sdk. If you build the SDK yourself, you can install it anywhere you want.
Configure your development environment
When building applications using GStreamer, the compiler must be able to locate its libraries. However, in order to prevent possible collisions with the GStreamer installed in the system, the GStreamer SDK is installed in a non-standard location
/opt/gstreamer-sdk. The shell script
gst-sdk-shell sets the required environment variables for building applications with the GStreamer SDK:
The only other “development environment” that is required is the
gcc compiler and a text editor. In order to compile code that requires the GStreamer SDK and uses the GStreamer core library, remember to add this string to your
If you're using other GStreamer libraries, e.g. the video library, you have to add additional packages after gstreamer-0.10 in the above string (gstreamer-video-0.10 for the video library, for example).
If your application is built with the help of libtool, e.g. when using automake/autoconf as a build system, you have to run the
configure script from inside the
You have also the option to embed the SDK's path into your binaries so they do not need to be executed from within the
In case you are using libtool, it will automatically add the
Getting the tutorial's source code
The source code for the tutorials can be copied and pasted from the tutorial pages into a text file, but, for convenience, it is also available in a GIT repository and distributed with the SDK.
The GIT repository can be cloned with:
Or you can locate the source code in
/opt/gstreamer-sdk/share/gst-sdk/tutorials, and copy it to a working folder of your choice.
Building the tutorials
You need to enter the GStreamer SDK shell in order for the compiler to use the right libraries (and avoid conflicts with the system libraries). Run
/opt/gstreamer-sdk/bin/gst-sdk-shell to enter this shell.
Then go to the folder where you copied/cloned the tutorials and write:
Using the file name of the tutorial you are interested in (
basic-tutorial-1 in this example).
Depending on the GStreamer libraries you need to use, you will have to add more packages to the
At the bottom of each tutorial's source code you will find the command for that specific tutorial, including the required libraries, in the required order.
When developing your own applications, the GStreamer documentation will tell you what library a function belongs to.
Running the tutorials
To run the tutorials, simply execute the desired tutorial (from within the
Deploying your application
Your application built with the GStreamer SDK must be able locate the GStreamer libraries when deployed in the target machine. You have at least a couple of options:
If you want to install a shared SDK, you can put your application in
/opt/gstreamer-sdk (next to the SDK) and create a
.desktop file in
/usr/share/applications pointing to it. For this to work without any problems you must make sure that your application is built with the
-Wl,-rpath=/opt/gstreamer-sdk/lib parameter (this is done automatically by libtool, if you use it).
Or, you can deploy a wrapper script (similar to
gst-sdk-shell), which sets the necessary environment variables and then calls your application and create a
.desktop file in
/usr/share/applications pointing to the wrapper script. This is the most usual approach, doesn't require the use of the
-Wl,-rpath parameters and is more flexible. Take a look at
gst-sdk-shell to see what this script needs to do. It is also possible to create a custom wrapper script with the
gensdkshell command of the Cerbero build system, if you built the SDK yourself as explained above.