Linux MP3 HOWTO <author>Phil Kerr <htmlurl url="mailto:phil@plus24.com" name="phil@plus24.com">, traduction Frédéric Bothamy <htmlurl url="mailto:fbothamy@mail.dotcom.fr" name="fbothamy@mail.dotcom.fr"> <date>v1.61, 16 Décembre 2001, traduction Décembre 2001 <abstract> Ce document décrit le matériel, les logiciels et les procédures à suivre pour créer, écouter et diffuser des fichiers son <em/MP3/ sous Linux. </abstract> <toc> <sect>Introduction <p> Ce document décrit le matériel, les logiciels et les procédures à suivre pour créer, écouter et diffuser des fichiers son <em/MP3/ sous Linux. Il recouvre~: <itemize> <item>L'encodage de MP3 en direct ou depuis une source extérieure <item>L'encodage de MP3 depuis un CD audio <item>La diffusion de MP3 sur un réseau <item>L'écoute des MP3 <item>L'enregistrement de flux de MP3 <item>Le mixage de MP3 <item>L'édition des informations ID3 </itemize> <sect>Copyright <p> Ce HOWTO est © Phil Kerr, 1999, 2000. <p> Ce document est distribué sous les termes de la GNU Free Documentation License. Vous devriez en avoir reçu une copie l'accompagnant. Dans le cas contraire, elle est disponible depuis <url url="http://www.fsf.org/licenses/fdl.html">. <sect>Où trouver ce document <p> La dernière version officielle de ce document se trouve sur le site du Linux Documentation Project <url url="http://www.linuxdoc.org/">. Le site web de ce HOWTO est <url url="http://www.mp3-howto.com/">. <sect1>Traductions <p> Ce document a été traduit dans les langues suivantes~: <em/Notez bien que les traductions peuvent être plus anciennes que la version originale, dans la mesure où traduire prend du temps./ <em>Coréen</em> <url url="http://kldp.org/HOWTO/MP3-HOWTO"> par Lee, So-min <animator@nownuri.net> <em>Français</em> <url url="http://www.freenix.org/unix/linux/HOWTO/MP3-HOWTO.html"> par Frédéric Bothamy <fbothamy@mail.dotcom.fr> <em>Hongrois</em> <url url="http://free.netlap.hu/howto/MP3-HOGYAN.html"> par Andras Timar <atimar@itp.hu> <em>Italien</em> <url url="ftp://ftp.pluto.linux.it/pub/pluto/ildp/HOWTO/MP3-HOWTO"> par Mariani Dario <darkpand@uni.net> <em>Espagnol</em> <url url="http://www.insflug.org/documentos/MP3-Como"> par Arielo <larocka@yahoo.com> <em>Hollandais</em> <url url="http://nl.linux.org/doc/HOWTO/MP3-HOWTO-NL.html"> par Reggy Ekkebus <reggy@zeelandnet.nl> <em>Japonais</em> <url url="http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO.html"> par Saito Kan <can-s@geocities.co.jp> <em>Slovène</em> <url url="http://www.lugos.si/delo/slo/HOWTO-sl/MP3-HOWTO-sl.html"> par Jernej Kovacic <jkovacic@email.si> Merci beaucoup à tous ces traducteurs. Si vous voulez traduire ce HOWTO dans une autre langue, merci d'envoyer un e-mail à l'auteur (NdT~: en anglais), en précisant l'URL où se trouvera la traduction. <sect>Remerciements <p> Lors de l'écriture de ce document, je me suis largement inspiré du <em/Sound-HOWTO/ de Jeff Tranter et du <em/Sound-Playing-HOWTO/ de Yoo C. Chung. Merci également aux autres auteurs de HOWTO, au travail desquels je me réfère~: <itemize> <item><em/Linux System Administrators Guide/ de Lars Wirzenius <item><em/Linux Network Administrators Guide/ d'Olaf Kirch <item><em/Multi Disk System Tuning HOWTO/ de Stein Gjoen </itemize> Un grand merci également pour tous ceux qui m'ont envoyé des commentaires ou signalé des erreurs. <sect>Dénégation <p> Vous utilisez les informations contenues dans ce document à vos propres risques. Nous déclinons toute responsabilité quant à son contenu. L'utilisation des concepts, des exemples ou de tout autre contenu se fait entièrement à vos propres risques. Tous les droits sont détenus par leurs propriétaires respectifs, sauf mention contraire explicite. L'utilisation d'un terme dans ce document ne constitue pas une limitation à sa validité en tant que marque. Le fait de citer un produit ou une marque particulière ne constitue pas une adhésion. Il est fortement conseillé d'effectuer une sauvegarde de votre système avant une installation importante ainsi qu'à intervalles réguliers. <sect>Matériel nécessaire et influence sur les performances <p> Le traitement de son numérique est une tâche qui demande beaucoup de ressources, notamment en termes de puissance de calcul et d'entrées/sorties. Je recommande fortement une machine de type Pentium au minimum. Si vous voulez produire des MP3 à partir d'une source analogique à partir de l'entrée ligne ou d'un microphone, une carte son PCI donnera les meilleurs résultats. La différence de performance entre les E/S d'une carte ISA et celles d'une carte PCI est importante (environ 132 Mbps pour du PCI, d'après le <em/PCI-HOWTO/). Naturellement, meilleur est le rapport signal/bruit de la carte, meilleur est le MP3 encodé. J'ai utilisé une Soundblaster PCI128 et je suis récemment passé à une Soundblaster Live Value~; les deux cartes ont de bonnes performances, mais la Live a un rapport signal/bruit sensiblement meilleur, assez bon pour un usage semi-professionnel. Souvenez-vous de la vieille maxime du traitement de données~: si vous partez de déchets, vous obtiendrez des déchets. Creative propose un pilote en version bêta pour la Soundblaster Live!, qui peut être téléchargé depuis <url url="http://developer.soundblaster.com/linux/">. Lorsque vous enregistrez du son directement sur un disque dur (enregistrement d2d, direct-to-disk), les performances du disque et de son interface sont primordiales. Si vous utilisez un système basé sur de l'IDE, le mode 4 ou l'UDMA sont préférables, dans la mesure où ils ont un débit suffisant pour assurer l'integrité des données transférées. La solution idéale reste un système à base de SCSI, dont les disques et les interfaces ont un bien meilleur débit, de 5 Mo/s pour le SCSI-1 à 80 Mo/s pour le SCSI ultra-wide. L'IDE peut aller jusqu'à des vitesses variant de 8,3 Mo/s à 66 Mo/s pour l'Ultra DMA mode 4, mais il s'agit de crêtes, les débits moyens seront plus faibles. Si vous pouvez trouver ou vous offrir un disque SCSI AV, allez-y. Les disques AV ont des têtes de lecture/écriture optimisées pour les transferts continus de données; les autres disques SCSI et IDE ne peuvent normalement soutenir un transfert de données car leurs têtes chauffent trop ! Naturellement, un disque équipé de cache donnera des résultats plus homogènes, vu que le cache peut servir de tampon lorsque les têtes se déplacent ou ne peuvent pas soutenir le débit. Si votre disque n'est pas à la hauteur, vos enregistrements seront parsemés de coupures et d'erreurs lorsque le disque n'arrivera pas à enregistrer le signal. Si vous enregistrez des événements uniques, comme des concerts, investissez dans un bon système disque SCSI. Une charge système élevée peut aussi causer des coupures dans des enregistrements d2d. Des tâches de fond peuvent momentanément occuper le système. Il vaut mieux réduire les services au minimum vital, particulièrement les services réseau. Pour plus d'informations à propos des services réseau et des scripts de démarrage, reportez-vous au <em/SAG/ et au <em/NAG/. La pagination de la mémoire virtuelle peut aussi provoquer des erreurs, donc mettez le plus de mémoire physique possible. Je recommande au moins 32 Mo, mais vous pouvez avoir besoin de plus. Pour ceux qui veulent tirer le maximum de leur système, optimiser le noyau ne fera probablement pas de mal. Pour la diffusion de MP3 sur le réseau, meilleure est la carte réseau, meilleure sera le débit, naturellement une interface 100~Mb donnera un meilleur débit qu'une interface 10~Mb. Alors que le matériel ci-dessus vous donnera un système acceptable pour encoder des données sonores, ne négligez pas l'emploi de matériel plus ancien et moins performant si c'est tout ce à quoi vous avez accès. La configuration d'un système bas de gamme pour donner de bons résultats sera un défi intéressant pour un administrateur système, et le résultat sera probablement une machine Linux plus heureuse. Un autre point important est la connectique audio. Des cãbles et des connecteurs bon marché et de mauvaise qualité donneront un enregistrement de mauvaise qualité. Si votre carte le permet, utilisez des connecteurs phono (RCA). Des contacts plaqués or aideront aussi à obtenir un son de bonne qualité. Enfin, séparez bien les câbles audio des câbles transmettant d'autres données pour éviter les risques d'interférences. Mais n'oubliez pas, une fortune dépensée en câbles sera perdue si le reste du système n'est pas optimisé. Pour encoder des MP3 depuis un CD-ROM, la vitesse et le type du lecteur déterminent le temps nécessaire à l'extraction des informations. Un lecteur simple vitesse est probablement trop lent sauf pour les plus patients. Votre lecteur de CD-ROM doit être connecté à votre carte son, ou bien au moyen du connecteur interne, ou bien en branchant la sortie casque du lecteur sur l'entrée ligne de la carte son. Bien entendu, vous ne pourrez pas écouter de MP3 via la sortie casque du lecteur~! Pour des informations détaillées sur la configuration des cartes son, lisez le <em/Sound-HOWTO/. <sect>Logiciels nécessaires <label id="logiciels"> <p> La conversion du son en MP3 se fait normalement en deux étapes. D'abord, le son est enregistré au format WAV, puis le WAV est converti en MP3. Certains utilitaires accompliront les deux transformations en une seule fois. Le support du son que vous voulez encoder, CD ou enregistrement direct, déterminera les logiciels nécessaires à la production du fichier WAV. Si vous voulez enregistrer depuis une source audio extérieure, vous aurez besoin d'un programme pour lire les données sur l'entrée de votre carte son et les sauvegarder au format WAV. Voici quelques logiciels utiles. La plupart des commentaires proviennent des sites web des applications en question. <sect1>Extracteurs de CD et enregistreurs WAV <p> Pour enregistrer des données analogiques via l'entrée ligne~: <em/Wavrec/ Wavrec fait partie du paquetage Wavplay, qui peut être téléchargé sur~: <url url="ftp://metalab.unc.edu/pub/Linux/apps/sound/players/"> Pour convertir des CD audio au format WAV (extraction de CD) : <em/CDDA2WAV/ <url url="http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/"> <em/Cdparanoia/ Cdparanoia est un outil d'extraction de compact disc audio numérique (CDDA, Compact Disc Digital Audio), parfois appelé "ripper". L'application est construite au-dessus de la bibliothèque Paranoia qui effectue le vrai travail (les sources de Paranoia sont fournies avec la distribution source de cdparanoia). Tout comme cdda2wav, cdparanoia lit directement les données enregistrées sur le CD, sans passer par un quelconque format analogique, et écrit les données dans un fichier ou dans un tube, au format WAV, AIFC ou PCM linéaire 16~bits brut. Par rapport à cdda2wav, il est beaucoup plus lent, mais il donne les meilleurs résultats possibles, même avec des CD rayés ou difficiles à lire. <url url="http://www.xiph.org/paranoia/index.html"> <em/RipEnc/ RipEnc est un script en Bourne shell qui sert de frontal à cdparanoia, cdda2wav, tosha et bladeenc, 8hz-mp3, l3enc. Il utilise le protocole CDDB pour trouver le nom des morceaux au fur et à mesure de leur extraction. Une option permettant de les nommer manuellement est aussi disponible. Vous pouvez extraire la totalité du CD ou choisir certains morceaux. Les marques ID3 sont également supportées. <url url="http://www.asde.com/~mjparme/index.htm"> <!-- URL invalide --> <em/Cd2mp3/ cd2mp3 est un logiciel gratuit, conçu pour gérer 2 autres programmes cdda2wav (qui extrait les pistes du CD) et lame (qui encode les MP3). <url url="http://sertaozinho.org/cd2mp3/index.html"> <em/RipperX/ RipperX est un programme en GTK pour extraire les CD audio et encoder les MP3. Il peut utiliser cdparanoia, bladeenc, lame, XingMp3enc, 8hz-mp3 et l'encodeur ISO~v2. Il supporte également CDDB et les marques ID3. <url url="http://www.digitallabyrinth.com/linux/ripperX/"> <em/Grip/ Grip est un lecteur et extracteur de CD et encodeur MP3 utilisant GTK. Il possède nativement les capacités d'extraction de cdparanoia, mais il peut également utiliser des extracteurs extérieurs comme cdda2wav. Il fournit aussi un frontal automatique pour les encodeurs MP3 et vous permet de prendre un CD et de transformer facilement son contenu en MP3. Le protocole CDDB est supporté, ce qui permet de récupérer les informations concernant le disque depuis des serveurs de bases de données. Grip fonctionne avec DigitalDJ pour fournir une version numérique cohérente de votre collection de CD. <url url="http://www.nostatic.org/grip/"> <sect1>Encodeurs <p> Vous en aurez besoin pour convertir vos fichiers WAV au format MP3~: <em/Blade's MP3 Encoder/ BladeEnc est un encodeur MP3 gratuit. Il est construit autour des mêmes routines de compression ISO que mpegEnc, donc vous pouvez vous attendre à un résultat à peu près équivalent, voire meilleur. Les principales différences sont l'apparence et la vitesse. BladeEnc ne dispose pas d'une belle interface utilisateur comme mpegEnc, mais il est plus de trois fois plus rapide, et il dispose de plusieurs frontaux graphiques. <url url="http://bladeenc.cjb.net"> <em/Lame/ Dans la tradition des noms GNU, LAME signifie <em/LAME Ain't an MP3 Encoder/ (NdT~: LAME n'est pas un encodeur MP3). D'ailleurs, LAME <em/n'est pas/ un encodeur MP3. Il s'agit d'un patch applicable aux sources de démonstration dist10 de l'ISO, sous licence GPL. LAME est totalement incapable de produire un flux MP3. En fait, il ne peut même pas être compilé seul. Vous aurez besoin des sources ISO pour le faire fonctionner. Ces sources sont également disponibles gratuitement, mais tout usage commercial (y compris la distribution d'un encodeur gratuit) nécessite l'accord de FhG (Fraunhofer Gesellschaft, Allemagne). <url url="http://www.sulaco.org/mp3/"> <em/Gogo/ Il s'agit d'un encodeur MP3 extrêmement rapide pour x86, dérivé de la version 3.29~bêta de LAME et optimisé par PEN@MarineCat, Keiichi SAKAI, URURI, kei et shigeo. Pour le compiler, vous aurez besoin de NASM, disponible à l'adresse <url url="http://www.web-sites.co.uk/nasm/">. <url url="http://homepage1.nifty.com/herumi/gogo_e.html"> <!-- URL invalide --> <sect1>Lecteurs <p> Pour lire les MP3, il vout faut bien sûr un lecteur : <em/Xmms (anciennement X11Amp)/ Ce lecteur dispose de la plupart des fonctionnalités de Winamp (disponible sous Windows~95/98/NT), en plus de quelques fonctionnalités propres à la version Linux. <!-- NdT: Linux seulement, ou tous les Unix ? --> <url url="http://www.xmms.org"> <em/Xaudio/ Xaudio est une application multi-plate-formes très rapide et très robuste permettant la lecture de son numérique, orientée plus particulièrement vers le décodage de flux audio MPEG (MP1, MP2, MP3). <url url="http://www.xaudio.com"> <em/AlsaPlayer/ AlsaPlayer est un nouveau type de lecteur PCM. Il est fortement multi-threadé et essaye de tirer le maximum des bibliothèques et des pilotes ALSA. Il dispose de quelques fonctionnalités très intéressantes, uniques parmi les lecteurs Linux/Unix. Le but est de créer un canevas modulaire pour l'utilisation de toute sorte de médias, principalement orienté vers la lecture de son PCM. <em/Contrôle total de la vitesse (pitch), vers l'avant *et* l'arrière. Le premier lecteur sous Linux, et le seul sous GPL, à faire ça~! Les MP3 et les CD peuvent être écoutés à vitesse variable :-)/ <url url="http://www.alsa-project.org/~andy/"> <!-- URL changé vers http://www.alsaplayer.org/ --> <em/mpg123/ Qu'est-ce que mpg123~? Il s'agit d'un lecteur audio MPEG pour Unix, rapide, libre et portable. Il supporte les couches 1, 2 et 3 (les fameux MP3) des flux MPEG~1.0/2.0, et il a été testé avec succès sur de nombreuses plate-formes, y compris Linux, FreeBSD, NetBSD, SunOS, Solaris, IRIX et HP-UX. Pour une lecture de qualité CD (44~kHz, 16~bits, stéréo), un Pentium (ou un 486 rapide), une SPARCstation~10, un DEC Alpha ou un processeur similaire est nécessaire. Une lecture mono et/ou de qualité réduite (22~kHz ou 11~kHz) est possible même sur un 486 plus lent. <url url="http://dorifer.heim3.tu-clausthal.de/~olli/mpg123/"> <!-- URL changé vers http://www.mpg123.de/ --> <em/FreeAmp/ FreeAmp est un lecteur audio extensible et multi-plate-formes. Il dispose d'une version optimisée du décodeur MPEG Xing, sous GPL, qui en fait un des lecteurs les plus rapides et donne l'un des meilleurs rendus sonores. FreeAmp dispose des fonctionnalités les plus courantes auxquelles les utilisateurs sont habitués et d'un interface propre et facile à utiliser. <url url="http://www.freeamp.org/"> <sect1>Serveurs de diffusion <p> Les serveurs de diffusion vous permettent de diffuser des MP3 à travers un réseau, qu'il s'agisse de votre réseau local ou d'Internet. <em/Icecast/ Icecast est un système de diffusion de flux audio MPEG couche 3, conçu par l'équipe de linuxpower.org. Icecast est fourni avec iceplay et icedir. Iceplay permet de gérer la liste des morceaux à jouer et d'envoyer les fichiers pré-encodées à votre serveur Icecast. <url url="http://www.icecast.org/"> <em/Fluid/ Le serveur de flux Fluid est un programme permettant de diffuser des flux multimédia sur un réseau. Sous sa forme actuelle, il utilise le format MP3. <url url="http://www.subside.com/fluid/"> (ancien site)<p> <url url="http://fluid.sourceforge.net/"> (nouveau site) <em/Litestream/ Litestream est un système Open Source très échelonnable de diffusion de MP3 pour Unix. <url url="http://www.litestream.net/"> <em/Apache::MP3/ C'est un module de diffusion de MP3 utilisant le serveur Web Apache. Ce module utilise une arborescence de répertoires contenant des fichiers MP3 et la présente comme une bibliothèques de chansons à explorer sur le web. [Disponible sur le site de CPAN] <sect1>Mixage <p> <em/LiveIce/ LiveIce est le client source d'Icecast, qui encode un flux MP3 pour le diffuser au fur et à mesure de sa création. Contrairement à des clients comme Shout ou IceDJ, il permet la diffusion en direct, et pas seulement depuis des MP3 enregistrés au préalable. LiveIce est fourni avec Icecast, des versions récentes et de la documentation se trouvent sur le site suivant~: <url url="http://star.arm.ac.uk/~spm/software/liveice.html"> <em/eMixer/ eMixer est un frontal facile d'utilisation à mpg123 qui permet de jouer et de mixer deux flux MP3 ensemble. La capacité de mixer deux flux permet d'utiliser eMixer comme 'cross-fader' <!-- mixeur de fondu-enchainé --> et donne à l'utilisateur les mêmes possibilités qu'à un DJ. eMixer est également bien adapté à un environnement "temps réel", comme une soirée dansante. eMixer est bâti autour du même code de mixage de MP3 que le mixeur de LiveIce. <url url="http://emixer.linuxave.net/"> <em/GDAM/ GDAM est un logiciel temps réel numérique de mixage DJ. Plusieurs fichiers MP3 peuvent être joués et mixés simultanément. Des effets peuvent être ajoutés, changés et réarrangés dynamiquement. GDAM propose une architecture client-serveur ; toute la partie son est produite par le serveur qui reçoit des instructions des clients. Les autres fonctionnalités incluent des plugins pour des effets audio et des composants interface, des fonctions de cache et de boucle, du séquençage, de la correspondance de rythme assistée, un visualiseur de fréquences/calculateur de rythme, une gestion de file en continue (pas de pause entre les chansons d'une liste), un système d'aide en ligne, un clone de mpg123 tournant sur un serveur gdam, une interface flexible en ligne de commande pour un contrôle direct du serveur, l'enregistrement d'un mixage entier ou de tout point dans le flux vers le cache/disque/encodeur mp3, le support de plusieurs périphériques son et le support du contrôle matériel midi. <url url="http://gdam.org/"> URL alternative~: <url url="http://gdam.sourceforge.net"> <sect1> Éditeurs ID3 <p> <em/id3ed/ id3ed est un éditeur de marques ID3 pour les fichiers MP3. Vous pouvez positionner des marques interactivement ou à partir de la ligne de commande ou une combinaison des deux. id3ed peut positionner le genre par le nom ou par le numéro associé. Vous pouvez également enlever ou visualiser les marques. <url url="http://www.azstarnet.com/~donut/programs/id3ed.html"> <em/mp3info/ MP3info est un petit outil pour lire ou écrire les marques ID3 des MP3. Des versions console (ligne de commande et interactive par ncurses) et graphique utilisant GTK sont incluses. <url url="http://metalab.unc.edu/mp3info/"> <sect1>Enregistreurs de flux <p> <em/Streamripper/ Streamripper enregistre les flux shoutcast. Si le flux contient des informations sur la piste (meta data), streamripper crée un fichier séparé pour chaque piste. <url url="http://streamripper.sourceforge.net/"> <em/Wget/ GNU Wget est un utilitaire réseau librement disponible pour récupérer des fichiers sur l'Internet utilisant HTTP et FTP, les deux protocoles les plus largement utilisés. Il fonctionne non interactivement, ce qui lui permet donc de travailler en tâche de fond, après que l'utilisateur se soit déconnecté. <em/Wget est beaucoup plus qu'un simple enregistreur de flux~!/ <url url="ftp://ftp.gnu.org/gnu/wget/"> <sect1>Divers <p> <em/Normalisation du volume/ <em/Wavnorm/ Si vous avez encodé un flux audio enregistré en direct ou si vous êtes parti d'un vieux CD, il se peut que le volume sonore varie. Pour changer le volume sonore de vos MP3, vous devrez les normaliser au moyen de wavnorm. <url url="http://www.zog.net.au/computers/wavnorm/"> <p> <em/SOX/ Sox est un utilitaire de conversion sonore très pratique dont je recommande l'utilisation. Vous en aurez besoin pour utiliser wavnorm. <p> <url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/"> <p> Vous pourrez également avoir besoin d'un programme de mixage~; Xmixer fonctionne bien, et il est inclus dans la plupart des distributions Linux. <sect>Configuration du système <p> Cette section décrit les bases de la configuration de Linux en vue de l'enregistrement de son depuis une source analogique ou un CD audio. J'ai pris comme base mon système Intel sous Red Hat, mais cette section devrait être raisonnablement indépendante de la distribution utilisée. Si ce HOWTO vous est utile avec d'autres types de matériel, merci de me contacter. Naturellement, une carte son en état de marche est un pré-requis raisonnable. Pour cela, je vous invite à lire l'excellent <em/Linux Sound HOWTO/ de Jeff Tranter et le <em/Linux Sound Playing HOWTO/ de Yoo C. Chung. Ces deux HOWTO décrivent l'art et la manière de configurer le son sous Linux beaucoup mieux que je ne saurais le faire. <sect1>Configuration pour la capture d'une source analogique <p> Pour commencer, configurez votre équipement audio. Il existe de multiples façons d'amener le son jusqu'à votre machine Linux. Voici les plus communes : Sortie ligne vers entrée ligne. La plupart des appareils audio ont une sortie ligne. Le niveau ligne est un standard précisant la tension et l'intensité du courant émis par l'appareil. Si je me souviens bien, la tension est de 500 mV pour les équipements domestiques et semi-pro et 750 mV pour les équipements pro. Je suppose que la plupart des cartes son utilisent le standard à 500 mV, mais certaines cartes pro récentes peuvent utiliser l'autre. La différence ne devrait pas être trop importante si vous n'enregistrez pas à un volume très important. La sortie ligne est généralement utilisée pour connecter des équipements hi-fi à un amplificateur, donc les tuners radio et les platines cassette, CD, DAT, Mini-Disc et autres devraient pouvoir se brancher sans problème. Les platines disques peuvent être plus embêtantes ; voir ci-dessous pour en savoir plus. Vous pouvez aussi capturer du son depuis un magnétoscope. La plupart des magnétoscopes ont une sortie ligne, ou vous pouvez obtenir un signal au niveau ligne depuis une prise péritel si votre magnétoscope en est équipé. Sortie d'amplificateur vers entrée ligne, sortie ligne vers entrée cassette sur l'amplificateur. Essentiellement, vous remplacez la platine cassette reliée à votre ampli hi-fi par votre système Linux. Le lien entre la sortie ligne et l'entrée de l'ampli permet de contrôler le niveau de l'enregistrement. Micro sur entrée micro. La tension générée par un microphone est beaucoup plus faible que le niveau ligne. Si vous branchez votre micro sur votre entrée ligne, vous n'enregistrerez probablement jamais rien. <em/Attention/, l'inverse, brancher la sortie ligne d'un appareil sur l'entrée micro, peut endommager votre carte son ! Platine disques sur entrée micro. Merci à Mark Tranchant pour ce qui suit~: <em/La sortie d'une platine disque se fait à un niveau très bas. Cependant, vous ne pouvez pas brancher la platine à une entrée micro et espérer de bons résultats. La sortie nécessite une égalisation, car les basses sont atténuées et les aigus amplifiés pour tirer le maximum de l'aiguille de la platine. Cette égalisation est définie très précisément~; il s'agit de l'égalisation RIAA. Vous *devez* passer la sortie de la platine à travers un préampli dédié, puis vers une entrée ligne./ Les claviers et synthés doivent être branchés sur l'entrée ligne, et les guitares sur l'entrée ligne via une boîte de direct (DI box, utilisée pour convertir le signal au niveau ligne). Avant de brancher quoi que ce soit sur votre carte son, assurez-vous que le volume est reglé au minimum et que les éventuels micros ne sont pas allumés et tournés vers les haut-parleurs. <sect1>Configuration pour l'extraction de son depuis un CD <p> Configurer votre système Linux pour extraire le son d'un CD avec votre lecteur de CD-ROM est relativement simple. Si vous pouvez écouter un CD audio avec votre lecteur branché sur votre carte son, il y a des chances que vous puissiez l'enregistrer. <!-- NdT: Pas évident de le faire simplement. Certains lecteurs ne connaissent pas le format CDDA, et donc ne peuvent pas extraire des CD audio, à moins de ruser. --> <sect1>Configuration additionnelle <p> Connectez-vous normalement à votre système, puis utilisez un programme de mixage pour regler des niveaux d'enregistrement assez forts pour avoir un son décent, mais pas trop pour éviter la distorsion. Normalement, j'évalue ça à l'oreille ; après quelques temps, vous connaîtrez le meilleur niveau pour votre système. Je recommande ou bien d'arrêter tous les services non indispensables, ou bien de passer en mode utilisateur seul, en particulier si vous enregistrez depuis une source extérieure. Cela assure que seuls un nombre minimum de services fonctionnent, et donc que les erreurs d'enregistrement sont réduites au minimum. J'ai réservé un disque SCSI à l'enregistrement du son. J'y ferai référence comme <tt>/mp3</>. J'ai fait cela principalement pour le gain de performances apporté par un disque SCSI. De plus, enregistrer sur un disque séparé, dont vous savez que la tête ne va pas tout à coup se déplacer à l'autre bout du disque pendant que vous êtes en train d'enregistrer, est une Bonne Chose. :-) Pour les détails de la configuration d'un système Linux avec plusieurs disques, la lecture du <em/Multi-Disk-HOWTO/ de Stein Gjoen peut être utile. <sect>Encodage depuis une source audio <p> Premièrement, assurez-vous que vous avez suffisamment de place sur votre disque dur. Pour un enregistrement de qualité CD (44,1 kHz, 16 bits, stéréo), une minute prend près de 10~Mo (5~Mo par canal). En général, j'enregistre avec une qualité DAT, 48 kHz, 16 bits, stéréo. Avec wavrec, j'utilise la syntaxe suivante: <tscreen><verb> /usr/local/bin/wavrec -t 60 -s 48000 -S /mp3/temp.wav </verb></tscreen> La première partie est le chemin d'accès explicite de wavrec. Le <tt/-t 60/ précise la durée de l'enregistrement en secondes. L'option <tt/-s 48000/ donne la fréquence d'échantillonnage en bits/s (la fréquence du DAT est 48000, celle du CD, 44100). La dernière option indique le fichier de sortie. Pour voir la liste complète des options, lancez <tt/wavrec -help/ ou lisez le manuel. Ceci va produire un fichier WAV. Ensuite, vous allez devoir l'encoder au format MP3. Utilisez bladeenc avec la ligne de commande suivante~: <tscreen><verb> /usr/local/bin/bladeenc <em/[fichier source] [fichier destination]/ -br 256000 </verb></tscreen> L'option <tt/-br/ précise la fréquence. En l'occurrence, je l'ai reglée au maximum~: 256 kbits/s. Le chemin d'accès de <tt/bladeenc/ peut aussi être différent sur votre système de celui de mon exemple. Pour voir la liste des options, lancez <tt/bladeenc -help/. En fait, il s'agit d'une option invalide, mais cela va afficher la liste des options. Vous pourriez aussi utiliser Lame (ou Gogo, qui en est dérivé), avec la ligne de commande suivante~: <tscreen><verb> /usr/local/bin/lame <em/[fichier source] [fichier destination]/ -b 256 </verb></tscreen> <sect>Encodage depuis un lecteur de CD-ROM <p> De la même façon, l'encodage depuis un CD se déroule en deux étapes. Tout d'abord, les données extraites du CD sont enregistrées au format WAV, puis le fichier WAV est converti en MP3. Il existe deux types d'encodeurs, en ligne de commande ou sous X. Ils réalisent le même travail, mais ceux qui utilisent X sont plus faciles à utiliser et plus beaux. Là encore, vérifiez que vous avez suffisamment de place sur votre disque dur. <sect1>Encodage en ligne de commande <p> J'ai écrit un petit script Perl pour extraire et encoder des pistes d'un CD. <tscreen><code> #!/usr/bin/perl if ($ARGV[0] ne "") { $count = 1; do { $cdcap = system("cdparanoia", $count, "/mp3/cdda.wav"); $track = "$ARGV[1]/track".$count.".mp3"; $enc = system("bladeenc /mp3/cdda.wav $track -br 256000"); $count++; } until $count > $ARGV[0]; exit; } else { print "Usage cdriper [nombre de pistes] [répertoire cible]\n\n"; } </code></tscreen> Notez que ce script est très rudimentaire et ignore complètement les perfectionnements tels que la vérification d'erreur ou l'utilisation de CDDB. Améliorez-le tant que vous voudrez :-) La ligne intéressante est <code> $cdcap = system("cdparanoia", $count, "/mp3/cdda.wav"); </code> Cette ligne appelle l'extracteur de CD audio, cdparanoia, qui convertit les données brutes extraites d'un CD en fichier WAV. J'utilise cdparanoia, mais vous pourriez aussi bien utiliser cdda2wav. Dans ce cas, cette ligne devient~: <code> $cdcap = system("cdda2wav", $count, "/mp3/cdda.wav"); </code> Les options sont <tt/$count/ (le nombre de pistes à extraire), puis le chemin d'accès des fichiers WAV produits. Dans mon exemple, il s'agit de mon disque réservé aux MP3. Les fichiers WAV sont ensuite convertis en MP3 avec Bladeenc. J'ai écrit ce script pour extraire tout un CD sans devoir extraire et encoder chaque piste séparément, et sans utiliser le traitement par lots de cdparanoia, qui extrait tout le disque, ce qui peut occuper jusqu'à 600 Mo. Si vous préferez utiliser Lame ou Gogo, remplacez la ligne <code> $enc = system("bladeenc /mp3/cdda.wav $track -br 256000"); </code> par <code> $enc = system("lame /mp3/cdda.wav $track -b 256"); </code> ou <code> $enc = system("gogo /mp3/cdda.wav $track -b 256"); </code> Voici une liste des options disponibles pour chacun de ces encodeurs~: Bladeenc <code> BladeEnc 0.91 (c) Tord Jansson Homepage: http://bladeenc.mp3.no =============================================================================== BladeEnc is free software, distributed under the Lesser General Public License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more details. Usage: bladeenc [options globales] entrée1 [sortie1 [options]] entrée2 ... Options générales : -[kbit], -br [kbit] Débit du flux MP3 en kbit/s. La valeur par défaut est 128 (64 pour une sortie mono) -crc Inclure un code de vérification dans le fichier MP3 -delete, -del Effacer le fichier WAV après un encodage réussi -private, -p Positionner le drapeau privé du fichier MP3 -copyright, -c Positionner le drapeau copyright du fichier MP3 -copy Enlever le drapeau original du fichier MP3 -mono, -dm Produire un MP3 mono à partir des deux canaux combinés -leftmono, -lm Produire un MP3 mono à partir du canal de gauche -rightmono, -rm Produire un MP3 mono à partir du canal de droite -swap Intervertir les canaux stéréo de droite et de gauche -rawfreq=[freq] Fréquence du flux brut (RAW). La valeur par défaut est 44100 -rawbits=[bits] Nombre de bits d'échantillonage pour chaque canal du flux brut. La valeur par défaut est 16 -rawmono Les flux bruts sont mono, pas stéréo -rawstereo Les flux bruts sont stéréo (valeur par défaut) -rawsigned Les flux bruts sont signés (valeur par défaut) -rawunsigned Les flux bruts ne sont pas signés -rawbyteorder=[order]Ordre des bits du flux brut : LITTLE ou BIG. -rawchannels=[1/2] Nombre de canaux pour les flux bruts. Même effet que -rawmono ou -rawstereo, respectivement. Options uniquement globales : -quit, -q Quitte sans attendre l'appui sur une touche une fois l'encodage terminé -outdir=[dir] Sauve les MP3 dans le répertoire spécifié -quiet Désactive les sorties à l'écran -nocfg Ignore le fichier de configuration -prio=[prio] Priorité de BladeEnc. Les valeurs possibles sont HIGHEST, HIGHER, NORMAL, LOWER, LOWEST(défaut) et IDLE -refresh=[rate] Fréquence de mise à jour de l'indicateur de progression. 1=rapide, 2=valeur par défaut -progress=[0-8] Quel indicateur de progression utiliser. 0=aucun, 1=défaut. Les fichiers d'entrée et de sortie peuvent être remplacés par STDIN et STDOUT, respectivement. </code> Lame <code> LAME version 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model version 0.74. USAGE : lame [options] <entrée> [sortie] <entrée> et/ou <sortie> peuvent être "-", c'est à dire stdin/stdout. OPTIONS : -m mode (s)téréo, (j)oint, (f)orce ou (m)ono (par défaut j) force = force ms_stereo sur toutes les voix. Plus rapide et utilise les seuils de masquage spéciaux Mid & Side -b <bitrate> positionne le débit du flux, par défaut 128 kbps (pour les VBR, il s'agit du débit minimum autorisé) -s sfreq fréquence d'échantillonage du fichier d'entrée (en kHz) - par défaut 44.1 --resample sfreq fréquence d'échantillonage du fichier de sortie (en kHz) - par défaut, celle de l'entrée sfreq --mp3input le fichier d'entrée est un fichier MP3 --voice mode expérimental 'voice' -v utilise un débit variable (VBR) -V n paramètre de qualié pour le VBR. Par défaut n=4 0=meilleur qualité, fichiers plus gros. 9=plus petits fichiers -t désactive la marque d'information VBR Xing --nohist désactive l'affichage de l'histogramme VBR -h utilise (peut-être) les améliorations de qualité -f mode rapide (basse qualité) -k désactive l'extinction sfb=21 -d permet différents types de blocs pour les canaux --athonly utilise seulement l'ATH pour le masquage -r l'entrée est du pcm brut -x force l'inversion des bits de l'entrée -a réduit le flux de stéréo vers mono pour en encodage mono -e emp post-correction n/5/c (obsolète) -p protection d'erreur. Ajoute un code d'erreur 16 bits à chaque séquence. (le code d'erreur est calculé correctement) -c ajoute la marque de copyright -o ajoute la marque non original -S n'affiche pas d'indicateur de progression, ni d'histogramme VBR Spécifier l'une des options suivantes ajoutera les marques ID3 --tt <title> titre le la chanson (maximum 30 caractères) --ta <artist> artiste qui a fait la chanson (maximum 30 caractères) --tl <album> album d'où provient la chanson (maximum 30 caractèress) --ty <year> année au cours de laquelle la chanson a été faite (maximum 4 caractères) --tc <comment> information supplémentaires (maximum 30 caractèress) MPEG1 samplerates(kHz): 32 44.1 48 bitrates(kbs): 32 48 56 64 80 96 112 128 160 192 224 256 320 MPEG2 samplerates(kHz): 16 22.05 24 bitrates(kbs): 8 16 24 32 40 48 56 64 80 96 112 128 144 160 </code> Gogo <code> GOGO-no-coda ver. 2.24 (Feb 12 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei This is based on LAME3.29beta and distributed under the LGPL usage gogo inputPCM [outputPCM] [options] inputPCM est le fichier d'entrée wav Si input.wav est `stdin', alors l'entrée est stdin outputPCM est le fichier de sortie mp3 (facultatif) Options -b kbps débit [kpbs] -br bps débit [ bps] -silent ne pas afficher d'indicateur de progression -off optimisation {3dn,mmx,kni(sse),e3dn} -v {0,..,9} VBR [0:haute qualité 9:haute compression] Il n'est conseillé d'utiliser cette option avec l'option -b que pour une entrée PCM brut -offset bytes saute la taille de l'en-tête -8bit PCM 8~bits [par défaut PCM 16~bits] -mono PCM mono [par défaut PCM stéréo] -bswap échange les bits de poids faible et fort pour le PCM 16~bits -s kHz fréquence du PCM [par défaut 44.1kHz] -nopsy désactive les psycho-acoustiques -m {s,m,j} format de sortie s:stéréo, m:mono, j:j-stéréo -d kHz change la fréquence d'échantillonage pour le MP3 produit -emh {n,c,5} post-correction -lpf {on,off} filtre 16~kHz [par défaut utilisé si <= 128~kbps ; non utilisé si >= 160kbps] -test mode test de performance -delete supprime le fichier d'entrée après l'encodage </code> <sect2>RipEnc<p> RipEnc effectue la même tâche que le code ci-dessus, mais est écrit en shell et est plus facile à utiliser :-) Voici à quoi il ressemble~: <code> RipEnc version 0.7, Copyright (C) 1999 Michael J. Parmeley <mjparme@asde.com>, RipEnc comes with ABSOLUTELY NO WARRANTY Il n'y a actuellement PAS de processus d'encodage en tâche de fond Votre fichier encode.log fait 982607 octets. <Entrer 'd' pour les détails, 'v' pour voir le fichier journal d'encodage ou 'del' pour supprimer le fichier journal> 1) Changer le répertoire de travail.............[/megajukebox/tmp] 2) Choisir l'encodeur...........................[lame] 3) Choisir l'extracteur.........................[cdparanoia] 4) Choisir l'outil de marquage ID3..............[aucun] 5) Basculer entre le nommage manuel ou par CDDB.[manuel] 6) Positionner la variable XMCD_LIBDIR pour CDA.[/var/X11R6/lib/xmcd] 7) Positionner la convention de nommage préférée[artist-name_of_song.mp3] 8) Extraire le CD en entier ?...................[non] 9) Positionner l'option petit disque dur ?......[non] 10) Veuillez sélectionner votre Cd-Rom..........[/dev/cdrom] 11) Positionner le débit des MP3 encodés........[256] 12) Lister les fichiers du répertoire de travail 13) Démarrer 14) A propos 15) Sortir ? </code> <sect2>CD2MP3 <p> Cd2mp3 est un encodeur CDDA vers MP3 en un seul passage. Il convertit une piste audio en MP3 sans produire de fichier intermédiaire. Voici à quoi il ressemble en fonctionnement~: <code> [dj@megajukebox]$ cd2mp3 options ALL Using language: 1 - English. Translator: Gustavo Sverzut Barbieri(k-s) <gsbarbieri@hotmail.com> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cd2Mp3 1.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Author: Gustavo Sverzut Barbieri (k-s) <gsbarbieri@hotmail.com.br> *** device: -D/dev/cdrom type: -Icooked_ioctl *** audio device: /dev/dsp *** preset: tape *** copyright: Yes *** author: *** album: recording: '1' as 'track-1.mp3' (wait) Ok! (recorded) recording: '2' as 'track-2.mp3' (wait) </code> Vous pouvez bien sur lui fournir des options sur la ligne de commande dont voici la liste~: <code> dj@megajukebox]$ cd2mp3 --help %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cd2Mp3 1.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Author: Gustavo Sverzut Barbieri (k-s) <gsbarbieri@hotmail.com.br> Usage: cd2mp3 options <track_number>="<track name>" ... <track_number>="<track name>"or: cd2mp3 options ALL (to record all tracks) or: cd2mp3 options LIST=<reclist_path> (to read pairs: <track_number>="<track name>" from a file) ou: cd2mp3 options PLAY=<track_number> VOL=[0..100] (only plays the track) Options: DEV=<cdrom_device> (default: /dev/cdrom) DEV_TYPE=[generic_scsi|cooked_ioctl] (default: cooked_ioctl) AUDIO_DEV=<audio_device> (default:/dev/dsp) LANGUAGE=<language_number> (LANGUAGE=help to see supported languages) COPYRIGHT=[YES|NO] PRESET=[phone|voice|fm|tape|hifi|cd|studio] (PRESET=help will give more info) ALBUM="<album's title>" AUTHOR="<author's name>" </code> <sect1>Encoder en mode graphique <p> Les encodeurs en mode graphique offrent toutes les fonctionnalités de ceux en mode console, mais englobe le tout dans une interface agréable et facile à utiliser. Grip et RippperX sont semblables d'utilisation, tous deux permettent de choisir une, plusieurs ou toutes les pistes d'un CD et de les convertir. Ils offrent aussi le support CDDB qui vous permet de récupérer les informations sur l'album et les pistes à partir d'un serveur. Ceci vous évite d'avoir à les saisir à la main. <sect1>Performance des encodeurs <p> Dans la section sur l'encodage, j'ai mentionné 3 encodeurs différents~: bladeenc, lame et gogo. La principale différence se situe dans leur performance en encodage (bien qu'il y ait aussi des différences dans les options disponibles listées auparavant). Prenons un petit exemple~: j'ai extrait une piste d'un CD, puis l'ai encodé avec chaque encodeur. Tous les encodeurs ont été exécuté dans les même conditions système et ont tous produit des MP3 stéréo. <code> [dj@megajukebox]$ ls -l cdda.wav -rw-rw-r-- 1 dj dj 59823164 Feb 10 00:56 cdda.wav [dj@megajukebox]$ bladeenc cdda.wav -br 256 BladeEnc 0.91 (c) Tord Jansson Homepage: http://bladeenc.mp3.no =============================================================================== BladeEnc is free software, distributed under the Lesser General Public License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more details. Files to encode: 1 Encoding: ../test.wav Input: 44.1 kHz, 16 bit, stereo. Output: 128 kBit, stereo. Completed. Encoding time: 00:05:58 (0.78X) All operations completed. Total encoding time: 00:05:58 -------------------------------------------------------------------------------- [dj@megajukebox]$ lame cdda.wav -b 256 LAME version 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model version 0.74. Encoding ../test.wav to ../test.wav.mp3 Encoding as 44.1 kHz 128 kbps j-stereo MPEG1 LayerIII file Frame | CPU/estimated | time/estimated | play/CPU | ETA 10756/ 10756(100%)| 0:02:28/ 0:02:28| 0:02:29/ 0:02:29| 1.9074| 0:00:00 -------------------------------------------------------------------------------- [dj@megajukebox]$ gogo cdda.wav -m s -b 256 GOGO-no-coda ver. 2.24 (Feb 12 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei MPEG 1, layer 3 stereo inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=256kbps inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=128kbps input file `../test.wav' output file `../test.mp3' { 10751/ 10755} 100.0% ( 2.94x) re:[00:00:00.03] to:[00:01:35.42] End of encoding time= 95.430sec </code> Il semble que gogo ait un algorithme mieux optimisé pour l'encodage que bladeenc ou lame. <sect>Diffusion de MP3 sur un réseau <p> Un serveur de diffusion de MP3 vous permet d'envoyer des fichiers MP3 sur un réseau basé sur TCP. Ceci peut être l'Internet ou un réseau local / intranet. Le principe de connexion est très semblable à celui d'un serveur web, les fichiers sont diffusés quand un client (le lecteur de MP3) se connecte sur le serveur. <sect1>Icecast <p> Après avoir téléchargé et décompressé l'archive, un bon coup d'oeil dans le répertoire doc/ est une bonne chose, le manuel HTML est très utile et complet. Si vous avez téléchargé le code source, suivez les instructions pour la compilation relative à votre système. Icecast ne marchera correctement que si vous spécifiez correctement le nom du server dans le fichier de configuration icecast.conf qui est situé dans le répertoire etc. Il doit correspondre exactement au nom de machine résolu par son adresse IP. Si vous voyez les lignes suivantes lors du démarrage du serveur Icecast, c'est qu'il y a un problème~: <code> -> [05/Jan/2000:17:21:04] WARNING: Resolving the server name [your.server.name] does not work! </code> Editez le fichier icecast.conf situé dans le répertoire etc, localisez la ligne contenant l'entrée "server_name" et entrez les nom de votre serveur. En cas de doute, vous pouvez utiliser la commande <em>hostname</em> ou afficher le fichier /etc/hosts. Un fois les modifications nécessaires faites, il vous faudra soit copier le fichier de configuration dans le répertoire bin, soit démarrer icecast avec l'option -c et spécifier l'emplacement du fichier ainsi~: <code> [dj@megajukebox bin]$ ./icecast -c ../etc/icecast.conf </code> Si tout est configuré correctement, vous devriez voir quelque chose comme~: <code> [dj@megajukebox bin]$ ./icecast -c ../etc/icecast.conf -d /home/dj/mp3/icecast/ Icecast Version 1.3.0 Starting... Icecast comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of Icecast under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. [05/Jan/2000:18:36:30] Icecast Version 1.3.0 Starting.. [05/Jan/2000:18:36:30] Using stdin as icecast operator console [05/Jan/2000:18:36:30] Tailing file to icecast operator console [05/Jan/2000:18:36:30] Server started... [05/Jan/2000:18:36:30] Listening on port 8000... [05/Jan/2000:18:36:30] Using [megajukebox] as servername... [05/Jan/2000:18:36:30] Max values: 1000 clients, 1000 clients per source, 10 sources, 5 admins -> [05/Jan/2000:18:36:30] [Bandwidth: 0.000000MB/s] [Sources: 0] [Clients: 0] [Admins: 1] [Uptime: 0 seconds] </code> L'option -d positionne le répertoire pour les fichiers journaux et les modèles. Voici ci-dessous la liste des options de la ligne de commande~: <code> -c [filename] Utilise le fichier comme un fichier de configuration. Veuillez noter que tout paramètre passé sur la ligne de commande est prioritaire sur le contenu de ce fichier. Notez également que le fichier icecast.conf contenu dans le répertoire courant est automatiquement lu quand vous spécifiez cette option, ainsi tout paramètre du fichier icecast.conf non spécifié dans le nouveau fichier de configuration sera utilisé par le serveur. -P [port] Port utilisé par toutes les connexions des clients, de la source audio et d'administration. Il est positionné à 8000 par défaut. -m [max clients] Nombre maximum de connexions clientes autorisées. Quand ce nombre est atteint, toute connexion cliente sera refusée avec un message~: 'HTTP/1.0 504 Server Full' -p [encoder password] Cette options positionne le mot de passe que l'encodeur doit utiliser pour pouvoir envoyer le flux vers le serveur. Notez que si vous compilez le serveur avec le support de crypt(), cet argument doit être une chaîne encryptée. -b Cette option permet au serveur icecast d'être lancé en tâche de fond (i.e. processus démon). Pour pouvoir utiliser les commandes d'administration, vous devrez alors vous connecter au serveur comme administrateur, en utilisant un client telnet ou équivalent. -d [directory] Rend tous les fichiers journaux créés par icecast et tous les modèles que icecast utilise relatifs à ce répertoire. </code> Voici ainsi comment démarrer le serveur, mais vous devez aussi connecter une source MP3 au serveur. Vous avez le choix entre deux applications pour envoyer des données MP3 au serveur, Shout et LiveIce. <sect2>Shout <p> Shout envoie au serveur icecast une liste de MP3 à diffuser et est inclus avec icecast. Vous créez la liste des fichiers MP3 avec la commande suivante~: <code> find [répertoire MP3] -name '*.mp3' -print > playlist </code> Au niveau le plus simple, pour démarrer le service shout, exécutez la commande suivante~: <code> [dj@megajukebox bin]# ./shout megajukebox -P hackme -p playlist </code> L'option -P spécifié le mot de passe nécessaire pour ajouter un point de montage à icecast, celui-ci est positionné à <em>hackme</em>..... Je vous suggère fortement de le changer, sinon quelqu'un le fera à votre place :-) L'option -p définit l'emplacement du fichier de liste. Voici ci-dessous une liste de toutes les options de la ligne de commande~: <code> [dj@megajukebox bin]# ./shout Usage: shout <host> [options] [[-b <bitrate] file.mp3]... Options: -B <directory> - Utiliser le répertoire pour tous les fichiers de shout -C <file> - Utiliser le fichier comme fichier de configuration -D <dj_file> - Exécuter cette commande avant chaque chanson (system()) -P <password> - Utiliser le mot de passe spécifié -S - Afficher les paramètres et sort -V - Utiliser un affichage verbeux -X <desc> - Utiliser la description spécifiée -a - Activer la correction automatique du débit (transfert) -b <bitrate> - Démarrer en utilisant le débit spécifié -d - Activer le dj -e <port> - Se connecter sur le serveur au port spécifié -f - Ne pas envoyer les fichiers qui ne correspondent pas au débit spécifié -g <genre> - Utiliser un genre spécifique -h - Afficher l'aide -i - Utiliser les anciens en-têtes icy -k - Ne pas tronquer la liste interne (continuer) -l - Envoyer sans fin (en boucle) -m <mount> - Utiliser le point de montage spécifique -n <name> - Utiliser le nom spécifique -o - Désactive l'auto-détection du débit -p <playlist> - Utilise le fichier spécifié comme liste de MP3 -r - Lecture aléatoire de la liste -s - (Secret) Ne pas envoyer les meta data au serveur -u <url> - Utilise l'URL spcifié -v - Affiche la version -x - Ne pas mettre à jour le fichier cur (économise le processeur) -z - Passer en tâche de fond (mode démon) -t - Autoriser la diffusion des titres </code> <sect2>LiveIce<p> LiveIce peut fonctionner dans 2 modes, il peut passer une liste de MP3 à Icecast ou il peut passer directement de l'audio en direct de la carte son. Après avoir décompressé l'archive et lu le fichier README concernant la construction du paquet, assurez-vous que vous disposez du programme mpg123 car LiveIce en a besoin. Il y a deux façons de configurer LiveIce~: en éditant le fichier de configuration avec vi/emacs ou en utilisant l'outil de configuration basé sur Tk, ce qui est une façon très agréable de l'éditer :-) Le meilleur endroit où sont décrits les détails internes du fichier de configuration liveice.cfg est la page de LiveIce où Scott couvre l'ensemble des options. Ceci est une copie de mon fichier de configuration avec LiveIce positionné en mode mixer (diffusion à partir d'une liste de MP3). NOTE~: j'ai ajouté des commentaires au fichier, donc, si vous voulez faire du copier-coller, assurez-vous que les commentaires ne débordent pas sur une nouvelle ligne ou sinon LiveIce ne fonctionnera pas :-) <code> # Fichier de configuration liveice # Généré automatiquement SERVER megajukebox # Le nom de votre serveur * DOIT ETRE LE NOM DE RESOLUTION DU SERVEUR * PORT 8000 # Le port que le serveur Icecast écoute NAME Megajukebox # Des informations concernant le nom de votre serveur qui seront envoyées # aux lecteurs de MP3 et au serveurs de répertoires. # Par exemple, 'Sarah FM' ou 'ThisTown: Loud and Heavy Jazz - Internet Radio 24/7' GENRE Live # Des informations concernant le genre. Par exemple 'Talk' ou 'Dance' DESCRIPTION # Des informations concernant la station. Par exemple 'The best for reggae in the North' URL http://megajukebox:8000 # L'URL et le port du serveur PUBLIC 0 # Positionner à 1 si vous voulez que Icecast annonce votre station et ses détails # sur un serveur de répertoires, sinon laisser à 0 XAUDIOCAST_LOGIN # Peut être soit ICY_LOGIN ou X_AUDIOCAST_LOGIN. X_AUDIOCAST est préférable. MOUNTPOINT /techno # Positionne le point de montage du flux pour Icecast. A n'utiliser que si l'option X_AUDIOCAST est utilisée # sinon laisser la valeur par défaut icy_0 PASSWORD hackme # Mot de passe de l'administrateur Icecast SAMPLE_RATE 44100 # La fréquence du flux STEREO # Peut être MONO ou STEREO NO_SOUNDCARD # Voir ci-dessous HALF_DUPLEX # Positionne la carte son en mode duplex. Peut être HALF_DUPLEX ou FULL_DUPLEX USE_GOGO # Positionne l'encodeur à utiliser. Consulter le fichier README pour la liste complète. BITRATE 128000 # Positionne le débit du flux (voir ci dessous) VBR_QUALITY 1 # Positionne la qualité du débit variable (VBR) MIXER # Voir ci dessous PLAYLIST /megajukebox/playlist # Emplacement de la liste de MP3 (voir les détails sur la commande find plus loin dans ce chapitre) TRACK_LOGFILE track.log # Nom et emplacement du fichier où envoyer la liste des MP3 diffusés </code> Une fois que vous avez votre fichier de configuration, vous pouvez démarrer LiveIce ainsi~: <code> [dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 1 opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 44100Hz Stereo Output Format: 256000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /techno Name: megajukebox - this and that radio - broadcasting 24/7 Genre: Techno Url: http://megajukebox.com Description: a load of digital noise -> but i know you like it :) Press '+' to Finish adding /megajukebox/demotunes/track_1.mp3 adding /megajukebox/demotunes/track_2.mp3 adding /megajukebox/demotunes/track_3.mp3 adding /megajukebox/demotunes/track_4.mp3 /megajukebox/demotunes/track_4.mp3 Adding New Channel 1 Adding New Channel 2 Channel 1 selecting /megajukebox/demotunes/track_1.mp3 Channel 2 selecting /megajukebox/demotunes/track_1.mp3 Playing track_1.mp3 searching for Id3v2 searching for Id3v1 copying the data fixing the nulls adding the url closing input file Using log track.log </code> La dernière ligne est un indicateur de crêtes. Il y a plusieurs touches de contrôle pour le mode mixer~: <code> Action Touche Canal 1 Touche Canal 2 ~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ Sélectionne la piste suivante sur le canal 1 a Sélectionne la piste précédente sur le canal q z Démarre/Arrète le canal 2 s Réinitialise le canal w x Augmente le volume sur le canal 3 d Diminue le volume sur le canal e c Augmente la vitesse sur le canal 4 f Diminue la vitesse sur le canal r v Mode Sticky Activé/Aléatoire/Désactivé 5 g Prévisualisation du canal t b Piste aléatoire u m </code> Le fichier de configuration liveice.cfg est prévu pour le mode mixer. Pour utiliser LiveIce en mode audio, changez la ligne relative à MIXER en NOMIXER et changez la ligne NO_SOUNDCARD en SOUNDCARD et redémarrez LiveIce. Tout oubli de positionner les options correctement amènera à des avertissements intéressants ;-) <code> 946:Error: Line In mode *and* no soundcard??????? Eeejit! </code> Une fois que tout est positionné correctement et que vous avez placé la source externe, vous devriez être capable de diffuser de la musique =:-) <code> [dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 0 Initialising Soundcard 16Bit 22050Hz Stereo Full Duplex opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 22050Hz Stereo Output Format: 32000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /daves_band_live_at_the_club Name: megajukebox - Dave and the Dynamite - Live at the Roxy Genre: Live/Rock Url: http://megajukebox Description: megajukebox::Louder than a frog in a trashcan..... and almost as musical Press '+' to Finish Lvl: L: 8704 R: 11776 </code> La dernière ligne est un indicateur de niveau du signal, si le signal est trop fort, vous obtiendrez un avertissement *clip*. Si tel est le cas, réduisez le gain de la source en entrée. Ceux d'entre vous dotés d'une vue perçante ont pu remarquer que dans le fichier de configuration liveice.cfg, les première lignes commentées indiquent que le fichier a été généré automatiquement. Si vous utilisez l'interface en Tk liveiceconfigure.tk et que vous avez fait des changements à la main au fichier d'origine, vous les perdrez quand vous sauverez. Utilisez soit uniquement l'interface ou apprenez vi/emacs :-) <sect1>Fluid <p> Après avoir décompressé l'archive, placez vous dans le répertoire et n'oubliez pas de lire le fichier README :-) Fluid possède trois modes principaux de fonctionnement~: la transmission, le relai et le transfert. Je ne vais détailler ici que la transmission. Les fichiers de configuration associés à la transmission sont situés dans config/MP3TX.cfg. Pour tester le server, lancez-le avec les options suivantes, à ce moment-là, les valeurs des paramètres par défaut devraient êtres correctes~: <code> java Fluid TX </code> Naturellement vous devez avoir Java d'installé auparavant sous une forme ou une autre. Vous pouvez utiliser le portage de Blackdown du JDK disponible à partir de <url url="http://www.blackdown.org"> ou Keffe si vous utilisez Redhat. Fluid est livré avec quelques fichiers MP3 de test, donc si tout fonctionne, vous devriez voir quelque chose de similaire à ceci (j'ai lancé le serveur en utilisant Kaffe pour cette exemple, vous pouvez avoir à le lancer en utilisant java)~: <code> [dj@megajukebox Fluid-Beta2J]$ kaffe Fluid tx ------- Fluid Streaming Server Beta 2 ------- This program is ShareWare(tm) and it will not be crippled in any way because of it. However if you do like the program and will use it commercial purposes, we ask of you to contact us at the address below for pricing info: Eldean AB E-mail: Sjoangsvagen 7 fluid@subside.com S-192 72 Sollentuna SWEDEN Fluid is Copyright Subside (C) 1998 written by Lars Samuelsson http://www.subside.com --------------------------------------------- * Transmission mode * Reading config from: config/MP3TX.cfg Reading playlist: playlist.m3u Server started on port: 2711 Accepting administrator login on port: 2710 P| Dr. Nick - Hello Everybody </code> Si vous arrivez jusque là, il semble que tout fonctionne, mais je suis certain que vous préféreriez diffuser plus que de simples fichiers de tests~! Vous devez créer une liste de MP3 que vous désirez diffuser. Il s'agit d'une liste fixe que les utilisateurs ne pourront pas modifier ou faire de requêtes précises. Cette liste est nommée playlist.m3u et est située par défaut dans le répertoire racine. Pour créer une liste de tous les fichiers MP3 d'un répertoire particulier (ou d'un disque), utilisez la commande suivante~: <code> find [MP3 directory] -name "*.mp3" -print > playlist.m3u </code> Par défaut, le serveur utilise le port 2711, qui est celui sur lequel se connectent les programmes clients. Si vous désirez le changer, ceci peut être fait dans le fichier de configuration. Le serveur peut être administré à distance en invoquant ainsi un telnet sur le port d'administration, par défaut le port 2710~: <code> [dj@megajukebox Fluid-Beta2J]$ telnet localhost 2710 Trying 127.0.0.1..megajukebox Connected to localhost.localdomain. Escape character is '^]'. jaguar You are connected to the -Fluid- Streaming Server Type "help" for a command reference help The following commands are available: help conn curr exit curr Information about the currently broadcasted song: Title: Beer Talk Artist: Homer Simpson Album: The Simpsons Year: 1996 Comment: Borrowed this as an example Genre: Comedy </code> La référence à "jaguar" est le mot de passe par défaut. Il n'y a pas d'indication de demande du mot de passe, donc n'attendez pas à en avoir une~! Je vous conseille de changer le mot de passe positionné par défaut sinon vous vous exposez à une intrusion~! Ceci peut être changé dans le fichier de configuration qui ressemble à ceci~: <code> [dj@megajukebox config]$ cat MP3TX.cfg 2711 2710 5 4096 32 1000 jaguar playlist.m3u current.txt # --- Les lignes sont --- # 1. numéro du port (que le serveur utilise) # 2. numéro du port (pour administrer le serveur à distance) # 3. Nombre de connexions (que le serveur peut accepter) # 4 Taille des paquets lors des lectures/envois (en octets) # 5. Débit des MP3 en ko/s (tous les MP3 doivent avoir le même débit) # 6. Délai entre les chansons (en millisecondes) # 7. Mot de passe pour l'administration à distance # 8. Nom de la liste (liste au format .m3u) # 9. Nom du fichier dans lequel écrire les informations de la chanson (à partir des marques ID3) </code> Dire que la liste doit être au format m3u veut dire qu'elle doit être dans le même format que celui produit par la commande find citée auparavant. <sect2>Mise à jour pour la version RC1 de Fluid <p> Fluid a été mis à jour et a été diffusé sous licence GPL (Vas-y Lars~!) Voici les principales différences~: <p> <itemize> <item>Un nouveau format pour le fichier fluid.config <item>Un ouveau port par défaut 4711 <item>Une nouvelle méthode pour démarrer et arrêter le programme. Fluid utilise maintenant les scripts <em/fluid.start/ et <em/fluid.stop/ <item>Le code source est maintenant inclus dans le paquet. Super~! </itemize> <sect1>Litestream <p> Litestream est semblable à Icecast dans son fonctionnement. Le système est composé d'un serveur de diffusion et d'une source. Pour démarrer le serveur de diffusion, exécutez la commande avec le format suivant~: <code> [dj@megajukebox]$ litestream <source port> <stream host> <stream port> <max listeners> <log ident> [<yp host> <yp port>] </code> Les options sont les suivantes~: <em/source port/ C'est le numéro du port auquel vous connectez la source 'audio'.<p> <em/stream host/ Il s'agit de l'adresse IP ou nom complet (FQDN) de votre serveur. Vous pouvez la déterminer avec la commande hostname pour le nom de domaine ou par un cat /etc/hosts pour l'adresse IP.<p> <em/stream port/ C'est le numéro du port auquel les clients doivent se connecter.<p> <em/max listeners/ Il s'agit du nombre maximum de clients pouvant se connecter à votre serveur.<p> <em/log ident/ Les messages d'information seront écrits dans le fichier /var/log/messages. <log ident> est une chaîne de caractère utilisée pour identifier le serveur Litestream.<p> Par exemple, si vous utilisez la chaîne ident 'Litestream', les messages du serveur dans le fichier /var/log/messages seront semblables à~: <code> Sep 18 19:32:20 linux Litestream[1901]: stream.c:555: main: 'server started' </code> <em/yp host & yp port/ Ces 2 options spécifient l'hôte et le port d'un serveur yp (ou NIS) utilisé pour annoncer votre serveur aux serveurs de répertoires. Voici un exemple~: <code> [dj@megajukebox]$ litestream 5000 megajukebox 5555 1000 LitestreamServer </code> Cette partie est pour le système serveur. Une fois démarré, il attend qu'une source audio lui soit connectée, ce qui se fait avec la commande source. <p> Le format est tel que~: <code> source <ip or hostname> <port> <name> <genre> <url> <irc> <icq> <aim> <public? (0, 1)> <reported bitrate (16, 18, 56, 128, etc.)> <playlist.txt> <log ident> </code> Voici ci-dessous la liste des options pour la commande source~:<p> <em/ip or hostname/ est le nom d'hôte ou l'adresse IP de l'ordinateur faisant touner le serveur Litestream. <p> <em/port/ est le port sur lequel le serveur Litestream attend une source de diffusion. <p> <em/name/ est le nom de votre flux. <p> <em/genre/ est le genre de votre flux. <p> <em/url/ est l'URL de la page web de votre flux. <p> <em/irc/ est le channel IRC de votre flux. <p> <em/icq/ est votre identifiant ICQ. <p> <em/aim/ est votre identifiant AIM. <p> <em/public/ est positionné à 0 ou à 1. 0 pour privé, 1 pour publique. <p> <em/reported bitrate/ est le débit du flux qui sera indiqué au serveur YP. Ceci ne reflète pas nécessairement le débit réel de votre flux. <p> <em/playlist.txt/ est le nom du fichier contenant la liste de MP3. <p> <em/log ident/ est l'identifiant syslog qui précèdera chaque message d'information généré par la source de diffusion Litestream. <p> Voici un exemple de la commande Litestream présentée ci-dessus~: <code> [dj@megajukebox]$ source megakukebox 5000 'Megajukebox The best jukebox ever' Various http://www.megajukebox.com \#megajukebox 0 N/A 1 128 /jukebox/playlist LitestreamSource </code> <sect1> Apache::MP3 Module <p> Le module Apache::MP3 permet au serveur Apache de diffuser des MP3. Il n'offre pas le même niveau de fonctionnalités que les serveurs Fluid, Litestream et Icecast. Ce module dépend des modules MP3::Info et mod_perl, lesquels sont tous deux disponibles sur le site du CPAN. Après avoir récupéré les fichiers nécessaires, lire le fichier README vous aidera certainement~! Tout d'abord, compilez le module, puis faites les changements au fichier de configuration d'Apache (ces changements devront être faits soit dans le fichier httpd.conf ou dans le fichier srm.conf). Vous devez également créer les répertoires pour les icônes et une arborescence de répertoire pour les MP3. La section 6 du fichier README détaille l'édition (ou la création) d'un fichier de configuration Perl. Ceci est nécessaire pour précharger le module MP3::Info sans lequel il peut faire planter le serveur Apache. Dans le fichier httpd.conf, créez une entrée comme ceci~: <code> Perlrequire /etc/httpd/conf/startup.perl </code> Modifiez la référence /etc/httpd/conf pour pointer sur l'endroit où sont stockés les fichiers de configuration Apache sur votre système. Créez maintenant le fichier startup.perl à l'emplacement spécifié ci-dessus. Vous devriez avoir au minimum les lignes suivantes (vous devriez ici aussi ajuster l'emplacement du programme perl selon la configuration de votre système). <code> [dj@megajukebox conf]$ cat /etc/httpd/conf/startup.perl #!/usr/bin/perl use MP3::Info(); </code> Redémarrez ensuite le serveur Apache et positionnez votre navigateur web vers l'un de vos nouveaux répertoires de MP3 :-) Vous pourrez obtenir plus de documentation sur le module Apache::MP3 en exécutant la ligne suivante sur la ligne de commande~: <code> [dj@megajukebox conf]$ perldoc Apache::MP3 </code> <sect1>Outrepasser un pare-feu <p> Une grande quantité de sociétés et d'administrations utilisent des systèmes pare-feux pour empêcher les utilisateurs de se connecter sur des serveurs distants sur certains ports.<p> Une façon d'outrepasser ceci est d'exécuter votre serveur de MP3 en utilisant le port 80. Il ne sera plus possible alors d'avoir un serveur web sur la même URL ou la même adresse IP. En lançant Icecast en mode 'Outrepasser le pare-feu', vous devrez alors lancer shout en utilisant l'option positionnant le port à 80, ainsi~: <p> <code> [dj@megajukebox bin]$ ./shout megajukebox -e 80 -P hackme -p ../playlist </code> <sect1>Considérations de bande passante <p> Diffuser de l'audio peut consommer des quantités importantes de bande passante si le débit des serveurs de MP3 est trop élevé. Considérons, par exemple, ce scénario. Une liaison T1 possède une capacité d'environ 1,55~Mo/s. Si vous diffusez vos MP3 en 128~kb/s stéréo, chaque lecteur connecté utilisera 256~kb/s, ainsi 6 utilisateurs seulement pourront se connecter à votre serveur MP3 en même temps sans problème. Et à ce débit, vous n'aurez guère d'utilisateurs se connectant par modem~! Vous devez donc prendre une décision concernant non seulement le débit auquel votre serveur est connecté à l'Internet, mais aussi celui auquel vos utilisateurs seront connectés. 24~kb/s stéréo semble donner une qualité de signal raisonnable auquel même les utilisateurs possédant un modem 56K pourront se connecter et qui autorise environ 32 connexions simultanées par la liaison T1 évoquée plus haut. Si votre serveur tourne sur un intranet, les problèmes de bande passante peuvent encore être à considérer, spécialement si votre réseau fonctionne en 10~Mb/s. Mais n'oubliez surtout pas de prévenir votre FAI ou votre administrateur système que vous allez faire de la diffusion, sinon vous pourriez avoir une mauvaise surprise. Certains FAI peuvent vous faire payer la bande passante au-delà d'une certaine limite et les administrateurs systèmes aiment bien savoir pourquoi leur réseau ralentit :-) <sect1>Problèmes de copyright <p> Je pense qu'il est sensé de supposer que les compagnies de disques n'aimeraient pas que vous fassiez de la diffusion audio sans leur permission ou sans paiement d'aucune sorte~! Alors, qu'avez-vous le droit de diffuser~? Il s'agit d'une partie dans laquelle vous devez être conscient des ramifications légales car c'est vous qui serez légalement responsable. Voici deux liens, l'un de l'Electronic Frontier Foundation (EFF) qui milite pour réduire les restrictions concernant la technologie. L'autre lien est celui de la Recording Industry Association of America (RIAA), qui cherche à protéger les droits des artistes contre le piratage. Je vous suggère fortement de visiter ces deux sites, ainsi que d'autres plus spécifiques à votre localisation physique. <url url="http://www.eff.org/cafe/"> <url url="http://www.riaa.com/weblic/weblic.htm"> <!-- Lien invalide pour la RIAA --> NdT~: on peut citer en France le site de la SACEM <url url="http://www.sacem.org"> pour la protection des droits d'auteurs des artistes et celui de l'AFUL <url url="http://www.aful.org"> pour la défense des libertés des citoyens par rapport aux nouvelle technologies (en plus de promouvoir les logiciels libres). <sect>Ecouter des MP3 <p> Maintenant, vous devriez (on l'espère du moins) avoir quelques fichiers MP3 prêts à lire et vous devriez avoir le choix de lire les fichiers ou les flux de MP3. <sect1>Lire à partir de fichiers <p> Lire à partir d'un fichier est à peu de chose près identique avec tous les lecteurs. La seule différence importante est que certains sont basés sur la ligne de commande et d'autres sur une interface graphique. Lire un fichier MP3 demande généralement de fournir en paramètre le nom du fichier, comme ceci~: <code> [dj@megajukebox]$ mpg123 /mp3_files/SampleFile.mp3 ou [dj@megajukebox]$ xaudio /mp3_files/SampleFile.mp3 </code> Si vous désirez jouer une série de fichiers, passez-les tous dans une liste~: <code> [dj@megajukebox]$ alsaplayer /mp3_files/SampleFile1.mp3 /mp3_files/SampleFile2.mp3 </code> Pour lire toutes les chansons d'un répertoire, il suffit de passer les fichiers par le caractère générique ainsi~: <code> [dj@megajukebox]$ xmms /mp3_files/*.mp3 </code> Lire un flux de fichier MP3 est relativement simple, remplacez simplement le nom du fichier par l'URL du flux et son numéro du port~: <code> [dj@megajukebox]$ mpg123 http://localhost:8000 ou [dj@megajukebox]$ freeamp http://megajukebox:2711 </code> <sect1>Capturer des flux MP3 <p> Un flux provenant d'un serveur MP3 peut être capturé et sauvé localement en utilisant le programme suivant~: <sect2>Streamripper <p> Pour capturer un flux MP3 en utilisant Streamripper, exécutez la commande suivante~: <code> [dj@megajukebox]$ streamripper -h megajukebox -p 8000 Press CTRL-C to stop name: Megajukebox reponse: 200 genre: Megajukebox url: http://www.megajukebox.com/ bitrate: 128 This stream contains no meta data, ripping as one large ass track 1st track ripped socket error: : Success </code> Voici une liste des options disponibles. <code> [dj@megajukebox]$ streamripper Usage: streamripper -h <host> -p <port> [-d dir] Options: -h <host> - Nécessaire~: Nom de l'hôte -p <port> - Nécessaire~: Numéro de port de l'hôte, habituellement 8000 -d <dir> - Optionnel~: Le répertoire de destination -l <logfile> - Optionnel~: Envoie tout vers le fichier journal <logfile> -v - Optionnel~: Mode verbeux -c - Optionnel~: Ne pas afficher le compteur de status -q - Optionnel~: Mode discret, ne pas créer les fichiers MP3 -s - Optionnel~: Envoyer le flux vers la sortie standard stdout pour mpg123 -n - Optionnel~: Attendre la prochaine piste avant écriture -o - Optionnel~: Créer un répertoire avec le nom du flux en sortie </code> <sect2>wget <p> Pour sauver un flux en utilisant wget~: <code> [dj@megajukebox]$ wget http://megajukebox:8000 -O download01.mp3 --13:41:41-- http://megajukebox:8000/ => `download01.mp3' Connecting to megajukebox:8000... connected! HTTP request sent, awaiting response... 200 OK Length: unspecified [audio/mpeg] 0K -> .......... .......... .......... .......... .......... 50K -> .......... .......... .......... .......... .......... 100K -> .......... .......... .......... .......... .......... 150K -> .......... .......... .......... .......... .......... 200K -> .......... .......... .......... .......... .......... 250K -> .......... .......... .......... .......... .......... 300K -> .......... .......... .......... .......... .......... 350K -> .......... .......... .......... .......... .......... 400K -> .......... .......... .......... .......... .......... 450K -> .......... .......... .......... .......... .......... 500K -> .......... .......... .......... .......... .......... </code> <sect1>Mixage<p> <sect2>eMixer<p> eMixer vous donne la possiblité de mixer des MP3 de façon semblable à une table de mixage de DJ. Les nouvelles versions supportent 2 cartes sons si bien que vous pouvez émettre votre mixage sur une carte et gérer ou poser des marques sur la piste suivante sur l'autre carte. Comme à l'habitude, une fois que vous avez décompressé l'archive, lisez le fichier README pour savoir comment installer le programme. Vous aurez besoin de créer une liste de fichiers MP3, ce que vous pouvez faire avec la commande find citée dans la section Diffusion de MP3 sur un réseau. Vous devrez avoir installé auparavant le programme mpg123 avant de pouvoir lancer eMixer. Voici les touches de contrôles (tirées du fichier README)~: <code> TOUCHES DE CONTROLES "up, down" parcourt la liste "page up, page down" parcourt la liste écran par écran "enter" démarre/arrète la lecture de la piste "tab" change le canal "}","]" bascule entre les contrôles/fenêtres de volume et de vitesse "space" redémarre la piste active "left, right" contrôle l'atténuateur "insert" diminue le volume/la vitesse sur le canal un "home" augmente le volume/la vitesse sur le canal un "delete" diminue le volume/la vitesse sur le canal deux "end" augmente le volume/la vitesse sur le canal deux "< , / , >" position ajustée à droite, au centre, à gauche de l'atténuateur " + , = " (NOUVEAU) bascule entre les atténuateurs " q " démarre/arrète le canal un " w " démarre/arrète le canal deux " p " bascule entre les modes d'écoute - simple, boucle, continue, aléatoire " a " arrète tous les canaux " f " menu fichier " u " menu utilitaire " h " menu aide " ~, ` " annule l'ouverture du menu " s " active la lecture SIM (la lecture SIM démarre la même piste sur les deux canaux en même temps) </code> <sect2>GDAM<p> GDAM est un mixer graphique avec un large éventail d'effets intégré et temps réels. <sect>Edition des marques ID3 <p> Les marques ID3 sont des champs d'information sur la chanson contenus dans les données du fichier MP3 tels que le nom de l'artiste, l'album d'où provient la chanson, etc. Des éditeurs vous permettent d'afficher et d'éditer ces informations.<p> <sect1>id3ed<p> <code> [dj@megajukebox]$ id3ed id3ed v1.10 - mpeg layer 3 file information editor Usage: id3ed [-s songname] [-n artist] [-a album] [-y year] [-c comment] [-k tracknum] [-g genre] [-q] [-SNAYCKG] [-l/-L] [-r] [-i] <mp3files> [-v] -q Pas d'interface en ligne ; positionne seulement les marques spécifiés sur la ligne de commande. Utilisée deux fois, cette option supprime tous les messages excepté les erreurs. -SNAYCKG Affiche une invite pour éditer seulement la marque spécifique. Les autres marques peuvent toujours être éditées avec les options -[snaycg]. -l/-L Affiche la liste des genres -r Supprime les marques ID3 des fichiers -i Affiche les marques ID3 sans les modifier -v Affiche la version et la licence du programme </code> <code> [dj@megajukebox MyBand]$ id3ed track01.mp3 File track01.mp3: (tag v1.1) songname[max:30]: Our Kick Ass Demo artist[max:30]: Us album[max:30]: White Album year[max:4]: 1999 comment[max:28]: Will be a classic some day! tracknum[max:3]: 1 genre[0-255/name]: 5 </code> Si nous voulons maintenant afficher les informations ID3 de la piste, nous lançons id3ed avec l'option -i ainsi~: <code> [dj@megajukebox MyBand]$ id3ed -i track01.mp3 track01.mp3: (tag v1.1) songname: Our Kick Ass Demo artist: Us album: White Album year: 1999 comment: Will be a classic some day! tracknum: 1 genre: Funk(5) </code> <sect1>mp3info <p> MP3info travaille de façon similaire à id3ed, voici un extrait du manual~: <code> SYNOPSIS mp3info [ -option < value > ] filename[s]... DESCRIPTION Il s'agit d'un petit outil pour récupérer et positionner les informations des MP3. OPTIONS -T Ne PAS récupérer les marques ID3. A utiliser pour les médias d'accès lents car les marques sont situées à la toute fin du fichier MP3 -s <0/1> Afficher les informations. Vraiment obsolète, car cette option devrait toujours être activée. Par défaut à 1. -f <format> Format de la chaîne de caractères affichée. Voir le fichier README pour plus de détails. -F <Formatnumber> Format prédéfini pour la chaîne de caractère affichée. Essayez l'option. -w Ecrire les marques ID3 à la fin du fichier. -W Supprimer les marques ID3. Est prioritaire sur toutes les options concernant les marques ID3 et positionne l'option -s à désactivée. Pour à la fois supprimer les marques ID3 et afficher les informations, utilisez -W -s 1 -n <name> Positionne le titre de la chanson. Induit l'option -w. Cette option devrait être supprimée sous peu, utilisez plutôt l'option -t à la place. -t <name> Positionne le titre de la chanson. Alias de l'option -n. Induit l'option -w. -a <artist> Positionne le nom de l'artiste. Induit l'option -w. -l <album> Positionne le nom de l'album. Induit l'option -w. -y <year> Positionne l'année de publication. Induit l'option -w. -c <comment> Positionne le commentaire. Induit l'option -w. -g <genre> Positionne le numéro du genre. Induit l'option -w. -G <genrename> Positionne le genre par son nom. Induit l'option -w. </code> <sect1>Codes des genres ID3<p> ID3 utilise un code pour référencer les genres de musique, voici une liste des codes extraite de <url url="http://www.id3.org/id3v2-00.txt">. <p> <code> Les genres suivants sont définis dans la norme ID3v1 : 0.Blues 1.Classic Rock 2.Country 3.Dance 4.Disco 5.Funk 6.Grunge 7.Hip-Hop 8.Jazz 9.Metal 10.New Age 11.Oldies 12.Other 13.Pop 14.R&B 15.Rap 16.Reggae 17.Rock 18.Techno 19.Industrial 20.Alternative 21.Ska 22.Death Metal 23.Pranks 24.Soundtrack 25.Euro-Techno 26.Ambient 27.Trip-Hop 28.Vocal 29.Jazz+Funk 30.Fusion 31.Trance 32.Classical 33.Instrumental 34.Acid 35.House 36.Game 37.Sound Clip 38.Gospel 39.Noise 40.AlternRock 41.Bass 42.Soul 43.Punk 44.Space 45.Meditative 46.Instrumental Pop 47.Instrumental Rock 48.Ethnic 49.Gothic 50.Darkwave 51.Techno-Industrial 52.Electronic 53.Pop-Folk 54.Eurodance 55.Dream 56.Southern Rock 57.Comedy 58.Cult 59.Gangsta 60.Top 40 61.Christian Rap 62.Pop/Funk 63.Jungle 64.Native American 65.Cabaret 66.New Wave 67.Psychadelic 68.Rave 69.Showtunes 70.Trailer 71.Lo-Fi 72.Tribal 73.Acid Punk 74.Acid Jazz 75.Polka 76.Retro 77.Musical 78.Rock & Roll 79.Hard Rock LEs genres suivants sont des extensions de Winamp : 80.Folk 81.Folk-Rock 82.National Folk 83.Swing 84.Fast Fusion 85.Bebob 86.Latin 87.Revival 88.Celtic 89.Bluegrass 90.Avantgarde 91.Gothic Rock 92.Progressive Rock 93.Psychedelic Rock 94.Symphonic Rock 95.Slow Rock 96.Big Band 97.Chorus 98.Easy Listening 99.Acoustic 100.Humour 101.Speech 102.Chanson 103.Opera 104.Chamber Music 105.Sonata 106.Symphony 107.Booty Bass 108.Primus 109.Porn Groove 110.Satire 111.Slow Jam 112.Club 113.Tango 114.Samba 115.Folklore 116.Ballad 117.Power Ballad 118.Rhythmic Soul 119.Freestyle 120.Duet 121.Punk Rock 122.Drum Solo 123.A capella 124.Euro-House 125.Dance Hall </code> <sect>Conversion MP3 vers Minidisc. <p> <em/Par Afra <afra@prongs.org> </em> Pour enregistrer des MP3 à partir de Linux vers votre Minidisc, il existe deux méthodes~: analogique et numérique. Chaque méthode dépend du type de carte son dont vous disposez sur votre système Linux. La principale différence entre les enregisrements analogiques et numériques tient dans la qualité sonore que vous atteindrez pendant l'enregistement. Avec un enregistement analogique, il est possible que vous entendiez des bruits statiques ou flous, bien que la plupart des cartes analogiques tentent de minimiser ces effets. N'allez pas croire que, parce que vos n'avez qu'une carte son analogique, vous êtes condamné, parce que ce n'est pas le cas. C'est juste qu'il vous faudra passer un peu de temps à essayer de minimiser les bruits indésirables en ajustant les paramètres du mixeur. <p> Aucun logiciel spécifique n'est nécessaire, un simple lecteur de MP3 suffit pour votre système Linux. Fondamentalement, les deux méthodes nécessitent une connexion entre la sortie de votre carte son et l'entrée de votre Minidisc. <sect1>Enregistrement analogique <p> Si votre carte son ne dispose pas d'une sortie "Digital Out", vous pouvez vouloir utiliser l'enregistrement analogique. <p> Pour enregistrer un fichier MP3 de votre système Linux vers votre Minidic, connectez un cordon de la sortie de votre carte son Line Out vers l'entrée de votre Minidisc Line In. Positionnez votre Minidisc en mode enregistrement comme vous le feriez habituellement et lisez le fichier MP3. Vous devriez noter que les niveaux d'enregistrements du Minidisc augmentent. Après la lecture, il est possible que vous notiez un petit ou un grand volume de bruit statique dû à votre carte son. <p> Pour réduire le bruit statique pendant l'enregistrement, gardez les niveaux d'enregistrement et de volume dans la zone des -3~dB à 0~dB. Pour atténuer le bruit, vous pouvez essayer de positionner votre Minidisc en mode d'enregitrement, mais sans lire le fichier MP3. Vous devriez encore entendre le bruit et pouvez alors jouer sur les effets du mixeur pour le réduire. <p> <sect1>Enregistement numérique <p> Vous obtiendrez un son de meilleur qualité avec un enregistrement numérique. Connectez votre cable optique (si vous devez en acheter un, la taille du Minidisc et celle du port de la carte sont importantes, il s'agit souvent de 3,5~mm, mais vérifiez les manuels utilisateurs de la carte son et du Minidisc) à la sortie Digital Out de la carte son. <p> Le cable devrait alors clignoter à l'autre bout, ce qui est un bon signe. Connectez maintenant l'extrémité clignotante à l'entrée Digital Input de votre Minidisc. Positionnez votre Minidisc en mode enregistrement et lisez le fichier MP3 sur votre ordinateur. <p> <sect1>Liste de MP3 <p> C'est un problème lorsque vous lisez une liste de MP3~: comment votre Minidisc saura-t-il quand positionner une marque automatique quand une piste passe à une autre (c'est-à-dire changer de numéro de piste automatiquement)~? La solution est ce fichier MP3 que vous pouvez récupéré de <url url="http://www.prongs.org/minidisc/2sec.zip">. <p> Vous pouvez utiliser ce fichier qui est un fichier MP3 contenant 2 secondes de silence, en l'insérant avant chaque fichier MP3 de votre liste, ainsi le Minidisc saura comment faire le marquage automatique. <sect>Retours et commentaires <p> De nouveaux matériels et logiciels sortent sans cesse. Si vous utilisez des versions plus récentes du matériel et/ou des logiciels décrits dans ce HOWTO, ou si vous pouvez ajouter quoi que ce soit, envoyez-moi vos informations à <htmlurl url="mailto:phil@plus24.com" name="phil@plus24.com"> pour que je les rajoute à la prochaine version. Bons MP3 ! </article>