10 KiB
Installing on Linux
Prerequisites
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.
In order to install the SDK on Ubuntu, it is required that the public repository where the SDK resides is added to the apt sources list.
To do so, download the appropriate definition file for your distribution:
And copy it to the /etc/apt/sources.list.d/
directory on your system:
sudo cp gstreamer-sdk.list /etc/apt/sources.list.d/
After adding the repositories, the GPG key of the apt repository has to be added and the apt repository list needs to be refreshed. This can be done by running:
wget -q -O - http://www.freedesktop.org/software/gstreamer-sdk/sdk.gpg | sudo apt-key add -
sudo apt-get update
Now that the new repositories are available, install the SDK with the following command:
sudo apt-get install gstreamer-sdk-dev
Enter the superuser/root password when prompted.
In order to install the SDK on Debian, it is required that the public repository where the SDK resides is added to the apt sources list.
To do so, download the appropriate definition file for your distribution:
And copy it to the /etc/apt/sources.list.d/
directory on your system:
su -c 'cp gstreamer-sdk.list /etc/apt/sources.list.d/'
After adding the repositories, the GPG key of the apt repository has to be added and the apt repository list needs to be refreshed. This can be done by running:
su -c 'wget -q -O - http://www.freedesktop.org/software/gstreamer-sdk/sdk.gpg | apt-key add -'
su -c 'apt-get update'
Now that the new repositories are available, install the SDK with the following command:
su -c 'apt-get install gstreamer-sdk-dev'
Enter the superuser/root password when prompted.
In order to install the SDK on Fedora, it is required that the public repository where the SDK resides is added to the yum sources list.
To do so, download the appropriate definition file for your distribution:
And copy it to the /etc/yum.repos.d/
directory on your system:
su -c 'cp gstreamer-sdk.repo /etc/yum.repos.d/'
After adding the repositories, the yum repository list needs to be refreshed. This can be done by running:
su -c 'yum update'
Now that the new repositories are available, install the SDK with the following command:
su -c 'yum install gstreamer-sdk-devel'
Enter the superuser/root password when prompted.
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:
/opt/gstreamer-sdk/bin/gst-sdk-shell
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 gcc
command:
`pkg-config --cflags --libs gstreamer-1.0`
If you're using other GStreamer libraries, e.g. the video library, you have to add additional packages after gstreamer-1.0 in the above string (gstreamer-video-1.0 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 gst-sdk-shell
environment.
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:
git clone git://anongit.freedesktop.org/gstreamer-sdk/gst-sdk-tutorials
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:
gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`
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 gst-sdk-shell
):
./basic-tutorial-1
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.