Page suivante - Page précédente - Table des matières

10. Encodage depuis un lecteur de CD-ROM

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.

10.1 Encodage en ligne de commande

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");

par
$enc = system("lame  /mp3/cdda.wav $track -b 256");

ou
$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

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

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>"

10.2 Encoder en mode graphique

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.

10.3 Performance des encodeurs

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.


Page suivante - Page précédente - Table des matières