Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

Linux, Debian, etc.

Fil des billets - Fil des commentaires

vendredi 13 mai 2005

Conversion en lot de fichiers WMA en fichiers OGG

Il m'arrive régulièrement de recevoir une série de fichiers audio au format WMA de Windows Media. Mplayer sait les lire, certes, mais quoi de mieux qu'un format audio libre et ouvert comme Ogg Vorbis pour assurer la pérennité de ses musiques préférées ?

Heureusement, grâce à mplayer toujours et à une astuce vue sur linuxfr, voici un petit script shell qui vous permet de convertir en lot tous les fichiers wma d'un répertoire en ogg. Notez que vous pouvez facilement l'utiliser pour effectuer une conversion en mp3, en utilisant lame plutôt que oggenc (mais le format mp3 n'est pas libre) :

#!/bin/sh

for WMA in `ls *.wma`; do
    OGG=`basename $WMA .wma`.ogg;
    TMP=${TMPDIR:-/tmp}/wma2ogg.$$
    mplayer -ao pcm:file=$TMP $WMA;
    trap "rm $TMP* 2>/dev/null" 0
    nice -n 15 oggenc -m 128 $TMP -o $OGG
done

Seul petit hic, ce script peut ne pas fonctionner si les noms de vos fichiers contiennent des espaces. Vous pouvez donc utiliser la commande suivante pour transformer tous les espaces des noms de fichiers de votre répertoire en underscores :

find . -type f -name "* *" -print0 | \
perl -n0e '$old = $_; s/ /_/g; rename $old, $_'

De même, ce script utilise les options de la dernière version de mplayer. Si vous rencontrez des problèmes, vous pouvez essayer la syntaxe suivante :

mplayer -ao pcm -aofile $TMP $WMA;

Editer ou monter une vidéo déjà existante sous Linux

Je suis très loins d'être un spécialiste, mais il existe plusieurs logiciels sous Linux qui permettent de faire du montage et autres éditions/modifications de vidéos. Les plus connus sont sans doute Kino et Cinelerra. Ces deux logiciels prennent en entrée des vidéos au format DV, ce qui est très bien lorsqu'on a une caméra numérique. Mais quand on n'en a pas et qu'on veut juste retoucher une vidéo déjà existante en MPEG4 ou autre ? Ben il faut convertir le fichier (avi, mpeg, etc.) au format DV. J'avais cherché un moyen pendant un moment sans succès, mais une solution a récemment été donnée suite à un journal de Ploum sur linuxfr.

Cette solution utilise mencoder et tient en une ligne :

 mencoder -vf scale=720:576 -ovc libdv -oac pcm input.avi -o output.avi

jeudi 12 mai 2005

Changer récursivement les permissions de répertoires

Il peut parfois être utile de changer d'un coup les permissions ou les propriétés d'un répertoire et de ses sous-répertoires, mais seulement des répertoires, pas des fichiers normaux.

Deux exemples pratiques :

  1. vous venez de transférer des fichiers depuis une parto windows, et ceux-ci ont tous la permission "éxecutable". Seulement, si vous faites un chmod -R -x *, vos répertoires vont perdre leur attribut exécutable et vous ne pourrez plus rentrer dedans. C'est gênant ;
  2. vous avez un répertoire (par exemple /var/www) que vous voulez partager entre plusieurs personnes d'un même groupe (par exemple le groupe web). L'idéal est de positionner le "sticky bit" de ce répertoire et de ses sous-répertoire pour le groupe, afin que tous les fichiers nouvellement créés appartiennent également à ce groupe. Là aussi, un chmod -R g+s * pose problème.

Voilà donc la solution à ces deux problèmes. Il suffit de se positionner dans le répertoire racine choisi et de faire un :

find . -type d | xargs chmod +x

ou, pour le deuxième problème :

find . -type d | xargs chmod g+s

Et voilou !

lundi 21 février 2005

I'm a debian guru..

Et ouais !

Vous en doutiez ? Ben fallait pas. Attention, accrochez-vous au fauteuil, ça va décoiffer.

Ça faisait un moment que j'avais des problèmes de son bizarre sur ma debian. Par exemple, en regardant un film, j'avais la musique et pas la voix. Bien décidé à ne pas me laisser arrêter par ce genre de bricole, je me suis lancé à fond dans la résolution du problème :

  • test sous Windows pour voir que ma carte fonctionnait bien
  • test sous différents programmes
  • exploration des différents réglages des différents programmes de mixage. Là, je repère les contrôles qui sont en cause. J'arrive à remettre un son correct, mais dès que je mets un nouveau son ça revient au départ.
  • tests multiples avec alsactl, alsamixer, gamix, désinstallation de aumix...
  • désinstallation et réinstallation complète des paquets Alsa
  • recompilation du noyau
  • récupération du dernier noyau avec les derniers patchs
  • nouvelle recompilation
  • nouveaux tests...
  • modification du code source d'un fichier du noyau un peu au pif
  • recompilation
  • toujours rien.

Et là, au bout de peut-être 5 heures cumulées de réflexion, l'illumination, l'éclair de génie qui m'a permis de régler le problème sans l'aide de personne malgré mes recherches nombreuses sur Internet :

J'avais branché mes enceintes sur la mauvaise sortie de ma carte son.

Putain mais quel con.

I'm a debian guru, vous dis-je.

Bon, ben me reste plus qu'à faire refonctionner mon accélération 3d, ma clé usb et mon graveur, et j'aurai un système à nouveau un peu utilisable.

Grrrr...

mardi 25 janvier 2005

Utiliser Jabber avec gaim ou emacs+erc+bitlbee derrière un firewall et/ou un proxy

Je viens d'installer ma machine sur le réseau de mon nouveau lieu de travail, et cela a été l'occasion de me repencher sur le sujet de "comment arriver à utiliser un client IM, en l'occurrence Jabber, à travers un firewall et un proxy http (pour discuter avec des collègues de travail sur des sujets strictement professionnels, cela va de soi).

Lorsqu'il n'y a qu'un firewall, c'est assez simple, car en général celui-ci autorise les connexions au port 80. Il suffit donc de se créer une adresse sur un serveur du type jabber80.com, qui tourne justement sur un port 80, et le tour est joué en utilisant Gaim.

Quand on a en plus un proxy http qui filtre les connexions, c'est un peu plus compliqué car les requêtes Jabber ne sont pas des requêtes http classiques. Le proxy risque donc de les bloquer, ce qui était mon cas. L'astuce réside alors à utiliser non pas le port 80, mais le port 443 (https), car les requêtes destinées à ce port ne sont pas filtrables par le proxy si celui-ci les accepte. Or, de nombreux serveurs Jabber tournent sur le port 443, dont toute la série des amessage (amessage.info...) et bien d'autres (jabberes.org, chrome.pl...). Là encore, avec Gaim, pas de problème, tout se paramètre lors de la création/modification du compte.

Jusque là, rien de très difficile et je ne fais que reprendre des infos présentes ici :

http://web.amessage.info/firewalled/

On va donc compliquer un peu : et si je veux utiliser non plus Gaim, mais un bon vieux emacs avec Erc, le tout sous Bitlbee (en fait, n'importe quel client IRC sous Bitlbee) ? A priori, suffit de faire pareil en commençant par indiquer les paramètres du proxy dans le fichier bitlbee.conf (le plus souvent dans /etc). Sauf qu'il n'est pas possible, en tous cas je n'ai pas trouvé l'option, de modifier le port par défaut pour la connexion aux serveurs Jabber dans les comptes sous Bitlbee. Gloups. Prenant mon courage à deux mains, j'ai donc décidé de tenter un gros hack bien sale et tout con mais qui a le mérite de marcher : modifier le port par défaut de connexion aux serveurs Jabber de 5222 et 5223 à 443 dans les sources de Bitlbee et recompiler la chose. Il va de soi que cette "astuce" au bulldozer ne pourra vous intéresser que si vous êtes sûr de ne vouloir vous connecter qu'à des ports 443 pour les serveurs Jabber de ce Bitlbee-là.

La manip sous Debian est assez simple. En premier lieu, il faut récupérer le paquet source avec un :

# apt-get source bitlbee

Il faut ensuite remplacer 5222 et 5223 par 443 dans les lignes suivantes du fichier protocols/jabber/jabber.c :

#define DEFAULT_PORT 5222
#define DEFAULT_PORT_SSL 5223

C'est fait ! Il n'y a plus qu'à reconstruire le package avec un petit dpkg-buildpackage, puis à l'installer avec un dpkg -i et le tour est joué.

Enfin, dernier intérêt, les connexions entre la machine faisant tourner Bitlbee et le serveur Jabber, si je ne me gourre, devraient être chiffrées. Ce qui n'est pas sans intérêt pour des conversations professionnelles hautement confidentielles...

Post-Scriptum : en fait non, je viens de vérifier pour le chiffrement des communications, et c'est à moitié vrai. Pour que ça marche sous Gaim, il faut cocher "forcer l'ancien SSL" dans la configuration du compte. Pour bitlbee, il faut modifier à nouveau le code source du fichier jabber.c, et plus précisément mettre "ssl=1" dans la portion de code suivante :

(...)
static void gjab_start(gjconn gjc)
{
   struct aim_user *user;
   int port = -1, ssl = 1;
(...)

mardi 9 novembre 2004

Encoder une vidéo en XviD ou DivX sous Linux

Ceux qui possèdent un appareil photo numérique avec fonction vidéo se sont sans doute déjà posé la question de savoir comment compresser les films de leur fille, de leur grand-mère ou de leur hamster pour les mettre sur leur page perso. Ça n'est pas mon cas (j'ai pas d'appareil), mais comme j'ai des copains sympas qui en font pour moi de temps en temps, je me suis posé la question quand même.

Bref, si vous êtes sous debian et que vous souhaitez utilisermencoder (l'encodeur de mplayer), la démarche est la suivante. Il faut déjà rajouter la source de paquets de Christian Marillat dans votre /etc/apt/sources.list à l'aide de la ligne suivante (si vous êtes en testing) :

deb ftp://ftp.nerim.net/debian-marillat/ testing main

Attention, certains paquets de ce dépôt ne sont pas libres, et peuvent donc "contaminer" votre debian. Vous voilà prévenu.

Ensuite, faites un :

# apt-get install mencoder-686 libavcodec2

Vous pouvez changer le 686 en 586 ou k6 et installer d'autres codecs si vous le souhaitez. Ensuite, la marche à suivre pour encoder est très bien expliquée là :

http://www.mplayerhq.hu/DOCS/HTML/fr/mencoder.html

En gros, pour encoder un fichier en MPEG4, ça se passe en deux fois :

$ mencoder fichier_in.avi -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o fichier_out.avi
$ mencoder fichier_in.avi -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o fichier_out.avi

Si vous voulez d'autres formats d'encodage, tout est expliqué là :

http://www.mplayerhq.hu/DOCS/HTML/fr/menc-feat-enc-libavcodec.html

Le nombre d'options pour l'encodage est faramineux. Je vous laisse vous reporter à la page de manuel de mencoder pour plus d'infos (et bon courage !) ...

jeudi 23 septembre 2004

Surveiller l'arrivée d'un mail

Voici une petite astuce vous permettant de jouer un son lors de l'arrivée d'un mail ayant certaines caractéristiques (auteur, mot-clé, etc.). Ceci nécessite cependant d'utiliser procmail pour le filtrage de vos courriers, donc a priori d'être sous Linux ou équivalent.

Voici les lignes à ajouter à votre .procmailrc :

:0 hwic
* ^From:.*kikvouvoulez
| cat > /dev/null; /usr/bin/play /usr/share/sounds/toto.wav

Vous pouvez consulter l'explication de la syntaxe en anglais.

Pour personnaliser, il faut que vous remplaciez la deuxième ligne par l'expression rationnelle que vous voulez surveiller, et modifier la troisième ligne pour indiquer l'utilitaire pour jouer le son et le fichier à jouer.

mardi 21 septembre 2004

BitlBee

Un petit mot sur un logiciel que je viens de découvrir et que je suis en train d'essayer et d'adopter. BitlBee est né lorsque ses concepteurs se sont trouvés fort dépourvus avec leurs clients IRC en mode console lorsque sont apparues et ont foisonné toutes les nouvelles normes de messagerie instantanée du type MSN, AOL, Yahoo ou ICQ (toutes plus propriétaires les unes que les autres à part le pas assez connu Jabber).

Comment continuer à utiliser ces logiciels en mode texte rudimentaires mais puissants et surtout pouvant être exécutés à travers une liaison ssh avec tous ces nouveaux protocoles ? L'idée de base fut la suivante : le programme agit comme un serveur sur lequel on se connecte avec son client IRC et qui se charge de "traduire" tous les protocoles les plus connus en IRC. Du coup, on peut utiliser un seul programme pour tous les types d'IMs.

Non seulement l'idée est bonne, mais son implémentation est excellente. Le logiciel semble très stable, et en plus l'intégration des différents IMs sous IRC est très bien foutue. Et le plus beau, c'est que l'installation est simplissime. Sous Debian :

# apt-get install bitlbee

puis deux questions de configurations, et vous n'avez plus qu'à pointer votre x-chat ou votre erc sous emacs sur localhost:6667 et à faire un "help quickstart".

Le programme existe également sous win32, et il y a même des serveurs publics vous permettant de l'utiliser sans avoir à l'installer. Ça vaut vraiment le coup d'oeil, même par simple curiosité.

Ah, j'allais oublier l'adresse du site officiel : http://www.bitlbee.org/

lundi 30 août 2004

Régler l'heure sous Linux

Je sais pas vous, mais moi j'arrive jamais à me souvenir la syntaxe de la commande date qui permet sous unix/linux de consulter et modifier l'heure du système. Donc je le note une bonne fois pour toutes ici histoire de l'avoir sous la main, et dès fois que ça puisse servir à quelqu'un d'autre...

Donc la syntaxe est la suivante (en tous cas chez moi) :

# date MMDDHHmmAA

où MM est le mois, DD le jour, HH l'heure, mm les minutes et AA l'année, tous sur deux chiffres.

Par exemple, pour passer au 30 août 2004 à 11h23, la commande est, en tant que root :

# date 0830112304

dimanche 15 août 2004

Jeux (libres) sous Linux

Après avoir cherché quelques temps, je suis arrivé (pour l'instant) à une liste de trois jeux libres sous Linux qui me semblent valoir le coup d'oeil (rien de révolutionnaire pour ceux qui connaissent déjà le sujet).

  • Cube est un FPS en 3D plutôt joli, prenant, multiplateforme et qui permet un mode multijoueur via Internet ou un réseau local particulièrement sympathique. Le moteur est conçu pour tourner sur de petites configurations.
  • Freeciv est un clone libre du jeu Civilization. Ce dernier n'est plus tout jeune mais son concept est resté à peu près inchangé. Freeciv est complet, a des graphismes largement corrects, et supporte également un mode multijoueur (non testé). Par contre le mode de jeu contre l'ordinateur me semble assez rude : je ne dois pas être très doué, mais j'en suis encore à la découverte des mathématiques quand l'ordinateur m'attaque avec des fusils...
  • Battle for Wesnoth est un jeu de stratégie tour-à-tour très joli, aux règles assez simples mais très prenantes. Ça vaut vraiment le coup d'essayer, et le développement est très actif. Il existe également un mode multijoueur non testé mais qui doit être très chouette.

Enfin, si vous cherchez d'autres jeux libres pour différentes plateformes, je vous recommande jeuxlibres.net et l'incontournable Framasoft.

page 3 de 3 -