Catégories
Open-source

Introduction à GStreamer, le framework multimedia

Depuis l’intégration dans le noyau de Gnome 2.2, GStreamer est devenu un « framework » multimédia très à la mode. Contrairement à la musique, être à la mode peut être compatible avec qualité. Nous allons dans ce billet aborder cet outil très pratique à partir du moment ou vous voulez développer des applications gérants du son et de la vidéo.

Introduction

GStreamer est une boite à outil permettant de gérer des données multimédia (son et vidéo) de bout en bout: de l’acquisition de la source (fichier, flux réseau, webcam, micro…) au traitement (effet vidéo, audio, encodage) à la diffusion (sur l’écran, dans un fichier, sur le réseau).

Un exemple:

Ce dernier est développé en C (note du Troll: le seul et unique language pour faire ce genre de chose) mais il existe de nombreuse librairie pour appeller GStreamer à partir de logiciel développé dans d’autres languages (C, Java, Perl, Pythonet autres). GStreamer existe sous GNU/Linux, BSD et Windows (voir ici la procédure pour compiler GStreamer sous Windows).

Il se base sur une architecture modulaire composé d’un coeur (GStreamer) et de plugins (Base, Good, Ugly, Bad).

Installation de GStreamer

Voici les lignes de commandes à saisir pour installer GStreamer et les plugins sur une distribution GNU/Linux Ubuntu:

# sudo apt-get install gstreamer0.10-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

Pour vérifier que l’installation est ok, vous pouvez lancer la commande suivante qui devrait afficher la liste des plugins disponibles:

# gst-inspect

Nombre total : 168 greffons, 762 fonctionnalités

Un premier exemple

Pour tester notre Framework avant de l’intégrer dans votre logiciel, il existe une ligne de commande très pratique: gst-launch.

Nous allons par exemple utiliser GStreamer pour ouvrir un fichier vidéo au format OGG et l’afficher sur notre écran (les bases d’un lecteur multimédia… sans le son ;)):

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

et le résultat:

Détaillons un peu cette ligne:

 

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

La commande gst-launch permet de tester un framework en ligne de commande.

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

Nous appelons en premier le plugin filesrc qui est un plugin qui prend en entrée un fichier multimédia (dont le nom est passé par le paramètre location).

Pour avoir une documentation précise du plugin (et des ses paramètres), vous pouvez utilsier la commande suivante:

# gst-inspect filesrc

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

Le deuxième plugin utilisé (il faut utiliser le ! entre deux plugins, c’est un peu l’équivalent d’un | pour les commandes Unix) est oggdemux, qui prend en entrée un flux vidéo OGG (fourni dans notre cas par filesrc) et qui de décode.

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

Ensuite on utilise le plugin theoradec pour décoder la vidéo dont le format est Theora.

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! xvimagesink

Ce dernier plugin (xvimagesink) prend en entrée un flux video décodé (format RAW) et l’affiche sur l’écran en utilisant Xv (XFree86 Video).

Comme on peut le voir, cette logique d’enchaînement de tâches est très intuitive.

Ainsi, si l’on souhaite que notre lecteur vidéo redimmensionne l’image avant de l’afficher, il suffit d’ajouter les plugins suivants (videoscale):

# gst-launch filesrc location=../Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux ! theoradec ! videoscale ! video/x-raw-yuv,height=240 ! xvimagesink

Simple non 🙂 ?

D’autres exemples…

Récupération d’un flux venant d’une caméra (sur /dev/video0), redimensionnement en 240 lignes et affichage sur l’écran:

# gst-launch v4l2src ! videoscale ! video/x-raw-yuv,height=240 ! xvimagesink

Récupération d’un flux venant d’une caméra (sur /dev/video0), redimensionnement en 240 lignes, application d’un filtre EffectTV (quarktv qui rend flou les objets en mouvement) et affichage sur l’écran:

# gst-launch v4l2src ! videoscale ! video/x-raw-yuv,height=240 ! ffmpegcolorspace ! quarktv ! ffmpegcolorspace ! xvimagesink

Dans nos premiers exemples, nous avons traités notre flux de manière séquentielle. Si nous voulons, par exemple, ajouter l’audio à notre lecteur multimédia il faut que GStreamer gére la vidéo et le son en parallèle. On va utiliser le plugin queue qui a pour fonction de créer un nouveau « thread » GStreamer.

Notre lecteur multimédia devient donc:

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux name=demux \
demux. ! queue ! vorbisdec ! audioconvert ! audioresample ! osssink \
demux. ! queue ! theoradec ! xvimagesink

On peut améliorer le lecteur en laissant GStreamer sélectionner lui même les sorties audio et vidéo (autodetect):

# gst-launch filesrc location=./Vidéos/big_buck_bunny_480p_stereo.ogg ! oggdemux name=demux \
demux. ! queue ! vorbisdec ! audioconvert ! audioresample ! autoaudiosink \
demux. ! queue ! theoradec ! autovideosink

Je m’arrête là pour ce premier article sur GStreamer. Nous reviendrons bientôt sur ce passionnant sujet notamment en abordant l’encodage audio et vidéo et le streaming sur le réseau.Je vous laisse consulter la longue liste des plugins pour trouver votre bonheur. N’hésitez pas à proposer vos framework GStreamer en ligne de commande dans les commentaires 😉

Catégories
Open-source

Mise à jour de Nagios en version 3.1.0

Ce week-end est sortie la version 3.1.0 de Nagios, notre outil de supervision libre favori. Si vous avez suivi la série d’articles suivants pour installer votre serveur Nagios, alors nous allons voir comment mettre à jour Nagios dans cette dernière version.

Attention, à l’heure actuelle (26/01/2009) cette version est une version de développement/test. A ne pas mettre sur un serveur de production.

Nagios.jpg

Les nouveautés de cette version 3.1.0

Le « changelog » traduit en Français est disponible ici. A noter que cette version est mineure et prépare le terrain pour la future version 3.2.0. Au niveau de l’interface Web à noter l’utilisation du langage PHP.

Mise à jour de Nagios 3.1.0 depuis une version 3.0.x

Backup de l’ancienne version

Il est préférable de sauvegarder son ancienne configuration… au cas ou..

   # cd /tmp

# tar zcvfh ./nagios-backup.tgz /usr/local/nagios –exclude var/archives

ATTENTION: mettre deux – avant le exclude

Si quelque chose se passe mal au niveau de la mise à jour, il sera toujours possible de revenir en arrière en saisissant les commandes suivantes:

   # cd /tmp

   # tar zxvf ./nagios-backup.tgz

Téléchargement de la dernière version

Il faut au préalable des opérations suivantes, se loguer en tant qu’utilisateur nagios afin que les fichiers soient générés avec les bons droits.

Sur Ubuntu ou Debian:

   # sudo -s nagios

Puis télécharger la dernière version stable (3.1.0 au moment de l’écriture de ce billet).

   # mkdir src

   # cd src

# wget http://switch.dl.sourceforge.net/sourceforge/nagios/nagios-3.1.0.tar.gz

Compilation et installation

On décompresse puis on lance la compilation:

# tar zxvf nagios-3.1.0.tar.gz

# cd nagios-3.1.0

# ./configure –with-command-group=nagios

ATTENTION: mettre deux – avant le with

   # make all

Si la compilation se termine sans erreur, vous pouvez l’installer sur votre système, sinon je vous conseille de poster votre erreur dans le forum officiel de Nagios:

# make install

# rm -rf /usr/local/nagios/share

# make install-html

Vérification de la configuration et redémarrage de Nagios

On va dans un premier temps vérifier que nos fichiers de configurations sont compatibles avec cette nouvelle version:

   # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

   Si vous avez ce rapport à la fin:

   Total Warnings: 0

   Total Errors: 0

   C’est bon pour vous 😉

Finalement on relance Nagios (en repassant en mode root) dans la nouvelle version:

Sur Ubuntu ou Debian:

# /etc/init.d/nagios restart

Et voilà le travail !

Catégories
Open-source

Actualité open-source de la semaine #48

L’actualité open-source de la semaine…

L’image de la semaine

linux-birthday.jpeg (Image JPEG, 150x150 pixels).jpg
Bon anniversaire (10 ans déjà…) à Lea-Linux

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

  • Vous cherchez un webmail open-source ? ce billet devrait vous intéresser.
  • LemonLDAP (le SSO libre) passe en version 0.9.3
  • Bruxelles se penche enfin sur Internet Explorer
  • MLO, une distribution Linux pour migrer facilement depuis Windows
  • Adobe va libérer le protocole RTMP: on va enfin voir des lecteurs FLV libre et stable
  • FDN premier FAI full IPv6

Autres choses ?

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 4

Nous arrivons bientôt à la fin de l’installation de notre serveur de supervision. Avec Nagios et Centreon il est parfaitement opérationnel. Je trouve cependant qu’il manque encore à Centreon des fonctions de graphes évoluées. C’est pour cela que je propose d’ajouter sur notre bébé un serveur Cacti.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 3

Les deux premiers billet de cette série nous ont permis d’installer le coeur de notre serveur de supervision: le logiciel Nagios. Nous allons donc maintenant nous occuper de l’enrobage: l’interface Web d’administration Centreon.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Centreon offre à Nagios une nouvelle interface et lui apporte de nouvelles fonctionnalités. Il va rendre la configuration de Nagios plus facile et d’avoir une interface graphique améliorée. C’est une interface qui pour moi n’est pas obligatoire mais qui peut s’avérer utile dans certains cas:

  • si une équipe doit gérer le serveur Nagios, il sera plus facile de les former en utilisant Centreon
  • si vous êtes allergique aux fichiers de configuration au format texte
  • si vous êtes un “accro” aux interfaces Web

Attention toutefois, Centreon va générer des fichiers de configuration de Nagios à sa manière. Vous allez donc perdre tout le contrôle sur ces fichiers… Bref si vous êtes un administrateur système soigneux, qui prend soit de commenter/archiver voir gérer en configuration ce type de fichiers, je vous conseille de passer votre chemin et d’attendre le prochain billet de cette série.

Catégories
Blog

Migration du flux RSS vers Google

Feedburner est en train de migrer petit à petit nos flux RSS vers les infrastructures de Google. Je viens de déclencher la migration pour le « Blog de Nicolargo ».

Normalement rien à changer de votre coté pour suivre l’actualité du blog. Feedburner va continuer à rediriger l’ancienne adresse du flux RSS (http://feeds.feedburner.com/LeBlogDeNicolargo) vers la nouvelle (http://feeds2.feedburner.com/LeBlogDeNicolargo).

Le plus simple est d’utiliser l’adresse suivante qui sera automatiquement redirigé vers le bon flux RSS du blog:

flux-rss-grand.gif

https://blog.nicolargo.com/feed

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 2

Attention:

avant de suivre ce tutoriel, il faut avoir effectuer toutes les étapes
de la première partie de tutoriel (PART1) qui est disponible ici.

Actuellement le couple NDO / Centreon n’est pas compatible avec Nagios 4.

Dans un premier billet, nous avons installé un serveur GNU/Linux. Il est maintenant temps de passer au chose sérieuse en installant le coeur de notre système: Nagios.

A l’heure ou je rédige ce billet, la dernière version de Nagios est la 3.5.1, hors si on regarde la version disponible dans les packages apt d’Ubuntu, on voit qu’ils sont un peu en retard au niveau des version. C’est donc pour cette raison que je préfère compiler Nagios depuis les sources afin de disposer de la dernière version sur notre serveur de supervision.

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 1

Cela fait maintenant un petit moment que ce blog existe. Il aborde bien des sujets autours des logiciels libres mais il y en a un qui suscite plus d’intérêt que les autres: la supervision système et réseau. La complexité de ces logiciels et la faible documentation Francophone (bien que ce soit en train de changer) y est surement pour quelque chose.

Je propose donc de commencer une série de billets sur l’installation d’un serveur de supervision basé uniquement sur des solutions libres.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Les caractéristiques de ce serveur seront les suivantes:

  • Système d’exploitation: GNU/Linux Ubuntu Server Edition 8.10 ou supérieure
  • Nagios 3.4.1
  • Centreon 2.3.8
  • Cacti 0.8.7i

Trêve de blabla, entrons directement dans le vif du sujet avec l’installation du système d’exploitation et des pré-requis systèmes qui vont servir de base à notre serveur de supervision.

Catégories
Open-source

Actualité open-source de la semaine #47

L’actualité open-source de la semaine…

L’image de la semaine

00D5000000278081.png

Une nouvelle secrétaire d’état pour le numérique: Nathalie Kosciusko-Morizet
Le lobbying du libre doit reprendre

Tout le monde en parle, sauf moi…

L’actualité du libre et de l’open source en vrac:

  • Petite rétrospective 2008 des logiciels libres sur LinuxFR
  • OpenVAS (fork de Nessus) passe en version 2.0: C’est un outil d’audit de la sécurité informatique des réseaux
  • PidGin le client de messagerie libre passe en version 2.5.4 et corrige le problème avec MSN
  • Une belle histoire de switch de Mac OS X vers Linux Ubuntu
  • FAN (pour Fully Automated Nagios) passe en version 1.1

Autres choses ?

Catégories
Blog

Le Bashfr ultime

« G33kPowaah : en fait, la différence entre Linux et Windows, c’est que Linux c’est comme une belle fille, il faut l’apprivoiser, la comprendre, la séduire tandis que Windows, c’est comme une prostitué, il faut payer et surtout bien se protéger. »

Source: Tux-planet.fr