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.
J'ai écrit un petit script Perl pour extraire et encoder des pistes d'un CD.
#!/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";
}
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
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
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 :
$cdcap = system("cdda2wav", $count, "/mp3/cdda.wav");
Les options sont $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
$enc = system("bladeenc /mp3/cdda.wav $track -br 256000");
$enc = system("lame /mp3/cdda.wav $track -b 256");
$enc = system("gogo /mp3/cdda.wav $track -b 256");
Voici une liste des options disponibles pour chacun de ces encodeurs :
Bladeenc
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.
Lame
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
Gogo
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
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 :
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 ?
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 :
[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)
Vous pouvez bien sur lui fournir des options sur la ligne de commande dont voici la liste :
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>"
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.
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.
[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
Il semble que gogo ait un algorithme mieux optimisé pour l'encodage que bladeenc ou lame.