Compiler GStreamer depuis les sources sous GNU/Linux
Voici une petite procédure pour compiler la dernière version du framework multimédia GStreamer tout en préservant la version installée depuis les dépôts officiels. La procédure a été validé sur une GNU/Linux Ubuntu 9.04 mais doit facilement être adaptable à d'autres distribution (pour une procèdure équivalente sous Mac OS X, vous pouvez lire ce billet).
GStreamer étant un framework, il se base sur de nombreuses librairies externes. Pour nous simplifier la tache, nous allons utiliser les dépôts pour l'installation de ces librairies:
sudo aptitude build-dep gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse bison flex
Ensuite on récupère les dernières versions disponibles de GStreamer et de ses plugins:
mkdir ~/src
cd ~/src
wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.23.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.12.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.23.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.15.tar.gz
wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.11.tar.gz
On commence par la compilation de GStreamer (core). L'installation se fera dans le répertoire /opt/gstreamer/gstreamer-0.10.23:
tar zxvf gstreamer-0.10.23.tar.gz
cd gstreamer-0.10.23
./configure --prefix=/opt/gstreamer/gstreamer-0.10.23
make
sudo make install
cd ..
... puis les plugins "base":
tar zxvf gst-plugins-base-0.10.23.tar.gz
cd gst-plugins-base-0.10.23
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.23/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure --prefix=/opt/gstreamer/gstreamer-0.10.23
make
sudo make install
cd ..
... puis les plugins "good":
tar zxvf gst-plugins-good-0.10.15.tar.gz
cd gst-plugins-good-0.10.15
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.23/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure --prefix=/opt/gstreamer/gstreamer-0.10.23
make
sudo make install
cd ..
... puis les plugins "bad":
tar zxvf gst-plugins-bad-0.10.12.tar.gz
cd gst-plugins-bad-0.10.12
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.23/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure --prefix=/opt/gstreamer/gstreamer-0.10.23
make
sudo make install
cd ..
... et enfin les plugins "ugly":
tar zxvf gst-plugins-ugly-0.10.11.tar.gz
cd gst-plugins-ugly-0.10.11
PKG_CONFIG_PATH=/opt/gstreamer/gstreamer-0.10.23/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig ./configure --prefix=/opt/gstreamer/gstreamer-0.10.23
make
sudo make install
cd ..
Puis on créé un lien symbolique entre le répertoire /opt/gstreamer/current et /opt/gstreamer/gstreamer-0.10.23. Ce lien nous permet d'avoir plusieur version de GStreamer sur notre système.
sudo ln -s /opt/gstreamer/gstreamer-0.10.23 /opt/gstreamer/current