Dernière modification 23 octobre 2005
Il fut un temps où les logiciels de gravure avaient besoin
que les
graveurs IDE se fassent passer pour des périphérique
SCSI.
Dans le cas d'une vieille distrib, voilà ce qu'il faut faire (ce
n'est plus nécessaire maintenant !). Pour vous en convaincre
vous n'avez qu'à taper
cdrecord --scanbus
Voilà le résultat sur une Mandriva LE2005
Cdrecord-Clone 2.01.01a01-dvd
(i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
Note: This version is an unofficial
(modified) version with DVD support
Note: and therefore may have bugs that
are not present in the original.
Note: Please send bug reports or
support requests to <warly@mandrakesoft.com>.
Note: The author of cdrecord should
not be bothered with problems in this version.
scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
#######################################
##################################################
#
# Warning: Using ATAPI via
/dev/hd* interface. Use dev=ATA:X,Y,Z or dev=/dev/hdX
#
#######################################
##################################################
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
scsibus1:
1,0,0 100) '_NEC ' 'DVD_RW ND-3520A '
'1.04' Removable CD-ROM
cdrecord: Warning: controller returns
wrong size for CD capabilities page.
1,1,0 101) ' ATAPI ' '52X
CDROM ' '1.40' Removable CD-ROM
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
On y voit mon lecteur de CD-ROM et le graveur de DVD
Voilà donc les manips à faire pour une vieille
distrib.
Pour
faire cela, votre noyau doit être configuré avec l'option
support
de l'émulation SCSI.
Voilà les manips que j'ai faites pour que mon lecteur de CD-ROM
IDE
soit reconnu comme un périphérique SCSI. J'ai d''abord
jeté
un coup d'oeil dans le fichier /var/log/messages
Jun 1 17:40:16 asterix kernel: hda: ST310220A, ATA DISK
drive
Jun 1 17:40:16 asterix kernel: hdb: IOMEGA ZIP 100 ATAPI,
ATAPI FLOPPY
drive
Jun 1 17:40:16 asterix kernel: hdc: Maxtor 90648D3, ATA DISK
drive
Jun 1 17:40:16 asterix kernel: hdd: ATAPI 52X CDROM, ATAPI
CD/DVD-ROM
drive
Jun 1 17:40:16 asterix kernel: ide0 at 0x1f0-0x1f7,0x3f6 on
irq 14
Jun 1 17:40:16 asterix kernel: ide1 at 0x170-0x177,0x376 on
irq 15
Jun 1 17:40:16 asterix kernel: hda: 19541088 sectors (10005
MB) w/512KiB
Cache, CHS=1216/255/63, UDMA(33)
Jun 1 17:40:16 asterix kernel: hdc: 12656448 sectors (6480 MB)
w/512KiB
Cache, CHS=12556/16/63, UDMA(33)
Jun 1 17:40:16 asterix kernel: hdd: ATAPI 48X CD-ROM drive,
128kB
Cache, UDMA(33)
Jun 1 17:40:16 asterix kernel: Uniform CD-ROM driver Revision:
3.12
Jun 1 17:40:16 asterix kernel: Partition check:
Jun 1 17:40:16 asterix kernel:
/dev/ide/host0/bus0/target0/lun0:
p1 p2 < p5 p6 p7 p8 >
Jun 1 17:40:16 asterix kernel:
/dev/ide/host0/bus1/target0/lun0:
[PTBL] [787/255/63] p1 < p5 p6 p7 >
Jun 1 17:40:16 asterix kernel: Floppy drive(s): fd0 is 1.44M
Jun 1 17:40:16 asterix kernel: FDC 0 is a post-1991 82077
On y voit que mon lecteur de CD-ROM est désigné par le
fichier
spécial hdd
Je vais modifier légèrement mon fichier /etc/lilo.conf
pour
y lire au lieu
image=/boot/vmlinuz
label=linux
root=/dev/hda5
initrd=/boot/initrd.img
append="quiet devfs=mount
hdb=ide-scsi"
vga=788
read-only
image=/boot/vmlinuz
label=linux-nonfb
root=/dev/hda5
initrd=/boot/initrd.img
append="devfs=mount
hdb=ide-scsi"
read-only
Cela
image=/boot/vmlinuz
label=linux
root=/dev/hda5
initrd=/boot/initrd.img
append="quiet devfs=mount
hdb=ide-scsi
hdd=ide-scsi"
vga=788
read-only
image=/boot/vmlinuz
label=linux-nonfb
root=/dev/hda5
initrd=/boot/initrd.img
append="devfs=mount
hdb=ide-scsi
hdd=ide-scsi"
read-only
A noter que le hdb correspond à mon lecteur ZIP
On relance lilo en tapant simplement
lilo
Si vous utilisez grub au démarrage vous pouvez toujours éditer le fichier /boot/grub/menu.lst et le modifiez comme suit en rajoutant hdd=ide-scsititle linux
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 vga=788 hdd=ide-scsi
initrd (hd0,4)/boot/initrd.img
Dans le fichier /etc/modules.conf, j'ai rajouté les lignes suivantes:
options ide-cd
pre-install sg modprobe ide-scsi
Sur ma mandrake 8.2, j'ai supprimé la ligne suivante dans le même fichier
probeall scsi_hostadapter ide-scsi
Et voilà après un reboot tapez
cdrecord -scanbus
Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002
Jörg
Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.6'
scsibus0:
0,0,0
0) 'IOMEGA ' 'ZIP
100
' '23.D' Removable Disk
cdrecord: Warning: controller returns wrong size for CD capabilities
page.
0,1,0
1) ' ATAPI ' '52X CDROM '
'1.40'
Removable CD-ROM
0,2,0
2) *
0,3,0
3) *
0,4,0
4) *
0,5,0
5) *
0,6,0
6) *
0,7,0
7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104)
'IMS
' 'CDD2000/00 ' '1.26' Removable CD-ROM
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
On y voit bien mon lecteur de CD-ROM IDE.
ATTENTION Mon lecteur de CD-ROM n'est plus désigné par /dev/hdd mais par /dev/scd1 (scd0 étant pris par mon graveur), pour le montage de CD-ROM j'ai du modifier /etc/fstab et remplacer les occurences de /dev/hdd par /dev/sdc1.
make INS_BASE=/usr/local install
Vous pouvez aussi bien l'installer par package (urpmi cdrecord)#!/bin/sh
# Key Expires ---> 2005 Oct 22 18:53:20
#
CDR_SECURITY=8:dvd,clone:sparc-sun-solaris2,i386-pc-solaris2,
i586-pc-linux,x86_64-unknown-linux,x86_64-pc-linux,powerpc-apple,hppa,
powerpc-ibm-aix,i386-unknown-freebsd,i386-unknown-openbsd,i386-unknown-netbsd,
powerpc-apple-netbsd,i386-pc-bsdi,mips-sgi-irix,i386-pc-sco,
i586-pc-cygwin:1.11::1130000000:::private/research/educational_non-commercial_use:a
mz80r0cFc22rStnPatPW6OJPHS44.xCl2LPIpyKt.SuICSsGTMY7YzsmFT
export CDR_SECURITY
exec cdrecord-ProDVD "$@"
cdrecord-wrapper.sh dev=/dev/hdd
-prcap
Vous remplacer /dev/hdd par
le fichier spécial de votre graveur. Voilà ce que
ça donne pour graver une image
cdrecord-wrapper.sh dev=/dev/hdd -v
-eject dvdimage.iso
A noter que vous pouvez créer dire à mkisofs de créer plusieurs
images d'1 Go, cdrecord
ensuite va les concaténer en une seule image, comme ceci
mkisofs -split-output -J -R -o
/maurice/cdimages /maurice/repertoire-de-donnees
cdrecord-wrapper.sh dev=/dev/hdd -v -eject /maurice/cdimages*
mkisofs -J -no-iso-translate -l -R -D -L -v -allow-multidot -o image-cd /alphonse/archive /roger/musique
Les paramêtres correspondent à:
-J extension Joliet pour pouvoir être lu sur un
système
Windows,
-no-iso-translate pour inclure tous les fichiers, y compris
ceux avec
des # ou des ~,
-l pour permettre les noms avec 32 caractères,
-R format Rock Ridge en conservant les droits et le
proprio/groupe
des fichiers
-D Do not use deep directory relocation (?),
-L pour prendre aussi les fichiers commençant avec un
point
".",
-v mode verbeux.
-allow-multidot pour permettre l'utilisation des noms
contenant
plusieurs points (du style archive.tar.gz)
-o on indique le nom du fichier image.
A noter que les fichiers dont l'extension se termine par ~ se
retrouvent
avec une extension du style.000;1.
mount -t iso9660 -o ro,loop=/dev/loop0 image-cd /mnt/cdrom
En considérant que /mnt/cdrom est le répertoire de montage de vos CD-ROM. En allant dans /mnt/cdrom vous devriez voir l'arborescence tel qu'elle devra être gravée sur le CD. N'oubliez pas de démonter l'image:
umount /mnt/cdrom
cdrecord -v speed=48 -dao dev=0,4,0 -data image_cd
Avec:
ATTENTION lisez les avertissements avant d'utiliser cdrecord
Vous avez besoin de l'outil cdda2wav qui est inclu dans le package cdrecord-cdda2wav que vous retrouvez en standard sur une Mandriva, il est également inclu dans le tarball de cdrecord.
NOTE En fait on peut s'arrêter à l'étape de la création des .wav, puis graver le CD, on verra plus bas que ce n'est pas toujours possible.
cdda2wav -B -D /dev/cdrom
A l'endroit où vous avez taper la commande, vous allez
trouver
les fichiers .wav identifiés: audio_01.wav,audio_02.wav...
avec leurs fichiers de description correspondant audio_01.inf, audio_02.inf...
Si vous voulez que les tracks soient identifiés par le nom de
son interprète
(mozart dans mon exemple (libre de droits...)), vous taperez:
cdda2wav -B -D /dev/cdrom mozart
Si maintenant vous voulez sélectionner vos tracks, vous disposez de l'option -t avec le numéro du track correspondant:
cdda2wav -t2 -D /dev/cdrom
Cette commande va extraire le deuxième track du disque. Vous avez toujours la possibilité de renommer votre .wav. Pour info pour une chanson de 3min, il faut compter dans les 40Mo
Pour info cdparanoia réalise la même fonction, mais en plus permet la correction des tracks un peu défectueux, n'hésitez donc pas si vous avez un CD-Audio un peu abimé. Voici sa syntaxe:
cdparanoia -v -w "2" beethoven-5symphonie.wav
Ici on extrait le 2eme track, qu'on va nommer beethoven-5symphonie.wav, -vpermet d'avoir le mode verbeux, -w génére un fichier au format .wav. Faites un man cdparanoia pour plus d'info.
Vous pouvez passer maintenant à l'étape graver le CD-Audio.
sox valse-des-fleurs.wav valse-des-fleurs.cdr
Et vous faites ainsi pour tous vos fichiers, quand vous avez obtenu
pour
un peu moins de 650Mo de données, vous pouvez passer à
l'étape
suivante, la gravure.
Pour aller plus vite, en admettant que tous vos fichiers .wav se
trouvent
dans le même répertoire, vous pouvez utiliser ce petit
script
wav2cdr:
#!/bin/bash
IFS=$(echo -e "\n\r\t")
for nom_wav in $(ls *.wav) ; do
echo "Traitement de
${nom_wav}"
sox "${nom_wav}"
"$(basename
${nom_wav} .wav).cdr"
rm -f "${nom_wav}"
done
mpg123 -s concerto5.mp3 > concerto5.cdr
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and
3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN
RISK!
Title :
None
Artist: None
Album :
None
Year :
Comment: Genre : Classical
Playing MPEG stream from concerto5.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
[4:00] Decoding of concerto5.mp3 finished.
L'option -s permet que le mp3 soit dirigé vers la sortie standard (en l'occurence le fichier placé après le >). Voilà un petit script qui permet de convertir des mp3 se trouvant dans un répertoire pour en faire des .cdr, je l'ai naturellement appelé mp3Tocdr
#!/bin/bash
IFS=$(echo -e "\n\r\t")
for nom_mp3 in $(ls *.mp3) ; do
echo "Traitement de ${nom_mp3}"
mpg123 -s "${nom_mp3}" > "$(basename
${nom_mp3}
.mp3).cdr"
rm -f "${nom_mp3}"
done
Cependant vos .cdr peuvent être rejetés par cdrecord pour la raison suivante:
cdrecord: Bad audio track size 62429184 for track 01.
cdrecord: Audio tracks must be at least 705600 bytes and a multiple
of
2352.
cdrecord: See -pad option.
En gros la taille du fichier doit être un multiple de 2352 octets. Dans ce cas rajoutez l'option -pad à cdrecord vous pouvez aussi également encoder vos mp3 en .wav puis ces derniers en .cdr.
Maintenant on va le configurer pour faire en sorte que le son ne sorte pas sur la carte son mais vers un fichier qui sera au format .wav. Vous cliquez avec le bouton droit de la souris dessus, options puis préférences, |
||
Au niveau de Output Plugin, il faut mettre "Disk Writer Plugin", puis en cliquant sur Configure, on choisit le répertoire où seront stockés les fichiers .wav. |
mplayer file.wma -ao pcm -aofile file.wav
Vous pouvez convertir ensuite votre fichier .wav en .mp3 par la suite avec bladeenc ou un outil équivalent. Voilà un petit script écrit en perl qui permet de convertir des wma en mp3 en se servant de lame (page outils de base pour la vidéo).
#!/usr/bin/perl -w
use strict;
foreach my $file (@ARGV) {
next if ($file !~
/\.wma$/i);
my $base = $file;
$base =~ s/\.wma$//i;
system "mplayer
\"$file\" -ao pcm -aofile \"$base.wav\"";
system "lame -h
\"$base.wav\" \"$base.mp3\"";
unlink("$base.wav");
print "$base.wma
converti en mp3.\n";
}
Encore plus simple cette ligne de commande permet de convertir vos wma en ogg.
for i in *.wma ;do mplayer -ao pcm -aofile "${i%.wma}.wav" "$i"; oggenc "${i%.wma}.wav"; rm "${i%.wma}.wav"; done
Sachez que les tracks audio doivent être des multiples de 2352 octets, si vous avez l'erreur suivante :
cdrecord: Audio tracks must be at least 705600 bytes and a multiple of 2352.
Vous devrez rajouter l'option suivante -pad à cdrecord pour des .wav à graver.
Attention si vous avez cette erreur avec des .cdr obtenus grâce àmpg123, n'essayez pas de les graver même avec l'option-pad, le CD sera illisible.
Graver des .cdr
Chez moi mon graveur SCSI se trouve à l'adresse 4 et a une vitesse pour graver de 2X, je tape donc la commande:
cdrecord -v -dao speed=48 dev=0,4,0 -audio marche.cdr danse-russe.cdr danse-arabe.cdr danse-chinoise.cdr ...
-v étant le mode "verbeux", les tracks vont être gravés dans l'ordre rentré lors de la saisie de la commande, si vous avez la flemme de tapez tous les noms des tracks, vous vous placez dans le répertoire où se trouve tous vos tracks et vous pouvez saisir:
cdrecord -v -dao speed=48 dev=0,4,0 -audio *.cdr
Dans ce cas vos tracks se trouveront sur le CD dans l'ordre
alphabétique
tels qu'ils apparaîssent en faisant un ll dans le
répertoire.
Pour info les .inf et .cddb
générés avec
cdda2wav ne sont pas nécessaires pour la gravure du
CD-Audio.
Mais je pense les utiliser par la suite pour avoir des infos sur les
tracks
quand on a un lecteur suffisamment intelligent.
NOTE Pour ne pas avoir à taper à chaque la commande cdrecordà rallonge, j'ai créé un petit script graveque j'ai placé sous /usr/sbin
#!/bin/bash
cdrecord -v -dao speed=48 dev=0,4,0 -audio *.cdr
Avec les droits 755. Pour le lancer je dois d'abord me placer dans le répertoire où se trouvent les .cdr.
Graver des .wav
Idem qu'avec des .cdr, il est souvent nécessaire de rajouter par contre l'option -pad, voici le script gravewav
#!/bin/bash
cdrecord -v -dao -pad speed=48 dev=0,4,0 -audio *.wav
Pour les versions de cdrecord sans l'option -pad,
vous devez
d'abord transformer les .wav en .cdr pour que ça
marche.
ATTENTION:
- Quand vous tapez cdrecord vous ne pouvez plus interrompre la
commande
(sauf les 9 premières secondes), sans quoi votre disque est
perdu.
- Vous ne pouvez remplir le disque qu'en tapant une seule fois cdrecord
et non pas plusieurs fois, vous devez donc passer en argument de cdrecord
tous les tracks qui doivent se trouver sur le CD, faites donc en sorte
que
le disque soit bien rempli.
- TRES IMPORTANT, pour les configs modestes, du style
P133 et
32Mo de RAM, où si vous voulez absolument prendre aucun risque
lors
du gravage du CD-Audio, vous devez quitter tout environnement graphique
(KDE,
Gnome, ...) et arrêter tous les autres programmes, pour cela
taper
(toujours sous root) init 3, pour vous retrouver avec une
interface
alphanumérique, pour que cdrecord puisse
bénéficier
de toutes les ressources du système, l'idéal est de
graver en
mode single user.
tar xvfz bladeenc-0.94.2-src-stable.tar.gz
Cela donne le répertoire bladeenc-0.94.2 dans lequel on tape successivement :
./configure
make
Puis en tant que root
make install
Cela va installer l'exécutable /usr/local/bin/bladeenc
pour convertir au format mp3, la syntaxe est très simple:
bladeenc tchaikowsky-danserusse.wav
BladeEnc 0.94.2 (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: tchaikowsky-danserusse.wav
Input: 44.1 kHz, 16 bit, stereo.
Output: 128 kBit, stereo.
Status: 27.4% done, ETA 00:01:43 BATCH: 27.4% done, ETA 00:01:43
Vous allez vous retrouvez avec un fichier tchaikowsky-danserusse.mp3 numérisé à 128kbit/s par défaut en stéréo. Vous pouvez éventuellement augmenter la cadence pour avoir un son d'une encore meilleure qualité (et un fichier plus gros aussi) avec la syntaxe suivante :
bladeenc -160 tchaikowsky-danserusse.wav
Maintenant le mieux est d'utiliser lame (page outils de base pour la
vidéo) qui fait la même chose (et même
plus) et qui est l'objet d'un développement toujours très
actif.
Et voilà une brève description de la syntaxe
On l'utilisera essentiellement avec les options suivantes
-o nom du fichier.ogg
-q qualité de compression, ça va de -1 (pauvre)
à
10 (haute), par défaut la qualité est à 3.
Demonstration
oggenc -q 4 exemple.wav -o exemple.ogg
Ouverture avec le module wav : WAV file reader
Encoding "aim-a-nou1.wav" to
"exemple.ogg"
at quality 4,00
[100,0%] [ 0m00s restant]
|
Fin de l'encodage du fichier « exemple.ogg »
Longueur de fichier
:
4m 48,0s
Temps
écoulé
: 3m 05,5s
Taux:
1,5531
Average bitrate: 125,9
kb/s
ogg123 est une lecteur de fichier ogg en ligne de
commande
Quelques exemples d'utilisation
ogg123 exemple.ogg
Audio Device: OSS audio driver output
Écoute de : exemple.ogg
Temps : 04:47,44 [00:00,64] de 04:48,08 ( 0,3
kbps)
Tampon de sortie 89,1% (
Temps : 04:47,58 [00:00,50] de 04:48,08 ( 0,3
kbps)
Tampon de sortie 70,3% (
Temps : 04:47,72 [00:00,36] de 04:48,08 ( 0,3
kbps)
Tampon de sortie 51,6% (
Temps : 04:47,86 [00:00,22] de 04:48,08 ( 0,3
kbps)
Tampon de sortie 32,8% (
Temps : 04:48,00 [00:00,08] de 04:48,08 ( 0,3
kbps)
Tampon de sortie 14,1% (
Temps : 04:48,08 [00:00,00] de 04:48,08 ( 0,4
kbps)
Tampon de sortie 0,0% (
Terminé.
En tapant
ogg123 ./musique
ogg123 va jouer tous les fichiers présents dans le répertoire musique et ses sous répertoires
oggdec permet de sauvegarder un fichier .ogg en .wav
Syntaxe
oggdec exemple.ogg -o exemple.wav
ogginfo fournit des informations sur un fichier ogg
Processing file "exemple.ogg"...
New logical stream (#1, serial: 734a5784): type vorbis
Vorbis headers parsed for stream 1, information follows...
Version: 0
Vendor: Xiph.Org libVorbis I 20020717 (1.0)
Channels: 2
Rate: 44100
Nominal bitrate: 128,003000 kb/s
Upper bitrate not set
Lower bitrate not set
Vorbis stream 1:
Total data length:
4534040
bytes
Playback length: 4m:48s
Average bitrate:
125,911294
kbps
Logical stream 1 ended
[Retour page d'accueil] | [Retour haut de la page] |