Lecteur multimédia : GStreamer
GStreamer est, en bref, un moteur utilisé par d'autres applications pour lire les fichiers multimédia. Il est produit sous licence LGPL.
De façon plus détaillée, GStreamer est une collection de bibliothèques permettant la connexion de composants de gestion de média, allant de la simple lecture Ogg/Vorbis à de l'édition audio complexe (mixage) et vidéo (édition non linéaire).
Les applications peuvent ainsi profiter des avancées technologiques faites au niveau des codecs et des filtres de manière totalement transparente. Les développeurs peuvent ajouter des nouveaux codecs et filtres en écrivant de simples greffons avec une interface générique propre.
Installation
GStreamer est installé de base sous Ubuntu mais il faudra suivant vos besoins installer des greffons de gstreamer, permettant de décoder des codecs vidéos ou audios qui ne sont pas lisibles par défaut : voir plus bas.
Le paquet permettant d'activer une sortie vidéo en opengl n'est pas disponible par défaut à ce jour (Maverick). Voir le rapport de bug sur launchpad.
Pour l'activer si besoin il faut compiler le paquet gstreamer0.10-plugins-gl.
On récupère les dernières sources sur le site de gstreamer.
On décompresse et on se place avec un terminal dans le répertoire des sources.
Vous aurez besoin d'installer les dépendances suivantes : libglew1.5-dev, libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev, libjpeg-dev.
./configure --prefix=/usr make sudo checkinstall --pkgversion "0.10.2" --pkgname=gstreamer0.10-plugins-gl --showinstall --default --fstrans=no
Utilisation
Vous utilisez de manière totalement transparente GStreamer lors de la lecture de fichiers multimédia par le biais d'une des applications utilisant GSTreamer.
Configuration
Lancer :
gstreamer-properties
Optimisation
xvimagesink
offre de meilleures performances. Vous devriez donc l'utiliser si cela est possible (voir note).
xvimagesink
n'est pas compatible avec Xsun. Vous devez utiliser Xorg pour pouvoir utiliser xvimagesink
et ainsi bénéficier des gains de performances.
gconf-editor
Dans system > gstreamer > 0.10 > default
, changer la valeur de videosink
par xvimagesink
.
Greffons
Comme précisé dans l'introduction, GStreamer est modulaire et de nombreux greffons viennent enrichir ses possibilités. En voici quelques-uns (tiré d'autres pages du wiki) :
- Voici les paquets à ajouter (avec un gestionnaire de paquets) pour lire différents formats de fichiers.
Format | Paquet | dépôts | Plus d'informations |
---|---|---|---|
Ogg, Vorbis, Theora, Flac, etc | gstreamer0.10-plugins-good | main | installé par défaut |
mp3, DVD, mpeg2, asf | gstreamer0.10-plugins-ugly | universe | |
<video> | gstreamer0.10-ffmpeg | universe | |
<diffusion> + mpc | gstreamer0.10-plugins-bad | universe | Flash (swf), QT, flux mms etc |
aac | gstreamer0.10-plugins-bad-multiverse | multiverse | |
QuickTime QTX and DirectShow/DMO DLL | ? | ||
m4a | ? |
En une ligne, ça donne :
sudo apt-get install gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-pitfdll gstreamer0.10-sdl gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse mpg321
Ou en un clic : Installer les greffons gstreamer.
Vous pouvez aussi lister les greffons supportés avec la commande suivante :
gst-inspect-0.10
sudo add-apt-repository ppa:mc3man/trusty-media
Puis ne pas oublier de recharger la liste des paquets avec la commande suivante :
sudo apt-get update
Vous pourrez alors installer le paquet gstreamer0.10-ffmpeg
Les pipelines
Un pipeline relie la sortie d'une fonction à l'entrée de la suivante. Il est symbolisé par le point d'exclamation !
(exemple de fonctions : lecture du fichier, décodage, conversion et envoi vers le pilote de la carte son).
Les pipelines sont utilisés pour décoder les flux multimédia bien sûr mais aussi pour les encoder. Ainsi pour encoder vos CD de musique, l'application Sound-Juicer les utilise. Vous pouvez les éditer en lançant directement la commande suivante :
gnome-audio-profiles-properties
Vous trouverez donc ici les exemples qui vous permettront d'encoder votre musique vers différents formats :
Extension | Pipeline GStreamer | Commentaire(s) |
---|---|---|
ogg | audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux | |
flac | audio/x-raw-int,rate=44100,channels=2 ! flacenc name=enc | |
mp3 | audio/x-raw-int,rate=44100,channels=2 ! lamemp3enc name=enc | nécessite le greffon correspondant |
aac | audio/x-raw-int,rate=44100,channels=2 ! faac ! ffmux_mp4 | nécessite le greffon correspondant |
wav | audio/x-raw-int,rate=44100,channels=2 ! wavenc name=enc |
Selon la page wiki du codec Vorbis, "À partir d'un flux audio stéréo échantillonné à 44,1 kHz (échantillonnage standard d'un CD audio), le codeur produit en sortie un flux à un débit de 45 à 500 kbit/s suivant la qualité choisie (cf tableau). Le coefficient de qualité est une métrique arbitraire et peut varier de -1 à 10"( voir notamment dans la page la correspondance entre facteur de qualité et débit ). Dans un pipeline gstreamer, il semble nécessaire d'indiquer ce facteur de qualité divisé par 10 ( valeur comprise entre -0,1 et 1 ); Par exemple, une valeur quality=0,9 donnera un débit de 320 kb/s…
D'autres précisions pour le mp3 :
- l'encodeur lame de gstreamer est obsolète, il est toujours présent pour des questions de rétrocompatilités, il est recommandé d'utiliser l'encodeur lamemp3enc
- vous pouvez rajouter d'autres paramètres pour Lame (en plus de name=enc). La liste complète est la sortie de la commande suivante :
gst-inspect lamemp3enc
- Si les méta-informations (id3tag) ne sont pas correctes, ajoutez les pipelines suivants après le pipeline de Lame : ! xingmux ! id3v2mux exemple pour le mp3
audio/x-raw-int,rate=44100,channels=2 ! lamemp3enc name=enc ! id3v2mux
pour l'encodage en mp3 plus d'informations ici
D'autres exemples sur les pipelines :
$ man gst-launch-0.10
Utilisation avec KDE4
Les applications de l'environnement KDE utilisent Phonon pour gérer le son. Sous Ubuntu avec l'environnement Gnome, le son est géré par PulseAudio. Pour que le son marche correctement dans les applications utilisant Phonon, il faut installer le paquet phonon-backend-gstreamer.
Voir aussi
- (en) Site Officiel
—-
Contributeurs : Rédigée et maintenue par Id2ndR. Inspiré de la documentation anglophone https://help.ubuntu.com/community/CDRipping