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
Hardware Musique Open-source Systeme Video

Test du micro/casque Logitech ClearChat Pro USB sous Ubuntu

Je viens de recevoir un casque/micro Logitech ClearChat Pro USB. Spécialisé dans les applications chat (conversation, jeux vidéo…), il n´est pas fait pour les conversations téléphoniques (ce n´est pas un casque téléphonique sans fil, non plus), il peut cependant être utilisé pour écouter de la musique (bien qu’il existe de meilleur casque Hifi pour cette utilisation).

Sur la boîte, Logitech donne comme pré-requis l’utilisation d’un système d’exploitation de type Windaube ou MacOS X… Nous allons voir que ce casque fonctionne très bien sur une Ubuntu 10.04 et sans avoir à installer un quelconque driver.

Pour une vidéo de présentation du casque, vous pouvez regarder celle faite par OSGui:

Logitech ClearChat Pro USB Unboxing Review & Ubuntu Linux Tutorial

Catégories
Gstreamer Open-source Systeme

Installation de tous les composants GStreamer sous Ubuntu

Voici un petit script maison permettant d’installer la totalité des plugins GStreamer sur votre distribution Ubuntu.

On télécharge, le script, puis on le lance:

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

chmod a+x ./gstreamerinstall.sh

sudo ./gstreamerinstall.sh

rm ./gstreamerinstall.sh

Vous devriez vous retrouver avec environ 233 plugins dont les fameux webmmux et vp8enc pour encoder vos vidéo au format WebM 🙂

Catégories
Open-source Video

Installation de FFMpeg avec support WebM sous Ubuntu

Plus la peine de tout celà… La version 0.6 de FFMpeg supporte nativement WebM !

WebM est un format multimedia qui risque de mettre tout le monde d’accord dans la « gueguerre » des codecs vidéos pour la diffusion sur le Web.

WebM est libre, gratuit, basée sur les codecs vidéo VP8 et audio Vorbis et il est soutenu par… Google.

Voici donc un script shell permettant d’installer ce nouveau format sur votre système Ubuntu: ffmpeginstall-with-webm.sh

et la procédure d’installation associée:

[shell]

wget http://svn.nicolargo.com/ubuntupostinstall/trunk/ffmpeginstall-with-webm.sh

chmod a+x ffmpeginstall-with-webm.sh

./ffmpeginstall-with-webm.sh

[/shell]

Le script fait les choses suivantes:

  • Installation de la dernière version de X.264 (git)
  • Installation du codec VPX (VP8) (git)
  • Installation de FFmpeg version SVN-23210 et le patch WebM en version RC3

Pour tester ce nouveau codec, vous pouvez utiliser la commande suivante:

[shell]

ffmpeg -i source.avi -f webm -vcodec libvpx destination.webm

[/shell]

Je reviendrai surement sur le sujet WebM, notamment pour parler qualité du codec vidéo VP8…

Catégories
Hardware Open-source

Installation Ubuntu Serveur 10.04 sur HP Proliant DL160 G6

Voici le bloc note de l’installation de la dernière version d’Ubuntu « Server » (Lucid 10.04) sur un HP Proliant DL160 G6.

En route…

Catégories
Open-source Systeme

Installation d’Ubuntu 10.04 sur Fujitsu Lifebook S760

J’ai installé et testé Ubuntu 10.04 (Lucid) sur un PC portable Fujitsu Lifebook S760. Voici le bloc note de cette installation.

Spécification du portable Fujitsu Lifebook S760:

Hardware Components
Status under Linux
Notes
Intel i5 M520 CPU Works
LCD 13,3 inchs Screen Works Resolution 1366×768
Intel HD graphic card Works Compiz OK
Sorties VGA/HDMI non testées
3 GB RAM Works
300 GB ATA HD Works 285 GB with ext4
Multicard Read/Wirte Works Tested with SD card
Integrated Network Card Works
Internal 56k Modem Not tested
CD/DVD Read/Write Works No special procedure required during installation
Internal WIFI Networking Works
65 WHr Lithium-Ion Battery Works
HDA Intel Sound Card Works

Version du noyau Linux testé: Linux kernel version 2.6.32-21-generic.

Aucun problème rencontré lors de l’installation à partir du Live CD.

Très agréable à utiliser au quotidien, PC rapide, écran lisible pour sa taille. Par contre entre quelques problème à résoudre:

  • les capteurs (sensors) de températures du PC ne remontent pas d’information à l’OS Linux. La gestion des ventilateurs régulant la température du portable est donc faite en interne, par le hardware. J’ai activé l’option « Silent Fan » du bios pour réduire les nuisances sonores mais la ventilation se déclenche encore trop souvent à mon gout (j’ai logué un bug).
  • toutes les touches (standards ou de fonction pour régler le son ou la luminosité de l’écran) fonctionnent bien sauf quand on met le PC en veille. Lors du retour de veille, les touches de luminosité ne fonctionnent plus.
Catégories
Blog Developpement Open-source

Un blog WordPress local pour vos développements

Envie de vous lancer dans le développement de votre propre thème WordPress ? Envie tester votre dernier plugin sur une copie de votre blog sans impact pour vos lecteurs ? Envies de tester cette fameuses version 3.0bêta de WordPress ?

Ces quelques exemples justifient l’installation en local (donc disponible même sans liaison Internet), sur votre PC GNU/Linux d’un environnement de développement de blog complet. Celui-ci se composera:

  • d’un serveur LAMP à jour (Linux, Apache, MySQL, PHP)
  • de la dernière version de WordPress
  • de votre IDE préférée (Bluefish, Eclipse, Anjuta, NetBeans, Emacs, vi…)

Catégories
Open-source Systeme

Commander les CDs Ubuntu 10.04 (Lucid Lynx)

Plus que deux jours avant la sortie de la version finale de d’Ubuntu 10.04 (Lucid Linx de son petit nom), la distribution GNU/Linux « la plus populaire ». Vous pouvez déjà commander les CD d’installations à partir du site suivant: https://shipit.ubuntu.com/. Il est possible de réserver les CDs pour les versions « Desktop » et « Server ».  Il faut cependant compter quelques semaines pour la réception mais c’est toujours agréable d’avoir des CD d’installations avec pochettes…

A l’heure de l’écriture du billet, le serveur semble surchargé de demandes (bonne nouvelles pour Linux ;)).

Sinon il est toujours possible de télécharger l’image disque ISO en P2P: http://releases.ubuntu.com/lucid/ubuntu-10.04-rc-desktop-i386.iso.torrent

Catégories
Gstreamer Open-source Systeme Video

Maintenir à jour FFMpeg et X.264 sous Ubuntu

Dans la série petits scripts permettant de gagner du temps, je vous présente ffmpeginstall.sh et ffmpegupdate.sh. Ils se basent sur un post du forum Ubuntu qui est régulièrement mis à jour à chaque version d’Ubuntu.

  1. ffmpeginstall.sh permet d’installer les dernières versions de FFMpeg (svn) et du codec X.264 (git) à partir des sources.
  2. ffmpegupdate.sh permet de mettre à jour ces deux logiciels à partir des sources.

Suivi des modifications:

  • 26/04/2010: Scripts version 0.1 (validé sous Ubuntu 9.10 et 10.04)

Récupération des scripts

On commence par récupérer les scripts:

[shell]

mkdir ~/src

cd ~/src

wget http://svn.nicolargo.com/ubuntupostinstall/trunk/ffmpeginstall.sh

wget http://svn.nicolargo.com/ubuntupostinstall/trunk/ffmpegupdate.sh

chmod a+ ffmpeg*.sh

[/shell]

Lancement des scripts

Pour une installation initiale:

[shell]

cd ~src

./ffmpeginstall.sh

[/shell]

Pour une mise à jour:

[shell]

cd ~src

./ffmpegupdate.sh

[/shell]

Le résultat

[shell]

ffmpeg -version
FFmpeg version SVN-r22965, Copyright (c) 2000-2010 the FFmpeg developers
built on Apr 26 2010 16:57:27 with gcc 4.4.3
configuration: –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –enable-pthreads –enable-libfaac –enable-libfaad –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libtheora –enable-libx264 –enable-libxvid –enable-x11grab

x264 –version
x264 0.94.1564 a927654
built on Apr 26 2010, gcc: 4.4.3

[/shell]

Et si je veux revenir avec les versions systèmes ?

Rien de plus simple, il suffit de saisir la commande suivante:

[shell]

sudo apt-get remove x264 ffmpeg build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev

[/shell]

Je suis preneur de tout retour/amélioration sur ces scripts…

Catégories
Open-source Web

Pino, un client twitter et identi.ca

J’utilise régulièrement mes comptes Twitter et Identi.ca pour diffuser des informations que je trouve pertinentes. En plus de l’indispensable plugin Firefox TwitterBar, j’aime Twitter et consulter mes twitts à partir d’un client « lourd », intégré à mon environnement GNU/Linux. Jusqu’à aujourd’hui j’utilisai Gwibber, qui avait l’énorme avantage d’être installé de base avec la distribution Ubuntu.

Cependant, je trouve le logiciel lourd à utiliser et pas forcement très stable dans ma configuration. J’ai donc décidé de donner sa chance à Pino, un nouveau projet du même acabit.

Installation de Pino

On commence par ajouter le dépôt PPA suivant pour disposer de la dernière version:

[shell]

sudo add-apt-repository ppa:vala-team/ppa
sudo add-apt-repository ppa:troorl/pino

[/shell]

Ensuite on met à jour la liste des dépôts et on installe le logiciel:

[shell]

sudo aptitude update

sudo aptitude install pino

[/shell]

Le logiciel peut alors être lancé par le menu Applications > Internet > Pino

Configuration de Pino pour Twitter & Identi.ca

Au premier lancement, Pino va vous demander les informations sur vos comptes Twitter et Identi.ca (il est bien sur possible de n’utiliser qu’un seul de ces services…).

Lien vers les comptes Twitter et Identi.ca

Utilisation de Pino

Affichage des messages:

Diffusion d’un nouveau message sur Twitter:

Conclusion

Après quelques jours d’utilisation, la sentence est sans appel, Pino est beaucoup plus rapide et stable  (alors qu’il n’est qu’en version 0.2.5) que Gwibber (aptitude remove gwibber). Je l’ai donc ajouté dans mon script post install Ubuntu :).