Catégories
Open-source Planet-libre Systeme

Transformer son iPhone en trackpad pour GNU/Linux

Apple vient de sortir son Magic Trackpad qui sera supporté nativement dans la prochaine version d’Ubuntu (la 10.10). Néanmoins, beaucoup d’entrenous disposons d’un dispositif de pointage multi-point performant dans notre poche: l’iPhone… Nous allons donc voir dans ce billet comment piloter notre système GNU/Linux (Ubuntu pour l’exemple mais la procédure doit pouvoir marcher sur d’autres distributions) depuis notre smartphone Apple !

Le logiciel en question permettant de réaliser ce « truc de geek » se nomme RemotePad à le bon goût d’être disponible sous Windows, Mac OS, BSD et Linux. Il utilise l’IP comme protocole de transport. Il faut donc que le PC à contrôler et l’iPhone (qui jouera la fonction de trackpad) soient connectés sur le même réseau local.

Le principe est relativement simple: il faut installer un serveur RemotePad (sous licence GPL v2) sur le PC à contrôler et l’application cliente RemotePad sur l’iPhone.

Installation du serveur sur le PC GNU/Linux

Le serveur doit être compilé à partir des sources, rien de compliqué, il suffit de saisir les commandes suivantes dans un terminal:

sudo aptitude install libxtst-dev

mkdir ~/src

cd ~/src

wget http://iphone-remotepad.googlecode.com/files/RemotePadServer-1.10-X11-Source.tgz

tar zxvf RemotePadServer-1.10-X11-Source.tgz

cd RemotePad\ Server/

cd X11

./configure

make

sudo make install

Lancement du serveur sur le PC GNU/Linux

Il suffit de lancer la commande suivante dans un terminal:

remotepad

Si tout ce passe bien, le message suivant devrait apparaître:

RemotePad Server for X11 version 1.10

Application launched.

enter 192.168.0.3 in your iPhone/iPod touch.

En gros, cela dit que le serveur est bien lancé et écoute sur l’adresse 192.168.0.3.

Installation de l’application sur l’Iphone

Rien de bien difficile:

Ensuite on lance le logiciel et on entre l’adresse IP fournie lors du démarrage du serveur:

Et voilà, votre Iphone joue maintenant le rôle d’un trackpad. Le serveur devrait afficher la ligne suivante:

Connected!

Et cela donne quoi ?

Je vous conseille d’aller dans les propriétés du client iPhone pour régler la vitesse du trackpad et la disposition des boutons. Après ces menu réglages, les premiers tests sont concluants même si, de temps en temps, il y a un léger « lag » surement due à mon réseau Wifi pas très performant. De plus je n’arrive pas à faire fonctionner le clavier.

Bref un exercice amusant mais pas forcement une solution de remplacement par rapport à un vrai trackpad !

Catégories
Open-source Planet-libre

10 blogs en Anglais sur l’open-source

Pour ma veille technologique sur l’open-source, en plus des blogs Francophones et des comptes Twitter traitant de ce sujet, j’utilise également des blogs Anglophones.

Voici donc une liste de quelques sites que j’aimerai partager avec vous:


Sujets abordées
Linux in detail’s blog Logiciels libres
OMG! Ubuntu Distribution Linux Ubuntu
Web Upd8 Distribution Linux Ubuntu
Ubuntu Geek Distribution Linux Ubuntu
OStatic Actualité sur le libre
Chromium La source libre de Google Chrome
The Red Devil Linux & Co
MDLog:/Sysadmin Distribution Linux Debian
UbuntuX Distribution Linux Ubuntu
Yet Another Linux Blog Linux & Co


Si vous avez dans vos bookmarks/lecteur RSS de petites perles, merci de laisser les adresses et descriptions dans les commentaires.

Catégories
Blog Open-source Planet-libre

Architecture pour un blog optimisé

Hier, j’ai passé une grande partie de ma journée dans les aéroports, j’en ai profité pour résumer dans un schéma quelques techniques d’optimisations que l’on peut actuellement mettre en place pour booster son blog.

Depuis que Saint Google prend en compte le temps de chargement des pages dans ses algorithmes, le sujet est devenu très à la mode. AntoineJérôme et moi même avont abordé récemment  le sujet dans nos blogs respectifs.

J’aimerai que l’on échange sur cette architecture afin que je puisse faire évoluer ce schéma.

Vous pouvez également récupérer le schéma au format Dia.

Catégories
Blog Nagios Open-source Planet-libre

Le forum de Nicolargo n’est plus. Mais…

En janvier 2009, j’avais lancé le forum de Nicolargo. Un forum pour les lecteurs de ce blog, un lieu virtuel pour continuer les discussions engagées dans les commentaires. Suite au hack de mon serveur, je me suis posé la question de l’avenir de ce site.

Au fil du temps ce forum est devenu un lieu d’échange vivant et actif, notamment grâce à la contribution de certains lecteurs (ils se reconnaîtront). Cependant, les discussions se sont trop focalisées, à mon gout, sur le petit monde de la supervision système et réseau. Or le Blog de Nicolargo n’est pas un blog sur Nagios. Je publie d’ailleurs de moins en moins de billet sur ce sujet.

A partir de ces constatations, j’ai décidé de fermer le forum (c’est à dire de ne pas le ré-ouvrir).

Cependant tout n’est pas perdu, je suis en entré en contact avec Romuald, administrateur du forum Monitoring-Fr. Dès son retour de congés (octobre 2010), il s’occupera d’importer dans ce forum tout les utilisateurs et discussions du forum de Nicolargo. Ainsi rien de vos discussions ne sera perdu !

De mon coté, je vais me focaliser sur le blog qui me prend déjà beaucoup (trop ?) de temps.

Catégories
Open-source Planet-libre Systeme

Mon desktop 201009

Voici mon desktop (Ubuntu 10.04) pour le mois de septembre 2010:

Fond d’écran: http://www.flickr.com/photos/52375768@N00/2516327980/

GTK: Look des fenêtre Equinox et icônes Faenza

Pour installer la combo magique (Equinox + Faenza)

On ajoute le dépôt suivant:

sudo add-apt-repository ppa:tiheum/equinox

sudo aptitude update

Puis on installe:

sudo aptitude install gtk2-engines-equinox equinox-theme equinox-ubuntu-theme faenza-icon-theme

On active le tout en allant dans le menu « Système > Préférences > Apparences > Thème > Equinox Evolution« 

Et vous cela donne quoi vos desktops en ce moment ?

Catégories
Open-source Planet-libre Web

20 comptes Twitter à suivre sur l’open-source

Voici une liste (loin d’être exhaustive) de 20 comptes Twitter Français à suivre si vous êtes sensible à l’actualité open-source. J’ai tout simplement repris le classement Wikio de septembre 2010 et cherché les comptes Twitter ou Identi.ca associés.

Si vous avez d’autres comptes, les commentaires sont là pour ça !

Twitter Identica.ca
Framablog Twitter Identi.ca
Web Dev On Linux Twitter Identi.ca
Tux Planet Twitter Identi.ca
Toolinux Twitter Identi.ca
Philippe Scoffoni.net Twitter Identi.ca
Rom’s blog Identi.ca
Ubuntu party Twitter Identi.ca
Le blog de Nicolargo Twitter Identi.ca
Devil505’s blog Twitter Identi.ca
Le Weblog de Frederic Bezies Twitter Identi.ca
OpenSyd Twitter Identi.ca
No Life Club Twitter Identi.ca
L’Admin sous GNU/Linux Twitter Identi.ca
Clapico’s blog Twitter Identi.ca
Le mad blog Twitter Identi.ca
Le colibri libre Twitter
Le blog de Mandriva Twitter
Monitoring-Fr Twitter
Phollow Twitter Identi.ca
Mandriva-Fr Twitter Identi.ca


Bonne lecture et à bientôt sur Twitter ou Identi.ca !

Catégories
Blog Open-source Planet-libre Web

Analyser les logs de votre serveur Web avec AWStats

L’analyse des logs des sites Web est de plus en plus externalisé sur des services en ligne dans la veine de Google Analytics. Bien que ces services soient très bien fait, il peut être utile, pour des raisons techniques ou de confidentialité, de faire cette analyse directement sur vos serveurs. Nous allons donc dans ce billet mettre en place le logiciel AWStats pour qu’il analyse les logs générés par un serveur Apache.

La procédure est faire sur une distribution Ubuntu Server 9.04 mais pourra très bien être adapté sur d’autre versions/distributions.

Installation de AWStats

AWStats existe sous la forme de package Debian like (sinon vous pouvez toujours télécharger et compiler à partir des sources):

sudo aptitude install awstats

Les fichiers de configuration se trouvent dans le répertoire /etc/awstats. On va partir du template awstats.conf pour générer le fichier de configuration pour notre serveur (monbeaudomaine.com).

sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.monbeaudomaine.com.conf

Puis on édite ce fichier, notamment les lignes suivantes:

LogFile= »/var/log/apache2/monbeaudomaine-access.log »

LogFormat=1

SiteDomain= »monbeaudomaine.com »

On finalise l’installation en générant la base de données (stockée dans le répertoire /var/lib/awstats):

sudo /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update

Attention: cette étape peut prendre un certain temps selon la taille du fichier de log.

Puis on automatise la mise à jour (toutes les 10 minutes) de cette base en éditant le fichier crontab /etc/cron.d/awstats (il faut adapter la ligne de commande à votre nom de domaine):

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.monbeaudomaine.com.conf -a -r /var/log/apache2/monbeaudomaine-access.log ] && /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update >/dev/null

Il faut bien vérifier que www-data a les droits:

  • en exécution sur le script /usr/lib/cgi-bin/awstats.pl
  • en lecture sur le fichier /etc/awstats/awstats.monbeaudomaine.com.conf
  • en lecture sur le fichier /var/log/apache2/monbeaudomaine-access.log

Les nouveaux fichiers de log (générés par logrotate) ne seront pas créés avec les bons droits, il faut donc modifier le fichier /etc/logrotate.d/apache2:

create 640 root www-data

Et vérifier que les répertoire et fichiers existant on les bons droits:

chmod 2755 /var/log/apache2/

chgrp -R www-data /var/log/apache2/

Avant d’accéder à l’interface Web de vos stats, il faut ajouter le fichier de configuration /etc/apache2/conf.d/awstats.conf à Apache:

Alias /awstatsclasses « /usr/share/awstats/lib/ »

Alias /awstats-icon/ « /usr/share/awstats/icon/ »

Alias /awstatscss « /usr/share/doc/awstats/examples/css »

ScriptAlias /awstats/ /usr/lib/cgi-bin/

<Directory « /usr/lib/cgi-bin/ »>

Options ExecCGI

AllowOverride None

AuthName « AWStats Access »

AuthType Basic

AuthUserFile /etc/awstats/htpasswd.users

Require valid-user

</Directory>

Puis on relance le serveur:

sudo /etc/init.d/apache2 restart

Utilisation de AWStats

Si l’installation c’est bien passé, une navigation vers la page http://localhost/awstats/awstats.pl?config=monbeaudomaine.com devrait afficher vos statistiques.

Si vous avez le message d’erreur suivant:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.

Setup (‘/etc/awstats/awstats.conf’ file, web server or permissions) may be wrong.

Check config file, permissions and AWStats documentation (in ‘docs’ directory).

C’est que vous avez surement mal saisi l’URL http://localhost/awstats/awstats.pl?config=monbeaudomaine.com. Il faut bien vérifier que monbeaudomaine.com correspond au fichier de configuration /etc/awstats/awstats.monbeaudomaine.com.conf.

Sources:

Catégories
Nagios Open-source Planet-libre

Installation et configuration de Pnp4Nagios en « mode bulk »

Hier, j’ai installé un nouveau serveur Nagios en utilisant mon script automatique. J’ai ensuite voulu lui ajouter Pnp4Nagios, le plugin permettant de générer des graphes sur les hosts et services surveillés par Nagios. Malheureusement, la procédure que j’avais écrite à l’époque pour la version 0.4.x de Pnp4Nagios n’est plus valable pour la version 0.6.x.

Voici donc un billet permettant l’installation de Pnp4Nagios 0.6.6 (dernière version disponible aujourd’hui) sur un serveur Nagios opérationnel (procédure validée pour Nagios 3.2.2).

Installation de pré-requis système

Sous un serveur « Debian like », il faut installer les librairies suivantes:

sudo aptitude install rrdtool librrds-perl php5-gd

On doit avant l’installation configurer une variable posant problème dans le module PHP d’apache en éditant le fichier /etc/php5/apache2/php.ini:

; Magic quotes for incoming GET/POST/Cookie data.

magic_quotes_gpc = Off

Compilation de Pnp4Nagios

On récupère l’archive de la version 0.6.6 puis on lance la configuration:

wget https://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.6.tar.gz

tar zxvf pnp4nagios-0.6.6.tar.gz

cd pnp4nagios-0.6.6

./configure

On doit obtenir le résumé suivant (si ce n’est pas le cas, il doit y avoir d’autres dépendances système à installer):

General Options:

————————- ——————-

Nagios user/group: nagios nagios

Install directory: /usr/local/pnp4nagios

HTML Dir: /usr/local/pnp4nagios/share

Config Dir: /usr/local/pnp4nagios/etc

Location of rrdtool binary: /usr/bin/rrdtool Version 1.3.1

RRDs Perl Modules: FOUND (Version 1.3001)

RRD Files stored in: /usr/local/pnp4nagios/var/perfdata

process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log

Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool

Web Interface Options: ————————- ——————-

HTML URL: http://localhost/pnp4nagios

Apache Config File: /etc/apache2/conf.d/pnp4nagios.conf

Puis on compile/installe:

make all

sudo make install

sudo make install-webconf

sudo make install-config

sudo /etc/init.d/apache2 restart

Configuration de Nagios pour prendre en compte Pnp4Nagios

On commence par éditer le fichier /usr/local/nagios/etc/nagios.cfg:

process_performance_data=1

service_perfdata_file=/usr/local/nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNA

ME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\t

SERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYP

E::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTAT

ETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

host_perfdata_file=/usr/local/nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$H

OSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHO

STSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

Puis on prends en compte le répertoire des plugins Pnp4Nagios en ajoutant la ligne suivante (à adapté si USER2 est déjà configuré) dans le fichier /usr/local/nagios/etc/objects/resource.cfg:

# Sets $USER2$ to be the path to the PNP4Nagios plugins

$USER2$=/usr/local/pnp4nagios/libexec

Enfin on configure le plugin dans le fichier /usr/local/nagios/etc/objects/commands.cfg (attention il y à deux – avant le bulk… Wodpress n’en affiche qu’un…):

# PNP4nagios

define command{

command_name process-service-perfdata-file

command_line $USER2$/process_perfdata.pl –bulk=/usr/local/nagios/var/service-perfdata

}

define command{

command_name process-host-perfdata-file

command_line $USER2$/process_perfdata.pl –bulk=/usr/local/nagios/var/host-perfdata

}

On relance enfin Nagios pour prendre en compte la configuration:

sudo /etc/init.d/nagios restart

Configuration de Pnp4Nagios

La configuration se fait en accèdant à l’URL suivante: http://monserveurweb.com/pnp4nagios/

Le script install.php devrait être executé. Il fait un check de votre configuration. Si tout est vert, tout est ok 🙂

Dans ce cas, il est prudent de supprimer ce script:

sudo rm /usr/local/pnp4nagios/share/install.php

Utilisation de Pnp4Nagios

On accède à Pnp4Nagios à partir de la même URL: http://monserveurweb.com/pnp4nagios/

Après quelques minutes, les graphes devrait se mettre à jour.

Que faire en cas de problème ?

Pnp4Nagios fourni un outil pour investiguer les erreurs éventuelles de configuration. Il suffit de lancer la commande suivante:

/usr/local/pnp4nagios/libexec/verify_pnp_config.pl -e -m bulk

Et voili, que les graphes soient !

Catégories
Gstreamer Open-source Planet-libre Video

Scripts de transcodage de vidéos

Il existe de nombreux logiciels pour transcoder (WIKI) une vidéo d’un format vers un autre. On peut notamment citer Transmageddon, Handbrake, VLC… Néanmoins, votre distribution GNU/Linux intègre le framework GStreamer permettant d’effectuer ces taches de transcodage directement en ligne de commande et sans installer de logiciel supplémentaire. En dehors du fait que c’est un bon exercice pour comprendre le fonctionnement de ce fabuleux framework, c’est également un moyen simple d’intégrer ce transcodage dans des scripts automatisés (par exemple, transcoder toutes les vidéos déposées dans un répertoire dans un format unique).

Nous allons dans ce billet voir comment effectuer ce transcodage dans trois formats « standard » (industriellement parlant…):

  • MP4 avec codec vidéo H.264 et codec audio AAC
  • OGG avec codec vidéo Theora et codec audio Vorbis
  • WEBM avec codec vidéo VP8 et codec audio Vorbis

Installation des plugins GStreamer

L’installation standard de GStreamer n’inclue pas la prise en charge de tout les codecs vidéos et audios. Afin de remédier à ça, je vous conseille d’installer « la totale » avec les commandes suivantes:

wget https://raw.github.com/nicolargo/ubuntupostinstall/master/gstreamerinstall.sh

chmod a+x ./gstreamerinstall.sh

sudo ./gstreamerinstall.sh

rm ./gstreamerinstall

Ces commandes vont récupérer un script maison qui va installer le PPA de l’équipe de développement de GStreamer, puis installer les paquets GStreamer.

Un peu de pipeline

Je donnerai en fin d’article un lien vers trois scripts shell qui vont automatiser les phases de transcodage. Cependant, nous allons dans ce paragraphe voir comment faire un transcodage à la main en utilisant la commande gst-launch.

Pour illustrer notre exemple, prenons une vidéo au format .MOV (H.264 + AAC) que l’on soughaite convertir dans un format plus « libre », c’est à dire WEBM (VP8 + VORBIS). La pipeline (ligne de commande) correspondante est la suivante:

gst-launch -t filesrc location=source.mov ! progressreport ! decodebin name=decoder \

decoder. ! queue ! audioconvert ! vorbisenc ! queue ! \

webmmux name=muxer \

decoder. ! queue ! ffmpegcolorspace ! vp8enc ! queue ! \

muxer. muxer. ! queue ! filesink location=destination.webm

La première ligne (filesrc location=source.mov ! progressreport ! decodebin name=decoder \) permet de charger le fichier source au format .MOV et de décoder les pistes audio et vidéo.

La seconde ligne (decoder. ! queue ! audioconvert ! vorbisenc ! queue ! \) prend la piste audio du fichier source et la transcode au format VORBIS.

La troisième ligne (webmmux name=muxer \) précise que l’on utilisera un conteneur multimédia de destination de type Webm.

La quatrième ligne (decoder. ! queue ! ffmpegcolorspace ! vp8enc ! queue ! \) prend la piste vidéo du fichier source et la transcode au format VP8.

Enfin la dernière ligne (muxer. muxer. ! queue ! filesink location=destination.webm) prend les pistes audio et vidéo transcodées puis génère le fichier destination au format .WEBM.

Des scripts ! Des scripts !

« C’est bien beau la théorie mais moi je veux juste faire rapidement un transcodage… »…

Ok Michel, voici trois script shell permettant de faire un transcodage de n’importe quel type de vidéo vers un des formats suivants:

Pour les utiliser, il faut dans un premier temps les rendre executable avec la commande:

chmod a+x *encoder.sh

L’utilisation est des plus simple. Exemple de transcodage en MP4:

./mp4encoder.sh Inception-1080p.mov

Exemple de transcodage en OGG:

./oggencoder.sh Inception-1080p.mov

Exemple de transcodage en WEBM:

./webmencoder.sh Inception-1080p.mov

Et si je veux modifier les paramètres de transcodage ?

Ben c’est possible Miche, Nicolargo a pensé à toi. Il suffit d’éditer le script puis de mettre les paramètres dans la variable AUDIO_ENCODER_PARAMETERS pour le codec audio et VIDEO_ENCODER_PARAMETERS pour le codec vidéo.

Par exemple pour modifier le script webmencoder.sh afin d’encoder avec une qualité vidéo supérieure, il faut éditer le fichier et modifier la ligne suivante:

VIDEO_ENCODER_PARAMETERS= »quality=7 speed=2″

Pour avoir la liste des paramètres pour un codec (par exemple pour l’encodeur VP8 ; vp8enc), il faut saisir la commande suivante:

gst-inspect vp8enc

Conclusion

C’est à vous de jouer pour intégrer ces scripts dans vos processus d’automatisation de transcodage de vidéo/audio !

Catégories
Gstreamer Open-source Planet-libre Video Web

Encodage de vidéo WebM en ligne de commande

Le format multimédia WebM fait beaucoup parler de lui ces derniers temps. Sous l’impulsion de Google, il a pour objectif de devenir le standard libre pour la diffusion de fichier vidéo sur Internet. Sans entrer dans les polémiques de qualité et des problèmes de licence, nous allons dans ce billet voir comment encoder un vidéo dans un format WebM en ligne de commande en utilisant le framework GStreamer, fourni en standard sous GNU/Linux.

WebM, c’est quoi donc ?

En fait WebM est un conteneur multimédia, une enveloppe au même titre que OGG, MP4  ou AVI. Quand on parle de fichiers au « format WebM », cela sous entant l’utilisation des codecs audio Vorbis et vidéo VP8 (racheté il y a quelques mois par Google à la societé On2).

Avant de tester l’encodage d’un fichier WebM sur votre distribution GNU/Linux. Sous Ubuntu, il faut d’abord vérifier que vous disposez de la dernière version PPA de GStreamer:

sudo add-apt-repository ppa:gstreamer-developers

sudo aptitude update

sudo aptitude upgrade

sudo aptitude install gstreamer0.10-x gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-ffmpeg gstreamer0.10-alsa gstreamer0.10-sdl

Enfin on vérifie que l’on a les bons plugins:

# gst-inspect | grep webmmux

matroska: webmmux: WebM muxer

 

# gst-inspect | grep vp8enc

vp8: vp8enc: On2 VP8 Encoder

 

gst-inspect | grep vorbisenc

vorbis: vorbisenc: Vorbis audio encoder

Passons maintenant aux choses sérieurses…

Encodage au format WebM

Pour mes test j’ai utilisé une bande annonce du film « Prince of persia » en qualité HD 1080p récupérée sur le site HDTrailers.

J’utilise ensuite la pipeline (ligne de commande) suivante pour effectuer l’encodage:

gst-launch -t filesrc location=pp_rltA_1080.mov ! progressreport \

! decodebin name=decoder decoder. \

! queue ! audioconvert ! vorbisenc quality=0.5 \

! queue ! webmmux name=muxer decoder. \

! queue ! ffmpegcolorspace ! vp8enc quality=5 speed=2 \

! queue ! muxer. muxer. ! queue ! filesink location=pp_rltA_1080-Q5.webm

La qualité vidéo par défaut (option quality=5) n’est pas terrible, on obtient de meilleurs résultats en l’augmentent. Voici un tableau comparatif:

Format Codecs Taille Aperçu (clique pour agrandir)
Source HQ .mov Audio: AAC 48 Khz
Video: H.264
126 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 5 »

24 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 6 »

30 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 7 »

40 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 8 »

61 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 9 »

73 Mo
WebM Audio: Vorbis 

Video: VP8 « Quality 10 »

92 Mo

Je trouve que la paramètre quality=7 est un bon compromis taille/qualité. Il faut noter que la source est d’un  qualité nettement supérieure (je ne connais pas les paramètre H.264 utilisés).

Comparaison avec les codecs Theora et H.264

Pour compléter ce petit test de WebM, nous allons comparer maintenant le résultat obtenu avec le paramètre quality=7 et les codecs Theora (avec une qualité égale à 7) et X.264 (avec une qualité de 23 équivalente).

Voici les lignes de commandes utilisées, pour l’encodage en WebM (VP8/Vorbis):

gst-launch -t filesrc location=pp_rltA_1080.mov ! progressreport \

! decodebin name=decoder decoder. \

! queue ! audioconvert ! vorbisenc quality=0.5 \

! queue ! webmmux name=muxer decoder. \

! queue ! ffmpegcolorspace ! vp8enc quality=7 speed=2 \

! queue ! muxer. muxer. ! queue ! filesink location=pp_rltA_1080-Q7.webm

puis en OGG (Theora/Vorbis):

ffmpeg2theora -v 7 –optimize pp_rltA_1080.mov -o pp_rltA-1080-Q7.ogg

et enfin en MP4 (X.264/FAAC):

x264 –tune animation –crf 23 -o pp_rltA-1080-Q7.mp4 pp_rltA_1080.mov

On obtient les résultats suivants:

Format Codecs Taille Aperçu (clique pour agrandir)
WebM Audio: Vorbis 

Video: VP8 « Quality 7 »

40 Mo
OGG Audio: Vorbis 

Video: Theora « -v 7 »

57 Mo
MP4 Audio: AAC 

Video: X.264 « CRF 23 »

56 Mo

Que peut on en déduire ? Niveau qualité, le format H.264 garde une longueur d’avance (mais pour combien de temps). Theora est en dessous. Par contre le taux de compression est bien meilleur avec le codec VP8 mais encore faut il être sur que l’on peut comparer les paramètres utilisés…

A vous de vous faire une idée !

Conclusion

Bien que « jeune » ce format de fichier semble avoir un bel avenir. Surtout si Google arrive à l’imposer comme un « standard industriel » (sic). Avec des leviers comme YouTube et Google Chrome, j’ai peu de doute sur le résultat des courses qui ne se fera pas sur un plan technique mais sur la capacité de chacun de défendre son format.