Comment installer et utiliser le moteur multimédia gstreamer
Historique
11 mars 2013 : Reprise de la page de l'ancien site de Païou, entièrement remaniée (en cours).
Difficulté
Pour : linuxien un peu débrouillard.
Introduction
Gstreamer est un moteur multimedia (ou bibliothèque ou framework).
C'est la partie invisible de beaucoup de lecteurs multimédia : Parole, Exaile, Rhythmbox, Sound Juicer, Totem, Amarok ...
C'est le cœur du lecteur multimédia et il lui permet de traiter le son, de lire des vidéos, de recevoir les flux audio ou vidéo depuis internet ...
Son architecture est modulaire, basée sur des greffons. Elle vous permet de façonner le lecteur en fonction de vos besoins, sans l'alourdir de fonctions inutiles.
Cette page voudrait résumer, pour vous, les éléments les plus importants de Gstreamer : le choix et l'installation des greffons qui vous seront utiles.
Le traitement des sons
Le son ?
L'ordinateur peut reproduire des sons, webradios, CDs, DVD, MP3 ... Mais c'est comment, un son ?
Les sons : 
L'encodage
Comment un ordinateur peut-il encoder des sons ?
L'encodage des sons : 
Les fichiers audio
Ces données audio, une fois encodées, doivent être contenues dans un fichier d'un format approprié.
Les fichiers audio : 
Installation de gstreamer
Ce qui est déjà installé à la base
Même en faisant une installation minimale (serveur graphique avec bureau IceWM-minimal), quelques paquetages de gstreamer sont déjà installés.
C'est drakxtools, par l'intermédiaire de ses dépendances, qui demande :
drakxtools -> perl-Gtk2-WebKit -> libwebkitgtk1.0_0 -> libgstreamer-plugins-base0.10 -> libgst-gir0.10 -> libgstreamer0.10_0 -> gstreamer0.10-tools
La base minimale de gstreamer est dons déjà installée.
Si votre lecteur audio ou votre lecteur multimédia fait appel à Gstreamer, votre lecteur a déjà installé certains greffons.
Il vous reste, éventuellement, à installer des greffons supplémentaires, afin de compléter le nombre des formats audio et vidéo qui pourront être lus.
L'outil graphique d'installation d'un paquetage vous propose d'installer automatiquement les dépendances de ce paquetage, c'est-à-dire les paquetages qui sont indispensables au bon fonctionnement. Mais il installe souvent des paquetages suggérés, sans vous demander si vous en voulez.
C'est pour ceci que je préfère l'installation en ligne de commande, avec urpmi --no-suggest
- ouvrez une console Icône Émulateur de terminal
- passez en super-utilisateur su et donnez le mot de passe root.
- lancez la commande urpmi de la façon suivante : urpmi --no-suggest liste_des_greffons_à_installer
Les greffons
Les greffons sont des éléments de programmes permettant d'étendre les possibilités de l'application de base (entrées/sorties supplémentaires, codeurs/décodeurs, multiplexeurs/démultiplexeurs ...).
Avec Gstreamer, vous n'installez pas forcément tout en une fois. Vous pouvez choisir des greffons que vous allez installer.
Cela complique un peu l'installation, mais en contrepartie, vous n'encombrez pas votre ordinateur avec des éléments que vous n'utiliserez jamais et qui surchargent inutilement votre application.
Différents types de greffons
Avec Gstreamer, vous trouvez différents types de greffons. On peut, en gros, les classer dans 3 catégories :
- la gestion des entrées/sorties : relatives au matériel (CDs, DVDs, carte acquisition vidéo ...) ou relatives à l'origine du signal (fichier, flux réseau ...) ou encore relatives aux pilotes (serveur audio, vidéo ...)
- la gestion du format du fichier ou du flux de données. Un fichier ou un flux de données pourrait être comparé à une boîte qui renfermerait un ou plusieurs éléments tels que : une ou plusieurs pistes audio, une piste vidéo, des sous-titres ...
- décortiquer les flux mixtes (audio, vidéo, titres ...)
- la gestion du codage : le son, la vidéo, les sous-titres se trouvent sous une forme codée. Pour coder ou décoder il faut le codec approprié.
Il faut bien faire la différence entre le codage utilisé pour représenter les données et le format du fichier qui contient ces données codées (l'extension du nom du fichier est bien souvent trompeuse).
Quels greffons faut-il installer ?
Je ne suis pas partisan de la solution qui consiste à intaller aveuglément tous les greffons possibles et impossibles.
Cette démarche n'est pas enrichissante.
Il est plus instructif de se demander "quels documents multimédia ?" et de trouver les greffons nécessaires.
Les greffons indispensables à toute utilisation
Vous avez vu, ci-dessus, que libgstreamer-plugins-base0.10, libgst-gir0.10, libgstreamer0.10_0 et gstreamer0.10-tools sont déjà installés, mais cela ne suffit pas.
Le premier greffon à installer (il) est :
urpmi --no-suggest gstreamer0.10-plugins-base
gstreamer0.10-plugins-base (avec les bibliothèques associées) est nécessaire aux autres greffons, mais il permet également de :
En travaux 
- gérer des entrées-sorties
- produire un son ou une image (pour faire des tests)
- émettre le son via ALSA, afficher l'image
- ouvrir un fichier, envoyer dans un fichier
- transférer des données par le réseau via TCP
- communiquer avec des applications (entrée et sortie)
- connexion aux fichiers distants à l'aide de gnomeVFS ou de GIO/GVFS
- reconnaître le format des fichiers et en décortiquer des flux
- séparer les flux des fichiers conteneur .ogg
- traiter des données
- ajouter des flux
- convertir des formats audio
- rééchantillonner des données audio
- convertir des couleurs
- afficher une animation visuelle pour les flux audio, avec libvisual
Votre serveur de son est probablement pulseaudio. Dans ce cas, il faut :
urpmi --no-suggest gstreamer0.10-pulse
Quelques formats de fichiers multimédia
Sans être exhaustive, cette liste donne vue assez large des formats rencontrés :
- .3gp (3rd Generation Partnership Project), Conteneur video, pour accéder au multimédia sur les smartphones équipés de capacité vidéo, format propriétaire, fermé.
Utilise un codage semblable à MPEG-4.
- .aac (Advanced Audio Coding), Conteneur audio (mais surtout codec), format propriétaire, fermé.
Utilise le codage AAC
Vous trouvez également les extensions .m4a, .m4b, .m4r
- .ac3 (Audio Coding 3), Conteneur audio. Format propriétaire, de Dolby
Codage habituel : AC3
- .aif .aiff (Audio Interchange File Format), Conteneur audio, format développé par Apple, ouvert.
Codage habituel : PCM.
C'est le pendant du format .wav, mais dans le domaine Mac et iTunes ...
- .aifc (Audio Interchange File Format Compressed), Conteneur audio, format développé par Apple, ouvert.
Codage habituel : PCM floating, alaw, mulaw, ADPCM, IMA-ADPCM ...
- .ape, Conteneur audio, format propriétaire de Monkey’s Audio
Codage habituel : Monkey Audio codec
- .asf (Advanced Systems Format), Conteneur multimédia, format propriétaire (Microsoft) et fermé, compatible avec les DRM (gestion des droits numérique), utilisé principalement pour les média en streaming.
Codage habituel : WMA, WMV, mais peut également utiliser d'autres types de compression.
Remarque : .wma .wmv : sont généralement utilisés lorsque le fichier ne contient que des données audio compressées avec le codec audio Microsoft, ou que des données vidéo compressées avec le codec vidéo Microsoft.
- .asx, Liste Fichier (base XML), utilisé pour le stockage de listes de fichiers dans Windows Media, afin de les partager sur Internet. Un fichier ASX se lit avec un éditeur texte afin de connaître le nom du fichier multimédia ainsi que l'adresse du serveur de téléchargement.
- .au, Conteneur audio, développé par Sun Microsystems.
Codage habituel : mulaw. Mais il peut contenir : PCM, PCM floating, alaw, ADPCM, G.721, G.722, G.723 ...
- .avi (Audio Video Interleave), Conteneur multimédia, format propriétaire (Microsoft) et ouvert.
Codage habituel : audio PCM, MP3, WMA, AAC, AC3, DTS, mais d'autres codages sont possibles. vidéo DivX, XviD, MPEG. Peut contenir, en principe, n'importe quel signal audio ou vidéo, codé ou non.
- .flac (Free Lossless Audio Codec), Conteneur audio. Format libre.
Utilise le codage FLAC
- .flv (Flash Video), Conteneur multimédia. Format propriétaire et fermé développé par Adobe Systems. Il est très utilisé pour délivrer des vidéos en streaming sur Internet.
Codage habituel : audio MP3, PCM, ADPCM.
vidéo variante du codec H.264.
- .m3u, m3u8, Liste Fichier texte, liste d'adresses de fichiers mp3
- .m4a (audio MPEG-4), Conteneur audio, plus performant que le mp3 format propriétaire, fermé.
Utilise le codage AAC
Vous trouvez également les extensions .aac, .m4b, .m4r
- .m4b (audio MPEG-4), Conteneur audio, avec gestion des signets pour les livres audio, format propriétaire, fermé.
Utilise le codage AAC
- .m4r (audio MPEG-4), Conteneur audio, sonnerie pour iPhones (mais c'est du m4a), format propriétaire, fermé.
Utilise le codage AAC
- .m4v (video MPEG-4), Conteneur video, associé aux fichiers iTunes, format propriétaire, fermé.
Les fichiers peuvent être protégés par DRM, et dans ce cas il faut passer par iTunes pour acheter le fichier.
Utilise le codage MPEG-4
- .mkv (Matroska), Conteneur multimédia, format libre et ouvert.
Codage habituel : audio Vorbis, AAC, MP3, AC3, PCM, FLAC, MPC.
vidéo DivX, XviD, RealVideo, H.264, Theora.
- .mov (Quicktime), Conteneur multimédia, format propriétaire (Apple) et fermé.
Attention Quicktime désigne à la fois un codec audio, un codec vidéo et un conteneur.
Codage possible : audio PCM, AAC, alaw, mulaw, MP3, Midi, MS-ADPCM, Apple Lossless
vidéo H.264, MPEG-2, MPEG-4., 3GP, 3G2, DV, Cinepak, H.261, H.263 ....
- .mp3 (MPEG-1/2 Audio Layer 3), Conteneur audio (mais aussi codec), format propriétaire et ouvert.
Utilise le codage MP3
- .mp4 (video MPEG-4), Conteneur multimédia, stocke des données audio, vidéo, images fixes et sous-titres.
Utilise le codage MPEG-4
Un fichier .mv4 non protégé est un fichier mp4. Il suffit de changer l'extension.
- .mpc (Musepack), Conteneur audio. Format libre
Codage habituel : Musepack
- .ogg, Conteneur multimédia, format libre et ouvert, créé par la fondation Xiph.Org.
Codage habituel : audio Vorbis. vidéo Theora. Mais peut contenir : FLAC (audio) Speex (voix) Dirac (vidéo).
- .oga .ogv , sont les suffixes qui sont parfois utilisés lorsque le fichier ne contient que des données audio ou que des données vidéo.
- .ogm (OGG Média), Conteneur multimédia, format libre et ouvert. C'est une extension du format .ogg, mais développé en dehors de la fondation Xiph.Org.
Codage habituel : audio Vorbis, MP3, AAC, FLAC. vidéo Theora, Xvid, DivX.
- .qt (Quicktime), Voir .mov, ci-dessus.
- .ra (RealAudio), Conteneur audio. Format propriétaire, de RealNetworks, surtout utilisé en streaming.
Codage dépend des versions de RealAudio : AC3, ATRAC3, LC-AAC (MPEG-4), HE-AAC (MPEG-4), RealAudio Lossless ...
- .rm (RealMedia), Conteneur multimedia. Format propriétaire, de RealNetworks, surtout utilisé en streaming.
Codage habituel : RealVideo
- .ram, Liste contient un ou des liens pour lire du ra ou rm
- .wav, WAVEform audio format. Conteneur audio, format propriétaire (Microsoft et IBM), mais ouvert, conteneur audio.
Codage habituel : PCM. On peut aussi y placer PCM floating, MP3, WMA, ATRAC3, alaw, mulaw, gsm, vorbis, AC3, ADPCM, ...
Vous le rencontrerez surtout dans le monde Windows.
- .wax, Liste pour wma
- .wma (Windows Media Audio), Conteneur audio. Il s'agit, en réalité, d'un conteneur ASF (voir ci-dessus .asf) lorsque le fichier ne contient que des données audio encodées avec le codec Microsoft WMA.
- .wmv (Windows Media Video), Conteneur multimédia. Il s'agit, en réalité, d'un conteneur ASF (voir ci-dessus .asf) lorsque le fichier ne contient que des données encodées avec les codecs Microsoft WMV et WMA.
- .wvx, Liste pour wmv
Quelques codages audio : (Ce paragraphe est en
)
données non compressées, sans pertes
- PCM, PCM floating Pulse-code modulation. On parle souvent d'un codage brut (raw).
Il définit les caractéristiques de l'échantillonnage : fréquence, mode de quantification (entier ou vigule flottante, nombre de bits, signé ou non). Les valeurs dépendent du format du fichier conteneur.
PCM est utilisé sur les CD audio : 2 canaux PCM, chacun échantillonné à 44,1 kHz et quantifié à 16 bits. Vous le trouvez également dans la majorité des fichiers .wav, .aif ou .aiff.
données compressées, sans pertes
- FLAC, Free Lossless Audio Codec. Codec libre de compression audio sans perte de qualité. Taille de fichier plus faible qu'avec PCM, mais plus importante qu'avec une compression avec perte.
Supporte les formats d'entrée : 4 à 32 bits, échantillonnage 1 Hz à 1 048 570 Hz, 1 à 8 canaux.
Ce format est à préférer, pour peu que la taille du fichier n'est pas un obstacle.
données compressées avec pertes
- AAC, AAC utilise un encodage à débit variable (VBR), c'est-à-dire un encodage permettant d'adapter le nombre de bits utilisés par seconde pour encoder les données audio, selon la complexité du flux audio à un moment donné.
L'algorithme utilisé est plus performant que celui du MP3, ce qui permet d'obtenir de plus petit fichiers avec une meilleure qualité, tout en nécessitant moins de ressources pour l'encodage ou le décodage.
Permet un enregistrement polyphonique jusqu'à 48 canaux, une restitution sonore dans la bande de fréquence 8Hz-96.0kHz, contre 16 à 48 kHz pour le format mp3.
- alaw, mulaw (ITU-T G.711), Codage PCM logarithmique, avec compression et pertes, 8 bits, multicanaux, échantillonnage 8000 (normal), 11025, 22050 ou 44100 Hz.
Standard de codage de la voix, utilisé principalement dans les réseaux téléphoniques commutés, mais aussi en VoIP (Voix sur IP).
mulaw est utilisé aux États-Unis et au Japon, alaw dans les autres pays. Ce codage est généralement contenu dans des fichiers .aifc, .au, .wav
Les messages du répondeur de Free sont codés en alaw, dans un fichier au format .wav (le format d'origine, .au, n'était pas bien reconnu par Windows Media Player).
- MP3, MPEG-1/2 Audio Layer 3 est un codec propriétaire de compression audio, développé par le Moving Picture Experts Group.
Il est très populaire, mais moins performant que son homologue libre Vorbis
- WMA, Windows Media Audio aussi appelé WMA est un codec propriétaire de compression audio, développé par Microsoft. Il permet de protéger, dès l’encodage, les fichiers contre la copie illégale par une technique nommée gestion numérique des droits (ou DRM en anglais).
En travaux 
Et, pour terminer, quelques codages vidéo : (Ce paragraphe est en
)
Les greffons pour lire les fichiers "multimédia"
Rappelez-vous, il y a souvent confusion entre le format d'un fichier et le codec utilisé pour coder les données.
Pour pouvoir lire un fichier audio ou vidéo, il faut faire deux choses :
- extraire du fichier la partie utile : les données audio ou/et les données vidéo et/ou texte (sous-titres par ex.)
- décoder ces données qui sont souvent compressées
Vous retrouverez, ici, le même schéma que dans le paragraphe "Fichiers multimédia" : d'abord les formats de fichiers, puis les codecs audio, et enfin les codecs vidéo.
Les greffons pour les formats courants : (Ce paragraphe est en
)
- .aif .aiff .aifc : Conteneur audio = gstreamer0.10-plugins-base + gstreamer0.10
- .au : Conteneur audio = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
- .asf (.wma .wmv) : Conteneur multimédia, (audio, vidéo) = gstreamer0.10-plugins-base + gstreamer0.10-plugins-ugly
- .avi : Conteneur multimédia = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
- .flv : Conteneur multimédia = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
- .mkv : Conteneur multimédia = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
- .mov .qt : Conteneur multimédia = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
- .ogg .ogm (.oga .ogv) : Conteneur multimédia, (audio, vidéo) = gstreamer0.10-plugins-base
- .wav : Conteneur audio = gstreamer0.10-plugins-base + gstreamer0.10-plugins-good
Les greffons pour les codecs audio courants : (Ce paragraphe est en
)
- données non compressées, sans pertes
- PCM, PCM floating Codage brut, doit se trouver dans un fichier conteneur pour être exploitable = gstreamer0.10-plugins-base
- données compressées, sans pertes
- données compressées avec pertes
En travaux

Le greffon pour lire les CD audio
Pour lire les CD audio, deux solutions existent :
gstreamer0.10-plugins-cdio
Il faut simplement ajouter le greffon gérant la lecture des CDs.
urpmi --no-suggest gstreamer0.10-cdio