It's a youpiblog !

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

samedi, juillet 31 2010

Conversion du bitrate de mp3 en mode batch

Un petit article qui arrive, faut que j'arrive vraiment à écrire ce que je fais quand je rencontre un problème, c'est bien comme aide mémoire.

Voici l'intitulé du problème du jour :

J'ai un nabaztag, j'ai un serveur sur lequel je stocke mes mp3. But du jeu : distribuer en streaming mes mp3 sur le lapin. Solution trouvée : squeezeboxserver de logictech qui permet assez facilement de mettre en place un serveur de streaming qui peut être utilisé par le lapin. En plus, avec un téléphone sous Android, tu peux à la fois contrôler quand le lapin doit passer de la musique et ce qu'il doit diffuser depuis le squeezebox server. J'en parlerai si ça intéresse quelques personnes, laissez un commentaire pour me le dire !

Par contre, il subsiste un problème... si les mp3 sont encodés à plus de 96kbps, le son est haché... Donc, il faut trouver un moyen de faire de l'encodage en mode batch de tous les mp3.

3 choses à faire :

  1. encodage en 96kbps, la solution retenue est lame
  2. report des tags ID3
  3. automatisation de tout ça

et en vrac, ça donne :

conversion des mp3 en bitrate constant à 96kbps

Rien de bien particulier à dire dans ce cas là, juste qu'il est important que le bitrate soit constant pour ne pas dépasser les 96kbps qui posent problème au lapin.

lame --alt-preset cbr 96 <infile> <outfile>

L'inconvénient de la méthode est que lame ne reporte pas les tags ID3, et c'est quand même bien pratique de les avoir pour que la squeezebox puisse faire le rangement automatique. J'ai donc choisi d'utiliser un module perl qui sait extraire et réinjecter les tags dans des fichiers MP3. Le script est le suivant :

#!/usr/bin/perl

    use strict; use warnings;
    
    use MP3::Info;

    my $infile = $ARGV[0];
    my $destfile = $ARGV[1] ;
    my $tags = get_mp3tag($infile);
    set_mp3tag($destfile, $tags);

Et pour finir, on fait tout marcher en une seule ligne :

find . -name *.mp3 | grep -v ".AppleDouble" | while read file ; do destfile=96k/$(echo $file | tr " " "_") ; mkdir -p ${destfile%/*} ; lame --alt-preset cbr 96 "$file" $destfile;  perl transfertid3tags.pl "$file" $destfile ; done

ici, le script perl ci dessus est appelé transfertid3tags.pl, il lit les tags du fichier donné dans le 1er argument et écrit dans le fichier donné en deuxième argument. Tout est copié dans un répertoire 96k. Pour s'affranchir des problèmes dû aux espaces dans les noms de fichiers, quand je fais la copie, je les remplace par des "_".

Après, il n'y a qu'à laisser la machine travailler pour vous.

samedi, octobre 31 2009

Petit cours de DNS pour Jabber et XMPP

Une petite astuce pour un serveur jabber, pour permettre notamment la communication entre serveurs et avoir plusieurs fonctionnalités :

- découverte automatique dans le client jabber (notamment iChat) du serveur en fonction du nom de domaine (auto configuration)
- possibilité de discuter entre serveurs jabber de différents domaines

A quoi ça ressemble :

_xmpp-server._tcp.<domaine>. 3600 IN SRV 5 0 5269 <nom fqdn du serveur>. _xmpp-client._tcp. <domaine>. 3600 IN SRV 5 0 5222 <nom fqdn du serveur>. _jabber._tcp. <domaine>. 3600 IN SRV 5 0 5269 <nom fqdn du serveur>.

Explication de texte :
_xmpp-server = services utilisé
_tcp = proto
<domaine> = le domaine associé à l'enregistrement
3600 = temps de validité de l'enregistrement
IN SRV = enregistrement de type serveur ipv4
5 = priorité (utilisé pour plusieurs serveurs)
0 = poids (pour plusieurs serveurs le poids pour faire du round robin sur les serveurs de même priorité)
5269 = port de communication inter serveurs
5222 = port de communication client -> serveur non ssl (5223 pour le ssl)

L'entrée _jabber sert pour la retro compatibilité avec les vieux clients jabber.

Et voilà, depuis un compte sur votre propre serveur jabber, vous pouvez ajouter des comptes d'autres domaines (par exemple google avec Gtalk)

Un petit lien pour vérifier si vos enregistrement DNS sont bien propagés : http://dopeman.org/xmpp_srv_test/?domain=google.com

Plus tard, pourquoi et comment installer et configurer un serveur jabber (openfire en l'occurence)

Don

dimanche, août 9 2009

Et c'est parti !

Pour ce premier billet, ma petite success story avec dotclear 2. Quoi de plus sympa quitte a faire un blog, d'avoir un petit challenge. Donc, pour aujourd'hui le cahier des charges est simple :

- Avoir un moteur de blog multidomaine

- Se débrouiller pour pouvoir avoir une jolie gallerie photos (merci madame)

La première partie est relativement simple et bien documentée comme ici pour la doc officielle ou ici :

Pour la deuxième partie, direction les plugins ! La première tentative a été d'utiliser le plugin gallery pour dotclear 2, installation, rien a redire, on donne le lien du zip et son mot de passe et c'est ok. On l'active pour le blog qui nous intéresse et c'est parti.

Première mission, ajouter des images... j'essaie de le faire via ftp, pas moyen de trouver l'endroit... après pas mal de temps je finis par trouver qu'il faut passer par le gestionnaire de médias, l'interface avancée toute pleine d'ajax est particulièrement agréable à utiliser, tout se fait via le navigateur web, on sélectionne l'ensemble des images qu'on veut ajouter, et dotclear s'occupe tout seul de traiter la file d'attente et de générer les miniatures (j'y reviendrais plus tard...). On peut les ranger dans un répertoire (à faire avant d'uploader les photos, c'est plus simple). Ensuite, il n'y a qu'à créer une gallerie et utiliser le répertoire voulu comme répertoire de média.

Bref, tout se passe bien, sauf qu'en publiant les différentes galeries créées, impossible de la voir affichée avec un billet... En farfouillant un peu partout, je finis par trouver que pour afficher les galleries, il faut aller dans le panneau d'admin -> Widgets de présentation et déplacer par glisser/déposer le widget Galeries dans le bandeau de navigation. Premier problème régler, mais finalement, le rendu n'est pas trop joli (le plugin Galerie génère un billet par image).

Donc, je pars à la recherche d'autre chose que j'avais entre aperçu Pictures Show !

Là, il s'agit d'un plugin qui n'est pas encore intégré dans dotAddict.org mais qui gagne a être connu. Donc, pour l'installation, chercher le plugin ici , et installer le tout. Ensuite, comme indiqué dans la documentation du plugin, il y a quelques petites modifs à faire sur les thèmes où le plugin va être utilisé. Cette doc se trouve dans le panneau d'admin -> Extensions -> Pictures Show -> Exemple d'utilisation des tags (c'est pas très parlant comme endroit mais c'est bien là que ça se trouve). Et dans le cas d'une installation multi domaine, telle que dans la doc suscitée, il faut le faire pour chaque domaine, pas seulement le domaine racine (je sais, j'ai cherché quelques heures pourquoi je voyais pas les galeries...)

Et voilà, tout est prêt, vous activez la galerie pour chaque blog voulu (en modifiant les fichiers nécessaires aussi ;-)) et après, rendez-vous dans le panneau d'admin où apparaît le nouveau lien : Les galeries Pictures Show. Dedans vous pourrez arranger l'ordre des photos par glisser/déposer, activer/désactiver des photos par double clique et parametrer comment tout ça s'affiche, rien de bien compliqué, plutôt intuitif. Enfin, quand vous créez un billet, vous n'avez qu'à lui associer une galerie Pictures Show et celle ci apparaitra liée au blog.

Voili, voila, ça donne une belle petite galerie qui plaît à madame ;-) Un exemple fait avec des images libres de droit (en provenance directe du site : Photos Libres)

enfin, quelques petits conseils :

__Comment augmenter la taille max des fichiers qu'on peut uploader sur dotclear via l'interface avancée ?
__ il s'agit d'un paramètres de php :upload_max_filesize (par exemple 5M pour mettre des photos d'un appareil 10MP).

__Comment changer la taille des miniatures (small, medium, ...) ?
__ Ca se trouve dans la partie about:config de dotclear et porte le doux nom de media_img_m_size pour medium (s pour small et t pour thumbnails)

__Comment regénérer les miniatures des images dans dotclear après avoir changé la taille d'une des miniatures ?
__ Pour ce faire, il faut avoir gardé le plugin Galeries, tout d'abord dans le répertoire /public/ du blog, il faut enlever les fichiers qui ont été générés par dotclear à l'import (ils s'appellent .<NOM_DU_FICHIER>_<s|sq|t|m>.jpg), ensuite passer pas le panneau d'admin -> Galeries -> Gestion des nouvelles images. Cliquer sur générer les miniatures manquantes puis soumettre. En un tour de main, tout aura été regenéré et sera opérationnel pour Pictures Show aussi !