publish: Copier un CD Audio sous Linux avec cdda2wav
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"title": "Copier un CD Audio sous Linux avec cdda2wav",
|
||||
"_updated_at": "2026-05-17 05:58:38",
|
||||
"slug": "cdda2wav",
|
||||
"published": true,
|
||||
"published_at": "2023-02-10 22:48",
|
||||
"category": "Informatique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"CD Audio",
|
||||
"RIP",
|
||||
"CDDB"
|
||||
]
|
||||
},
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=3b609b9e-d3c1-4f08-8d31-88895ed76cc9&name=cover.svg"
|
||||
}
|
||||
@@ -1,148 +0,0 @@
|
||||
# Copier un CD Audio sous Linux avec cdda2wav
|
||||
|
||||
## Pourquoi utiliser cdda2wav ?
|
||||
|
||||
Un CD audio n'est pas un disque de fichiers comme une clé USB : les pistes y sont stockées dans un format brut, sans système de fichiers classique. Vous ne pouvez donc pas simplement faire un *copier-coller* depuis votre gestionnaire de fichiers. Il faut un outil capable de lire les secteurs audio bit par bit et de les transformer en fichiers exploitables, généralement au format **WAV** (qualité CD, sans perte). Cette opération s'appelle le *ripping*.
|
||||
|
||||
**cdda2wav** est l'un des plus anciens et des plus fiables outils pour faire cela en ligne de commande. Il a deux atouts majeurs :
|
||||
|
||||
- Il utilise la bibliothèque **paranoia**, qui relit plusieurs fois les zones douteuses pour corriger les erreurs de lecture (rayures, poussière, lecteur capricieux).
|
||||
- Il interroge automatiquement les bases de données en ligne pour récupérer le nom de l'album, de l'artiste et des pistes.
|
||||
|
||||
## Identifier votre lecteur CD
|
||||
|
||||
Avant de copier le CD, il faut savoir comment Linux nomme votre lecteur. Sur les systèmes modernes, c'est presque toujours `/dev/sr0` (parfois `/dev/sr1` si vous avez plusieurs lecteurs). Vérifiez avec :
|
||||
|
||||
```
|
||||
lsblk -d -o NAME,TYPE,LABEL
|
||||
```
|
||||
|
||||
ou, plus parlant pour un CD :
|
||||
|
||||
```
|
||||
ls -l /dev/cdrom /dev/sr*
|
||||
```
|
||||
|
||||
Le chemin du lecteur sera utile pour toutes les commandes qui suivent.
|
||||
|
||||
## Installation selon la distribution
|
||||
|
||||
Le paquet ne porte pas toujours le même nom : sur les distributions dérivées de Debian, le projet a été renommé **icedax** (un fork de cdda2wav) à la suite d'un changement de licence en amont, mais la commande reste très similaire.
|
||||
|
||||
**Sur Fedora / RHEL / openSUSE** :
|
||||
|
||||
```
|
||||
sudo dnf install cdda2wav cdparanoia opus-tools
|
||||
```
|
||||
|
||||
**Sur Debian / Ubuntu / Linux Mint** :
|
||||
|
||||
```
|
||||
sudo apt install icedax cdparanoia opus-tools
|
||||
```
|
||||
|
||||
Sur Debian/Ubuntu, vous lancerez alors `icedax` au lieu de `cdda2wav` ; les options sont identiques. J'ai aussi inclus `cdparanoia`, une alternative très populaire que je présente plus bas, et `opus-tools` pour la conversion finale en fichiers compressés.
|
||||
|
||||
## Extraire le CD audio en WAV
|
||||
|
||||
Voici la commande de base, à adapter selon votre lecteur :
|
||||
|
||||
```
|
||||
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
```
|
||||
|
||||
Décortiquons chaque option :
|
||||
|
||||
- `-vall` : verbosité maximale, affiche tout ce qui se passe (table des matières, progression piste par piste, problèmes éventuels). Pratique pour comprendre ce qui se passe ; on peut alléger ensuite avec `-v summary`.
|
||||
- `cddb=0` : tente de récupérer les métadonnées (titre, artiste…) depuis la base CDDB en ligne. Mettez `cddb=1` pour interroger un autre serveur, ou `cddb=2` si la première requête a échoué.
|
||||
- `-paranoia` : active le mode de lecture sécurisé qui relit les zones suspectes. C'est plus lent mais bien plus fiable, à utiliser sauf si vous êtes pressé et que le CD est en parfait état.
|
||||
- `-B` : *bulk extraction*, crée **un fichier par piste** (sinon vous obtenez un seul gros fichier de toutes les pistes collées). C'est l'option qu'on veut presque toujours.
|
||||
- `-D /dev/sr0` : indique le lecteur à utiliser.
|
||||
|
||||
**Espace disque nécessaire** : comptez environ **10 Mo par minute de musique** au format WAV (44,1 kHz, 16 bits, stéréo). Un CD de 74 minutes occupera donc ~700 Mo, un CD de 60 minutes ~600 Mo. Les fichiers seront créés dans le **dossier courant** : placez-vous dans un dossier dédié avant de lancer la commande.
|
||||
|
||||
```
|
||||
mkdir mon-album
|
||||
cd mon-album
|
||||
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
```
|
||||
|
||||
## Comprendre la sortie
|
||||
|
||||
Pendant l'extraction, cdda2wav affiche d'abord les caractéristiques du CD : nombre de pistes, durée totale, position de chaque piste sur le disque. Puis il extrait piste par piste et donne un compte rendu pour chacune :
|
||||
|
||||
```
|
||||
100% track 1 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
```
|
||||
|
||||
Voici ce que signifient ces compteurs :
|
||||
|
||||
- **rderr** : erreurs de lecture matérielles. Doit rester à 0.
|
||||
- **skip** : secteurs sautés. Doit rester à 0.
|
||||
- **atom**, **edge**, **drop**, **dup**, **drift** : petites incohérences détectées et corrigées par la lecture redondante. Quelques unités sont normales et n'altèrent pas le son.
|
||||
|
||||
Un message comme `track 3 recorded with minor problems (0.2% problem sectors)` n'est pas inquiétant : les zones problématiques ont été relues et corrigées. Si vous voyez `rderr > 0` ou `skip > 0`, en revanche, le résultat est probablement abîmé : nettoyez le CD et recommencez.
|
||||
|
||||
À noter dans l'exemple historique : le message `Operation not permitted. cannot set posix realtime scheduling policy` signifie que cdda2wav n'a pas pu se donner une priorité temps réel. Ce n'est pas grave, l'extraction se déroule normalement.
|
||||
|
||||
## Alternative recommandée : cdparanoia
|
||||
|
||||
Sur les distributions modernes, beaucoup d'utilisateurs préfèrent **cdparanoia**, un outil plus simple et tout aussi fiable, dédié à la lecture sécurisée :
|
||||
|
||||
```
|
||||
cdparanoia -B -d /dev/sr0
|
||||
```
|
||||
|
||||
L'option `-B` produit un fichier WAV par piste (`track01.cdda.wav`, `track02.cdda.wav`…). cdparanoia ne va pas chercher les métadonnées en ligne, mais il est très efficace pour récupérer les CD rayés.
|
||||
|
||||
## Récupérer les métadonnées (titres, artiste)
|
||||
|
||||
Les bases CDDB historiques (FreeDB) ont fermé. Aujourd'hui, l'écosystème s'appuie principalement sur **MusicBrainz**. Si vos pistes sont nommées `audio_01.wav`, `audio_02.wav`, etc., et que vous voulez les renommer avec les vrais titres, deux approches :
|
||||
|
||||
- Utiliser **abcde** (*A Better CD Encoder*), un script qui combine extraction, récupération des tags et conversion en une seule commande :
|
||||
```
|
||||
sudo apt install abcde # ou: sudo dnf install abcde
|
||||
abcde -d /dev/sr0
|
||||
```
|
||||
- Ou taguer manuellement après coup avec un outil comme **picard** (l'outil officiel de MusicBrainz).
|
||||
|
||||
## Convertir les WAV en fichiers compressés
|
||||
|
||||
Les fichiers WAV sont volumineux (~10 Mo/min). Pour les écouter sur un téléphone ou un baladeur, on les convertit en format compressé. Le **format Opus** est le meilleur choix actuel : il offre une qualité supérieure au MP3 à débit égal, est libre, et lu partout.
|
||||
|
||||
Pour convertir tous les WAV du dossier courant en Opus à 128 kbit/s (qualité quasi indiscernable de l'original) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
opusenc --bitrate 128 "$f" "${f%.wav}.opus"
|
||||
done
|
||||
```
|
||||
|
||||
Quelques explications sur cette boucle :
|
||||
|
||||
- `for f in *.wav` : prend chaque fichier `.wav` du dossier.
|
||||
- `"${f%.wav}.opus"` : retire l'extension `.wav` et la remplace par `.opus`. Ainsi `track01.wav` devient `track01.opus`.
|
||||
- `--bitrate 128` : 128 kbit/s est un bon compromis qualité/taille. Pour de la musique classique exigeante, montez à 160 ou 192 ; pour de la voix, descendez à 64 ou 96.
|
||||
|
||||
Si vous préférez le **MP3** (compatibilité maximale avec les vieux appareils) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
lame -V2 "$f" "${f%.wav}.mp3"
|
||||
done
|
||||
```
|
||||
|
||||
L'option `-V2` produit un MP3 en débit variable de très bonne qualité (~190 kbit/s en moyenne).
|
||||
|
||||
Pour du **FLAC** (compression sans perte, fichiers plus petits que WAV mais qualité identique) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
flac --best "$f"
|
||||
done
|
||||
```
|
||||
|
||||
## En résumé
|
||||
|
||||
Le workflow complet pour archiver un CD audio sous Linux tient en quatre étapes : identifier le lecteur (`/dev/sr0` en général), se placer dans un dossier dédié, extraire avec `cdda2wav -vall -paranoia -B -D /dev/sr0` (ou `icedax` sur Debian, ou `cdparanoia -B` en alternative), puis convertir au format souhaité avec `opusenc`, `lame` ou `flac` selon vos besoins. Pour automatiser le tout y compris les métadonnées, **abcde** reste l'outil tout-en-un de référence.
|
||||
@@ -1,120 +1,148 @@
|
||||
# cdda2wav, copier un CD Audio
|
||||
# Copier un CD Audio sous Linux avec cdda2wav
|
||||
|
||||
## Exécuter
|
||||
Cette commande permet d'extraire les pistes audios du CD en fichiers WAV. Pour un CD Audio de 74 minutes, prévoyez un espace disque de 700 Mo. Les pistes audios seront extraites dans le dossier courant.
|
||||
## Pourquoi utiliser cdda2wav ?
|
||||
|
||||
Dans l'exemple ci-dessous, le CD Audio est accessible à l'adresse `/dev/sr0`. C'est à modifier suivant votre configuration.
|
||||
Un CD audio n'est pas un disque de fichiers comme une clé USB : les pistes y sont stockées dans un format brut, sans système de fichiers classique. Vous ne pouvez donc pas simplement faire un *copier-coller* depuis votre gestionnaire de fichiers. Il faut un outil capable de lire les secteurs audio bit par bit et de les transformer en fichiers exploitables, généralement au format **WAV** (qualité CD, sans perte). Cette opération s'appelle le *ripping*.
|
||||
|
||||
**cdda2wav** est l'un des plus anciens et des plus fiables outils pour faire cela en ligne de commande. Il a deux atouts majeurs :
|
||||
|
||||
- Il utilise la bibliothèque **paranoia**, qui relit plusieurs fois les zones douteuses pour corriger les erreurs de lecture (rayures, poussière, lecteur capricieux).
|
||||
- Il interroge automatiquement les bases de données en ligne pour récupérer le nom de l'album, de l'artiste et des pistes.
|
||||
|
||||
## Identifier votre lecteur CD
|
||||
|
||||
Avant de copier le CD, il faut savoir comment Linux nomme votre lecteur. Sur les systèmes modernes, c'est presque toujours `/dev/sr0` (parfois `/dev/sr1` si vous avez plusieurs lecteurs). Vérifiez avec :
|
||||
|
||||
```
|
||||
lsblk -d -o NAME,TYPE,LABEL
|
||||
```
|
||||
|
||||
ou, plus parlant pour un CD :
|
||||
|
||||
```
|
||||
ls -l /dev/cdrom /dev/sr*
|
||||
```
|
||||
|
||||
Le chemin du lecteur sera utile pour toutes les commandes qui suivent.
|
||||
|
||||
## Installation selon la distribution
|
||||
|
||||
Le paquet ne porte pas toujours le même nom : sur les distributions dérivées de Debian, le projet a été renommé **icedax** (un fork de cdda2wav) à la suite d'un changement de licence en amont, mais la commande reste très similaire.
|
||||
|
||||
**Sur Fedora / RHEL / openSUSE** :
|
||||
|
||||
```
|
||||
sudo dnf install cdda2wav cdparanoia opus-tools
|
||||
```
|
||||
|
||||
**Sur Debian / Ubuntu / Linux Mint** :
|
||||
|
||||
```
|
||||
sudo apt install icedax cdparanoia opus-tools
|
||||
```
|
||||
|
||||
Sur Debian/Ubuntu, vous lancerez alors `icedax` au lieu de `cdda2wav` ; les options sont identiques. J'ai aussi inclus `cdparanoia`, une alternative très populaire que je présente plus bas, et `opus-tools` pour la conversion finale en fichiers compressés.
|
||||
|
||||
## Extraire le CD audio en WAV
|
||||
|
||||
Voici la commande de base, à adapter selon votre lecteur :
|
||||
|
||||
```
|
||||
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
```
|
||||
|
||||
Sous Debian 9, `cdda2wav` n'est pas disponible. Le programme icedax le remplace.
|
||||
Décortiquons chaque option :
|
||||
|
||||
<u>Exemple de sortie</u>
|
||||
- `-vall` : verbosité maximale, affiche tout ce qui se passe (table des matières, progression piste par piste, problèmes éventuels). Pratique pour comprendre ce qui se passe ; on peut alléger ensuite avec `-v summary`.
|
||||
- `cddb=0` : tente de récupérer les métadonnées (titre, artiste…) depuis la base CDDB en ligne. Mettez `cddb=1` pour interroger un autre serveur, ou `cddb=2` si la première requête a échoué.
|
||||
- `-paranoia` : active le mode de lecture sécurisé qui relit les zones suspectes. C'est plus lent mais bien plus fiable, à utiliser sauf si vous êtes pressé et que le CD est en parfait état.
|
||||
- `-B` : *bulk extraction*, crée **un fichier par piste** (sinon vous obtenez un seul gros fichier de toutes les pistes collées). C'est l'option qu'on veut presque toujours.
|
||||
- `-D /dev/sr0` : indique le lecteur à utiliser.
|
||||
|
||||
**Espace disque nécessaire** : comptez environ **10 Mo par minute de musique** au format WAV (44,1 kHz, 16 bits, stéréo). Un CD de 74 minutes occupera donc ~700 Mo, un CD de 60 minutes ~600 Mo. Les fichiers seront créés dans le **dossier courant** : placez-vous dans un dossier dédié avant de lancer la commande.
|
||||
|
||||
```
|
||||
[cedric@dskstd cdaudio]$ cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
Type: ROM, Vendor 'HL-DT-ST' Model 'DVDRAM GSA-4082N' Revision 'HG02' MMC+CDDA
|
||||
536576 bytes buffer memory requested, 4 buffers, 52 sectors
|
||||
#icedax version 1.1.11, real time sched., soundcard, libcdda_paranoia support
|
||||
no cddb entry found: 202 No match for disc ID 0f0e0b14.
|
||||
mkdir mon-album
|
||||
cd mon-album
|
||||
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
```
|
||||
|
||||
AUDIOtrack pre-emphasis copy-permitted tracktype channels
|
||||
1-20 no no audio 2
|
||||
Table of Contents: total tracks:20, (total time 59:55.35)
|
||||
1.( 2:29.63), 2.( 2:50.30), 3.( 3:21.25), 4.( 2:34.57), 5.( 3:23.70),
|
||||
6.( 3:16.73), 7.( 2:54.10), 8.( 2:40.35), 9.( 3:26.00), 10.( 3:08.70),
|
||||
11.( 2:49.62), 12.( 2:59.35), 13.( 2:45.28), 14.( 2:32.25), 15.( 3:15.15),
|
||||
16.( 2:51.07), 17.( 3:20.43), 18.( 3:12.70), 19.( 2:57.47), 20.( 3:04.20),
|
||||
## Comprendre la sortie
|
||||
|
||||
Table of Contents: starting sectors
|
||||
1.( 32), 2.( 11270), 3.( 24050), 4.( 39150), 5.( 50757),
|
||||
6.( 66052), 7.( 80825), 8.( 93885), 9.( 105920), 10.( 121370),
|
||||
11.( 135540), 12.( 148277), 13.( 161737), 14.( 174140), 15.( 185565),
|
||||
16.( 200205), 17.( 213037), 18.( 228080), 19.( 242550), 20.( 255872),
|
||||
lead-out( 269692)
|
||||
CDINDEX discid: XSTt_d1DVVDSU7Nqap4W7khDTJU-
|
||||
CDDB discid: 0x0f0e0b14
|
||||
CD-Text: not detected
|
||||
CD-Extra: not detected
|
||||
No media catalog number present.
|
||||
scanning for ISRCs: 20 ...
|
||||
index scan: 20...
|
||||
samplefile size will be 634240364 bytes.
|
||||
recording 3595.4666 seconds stereo with 16 bits @ 44100.0 Hz ->'audio'...
|
||||
no cddb entry found: 202 No match for disc ID 0f0e0b14.
|
||||
Pendant l'extraction, cdda2wav affiche d'abord les caractéristiques du CD : nombre de pistes, durée totale, position de chaque piste sur le disque. Puis il extrait piste par piste et donne un compte rendu pour chacune :
|
||||
|
||||
using lib paranoia for reading.
|
||||
cdda2wav: Operation not permitted. cannot set posix realtime scheduling policy
|
||||
percent_done:
|
||||
```
|
||||
100% track 1 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 11 overlap(0.1088 .. 0.1088)
|
||||
100% track 2 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 2 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 22 overlap(0.1088 .. 0.2449)
|
||||
100% track 3 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 1 drift
|
||||
100% 22 overlap(0.2449 .. 0.2449)
|
||||
100% track 4 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 20 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.2449)
|
||||
100% track 5 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 26 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 10 overlap(0.1088 .. 0.1088)
|
||||
100% track 6 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 3 drift
|
||||
100% 10 overlap(0.1088 .. 0.1088)
|
||||
100% track 7 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1088)
|
||||
100% track 8 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 20 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.1088)
|
||||
100% track 9 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 26 edge, 0 drop, 0 dup, 3 drift
|
||||
100% 11 overlap(0.1088 .. 0.1088)
|
||||
100% track 10 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1088)
|
||||
100% track 11 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.1088)
|
||||
100% track 12 recorded with minor problems (0.1% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 14 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1633)
|
||||
100% track 13 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 20 overlap(0.1088 .. 0.1088)
|
||||
100% track 14 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 2 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 20 overlap(0.1088 .. 0.2449)
|
||||
100% track 15 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 24 overlap(0.2449 .. 0.2449)
|
||||
100% track 16 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.2449)
|
||||
100% track 17 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 11 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 13 overlap(0.1088 .. 0.1633)
|
||||
100% track 18 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 24 overlap(0.1088 .. 0.1088)
|
||||
100% track 19 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 1 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 23 overlap(0.1088 .. 0.1633)
|
||||
100% track 20 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 23 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 23 overlap(0.1633 .. 0.1633)
|
||||
```
|
||||
|
||||
## Convertir
|
||||
Les pistes audios extraites pas `cdda2wav`, sont au format WAV. Pour les convertir en fichier OPUS, je vous propose la commande suivante :
|
||||
Voici ce que signifient ces compteurs :
|
||||
|
||||
- **rderr** : erreurs de lecture matérielles. Doit rester à 0.
|
||||
- **skip** : secteurs sautés. Doit rester à 0.
|
||||
- **atom**, **edge**, **drop**, **dup**, **drift** : petites incohérences détectées et corrigées par la lecture redondante. Quelques unités sont normales et n'altèrent pas le son.
|
||||
|
||||
Un message comme `track 3 recorded with minor problems (0.2% problem sectors)` n'est pas inquiétant : les zones problématiques ont été relues et corrigées. Si vous voyez `rderr > 0` ou `skip > 0`, en revanche, le résultat est probablement abîmé : nettoyez le CD et recommencez.
|
||||
|
||||
À noter dans l'exemple historique : le message `Operation not permitted. cannot set posix realtime scheduling policy` signifie que cdda2wav n'a pas pu se donner une priorité temps réel. Ce n'est pas grave, l'extraction se déroule normalement.
|
||||
|
||||
## Alternative recommandée : cdparanoia
|
||||
|
||||
Sur les distributions modernes, beaucoup d'utilisateurs préfèrent **cdparanoia**, un outil plus simple et tout aussi fiable, dédié à la lecture sécurisée :
|
||||
|
||||
```
|
||||
for f in *.* ; do opusenc --bitrate 128 "$f" "${f%.*}_128k.opus"; done
|
||||
cdparanoia -B -d /dev/sr0
|
||||
```
|
||||
|
||||
Cela suppose que `opusenc` soit déployer sur votre configuration.
|
||||
L'option `-B` produit un fichier WAV par piste (`track01.cdda.wav`, `track02.cdda.wav`…). cdparanoia ne va pas chercher les métadonnées en ligne, mais il est très efficace pour récupérer les CD rayés.
|
||||
|
||||
## Récupérer les métadonnées (titres, artiste)
|
||||
|
||||
Les bases CDDB historiques (FreeDB) ont fermé. Aujourd'hui, l'écosystème s'appuie principalement sur **MusicBrainz**. Si vos pistes sont nommées `audio_01.wav`, `audio_02.wav`, etc., et que vous voulez les renommer avec les vrais titres, deux approches :
|
||||
|
||||
- Utiliser **abcde** (*A Better CD Encoder*), un script qui combine extraction, récupération des tags et conversion en une seule commande :
|
||||
```
|
||||
sudo apt install abcde # ou: sudo dnf install abcde
|
||||
abcde -d /dev/sr0
|
||||
```
|
||||
- Ou taguer manuellement après coup avec un outil comme **picard** (l'outil officiel de MusicBrainz).
|
||||
|
||||
## Convertir les WAV en fichiers compressés
|
||||
|
||||
Les fichiers WAV sont volumineux (~10 Mo/min). Pour les écouter sur un téléphone ou un baladeur, on les convertit en format compressé. Le **format Opus** est le meilleur choix actuel : il offre une qualité supérieure au MP3 à débit égal, est libre, et lu partout.
|
||||
|
||||
Pour convertir tous les WAV du dossier courant en Opus à 128 kbit/s (qualité quasi indiscernable de l'original) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
opusenc --bitrate 128 "$f" "${f%.wav}.opus"
|
||||
done
|
||||
```
|
||||
|
||||
Quelques explications sur cette boucle :
|
||||
|
||||
- `for f in *.wav` : prend chaque fichier `.wav` du dossier.
|
||||
- `"${f%.wav}.opus"` : retire l'extension `.wav` et la remplace par `.opus`. Ainsi `track01.wav` devient `track01.opus`.
|
||||
- `--bitrate 128` : 128 kbit/s est un bon compromis qualité/taille. Pour de la musique classique exigeante, montez à 160 ou 192 ; pour de la voix, descendez à 64 ou 96.
|
||||
|
||||
Si vous préférez le **MP3** (compatibilité maximale avec les vieux appareils) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
lame -V2 "$f" "${f%.wav}.mp3"
|
||||
done
|
||||
```
|
||||
|
||||
L'option `-V2` produit un MP3 en débit variable de très bonne qualité (~190 kbit/s en moyenne).
|
||||
|
||||
Pour du **FLAC** (compression sans perte, fichiers plus petits que WAV mais qualité identique) :
|
||||
|
||||
```
|
||||
for f in *.wav; do
|
||||
flac --best "$f"
|
||||
done
|
||||
```
|
||||
|
||||
## En résumé
|
||||
|
||||
Le workflow complet pour archiver un CD audio sous Linux tient en quatre étapes : identifier le lecteur (`/dev/sr0` en général), se placer dans un dossier dédié, extraire avec `cdda2wav -vall -paranoia -B -D /dev/sr0` (ou `icedax` sur Debian, ou `cdparanoia -B` en alternative), puis convertir au format souhaité avec `opusenc`, `lame` ou `flac` selon vos besoins. Pour automatiser le tout y compris les métadonnées, **abcde** reste l'outil tout-en-un de référence.
|
||||
@@ -1,18 +1,33 @@
|
||||
{
|
||||
"uuid": "3b609b9e-d3c1-4f08-8d31-88895ed76cc9",
|
||||
"slug": "cdda2wav",
|
||||
"title": "cdda2wav, copier un CD Audio",
|
||||
"title": "Copier un CD Audio sous Linux avec cdda2wav",
|
||||
"author": "cedric@abonnel.fr",
|
||||
"published": true,
|
||||
"published_at": "2023-02-10 22:48:32",
|
||||
"featured": false,
|
||||
"published_at": "2023-02-10 22:48",
|
||||
"created_at": "2023-02-10 22:48:32",
|
||||
"updated_at": "2023-02-10 22:48:32",
|
||||
"revisions": [],
|
||||
"updated_at": "2026-05-17 05:58:39",
|
||||
"revisions": [
|
||||
{
|
||||
"n": 1,
|
||||
"date": "2026-05-17 05:58:39",
|
||||
"comment": "Titre modifié, tags modifiés, contenu modifié, image de couverture modifiée",
|
||||
"title": "cdda2wav, copier un CD Audio"
|
||||
}
|
||||
],
|
||||
"cover": "cover.svg",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "",
|
||||
"category": "Informatique"
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=3b609b9e-d3c1-4f08-8d31-88895ed76cc9&name=cover.svg",
|
||||
"category": "Informatique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"CD Audio",
|
||||
"RIP",
|
||||
"CDDB"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
# cdda2wav, copier un CD Audio
|
||||
|
||||
## Exécuter
|
||||
Cette commande permet d'extraire les pistes audios du CD en fichiers WAV. Pour un CD Audio de 74 minutes, prévoyez un espace disque de 700 Mo. Les pistes audios seront extraites dans le dossier courant.
|
||||
|
||||
Dans l'exemple ci-dessous, le CD Audio est accessible à l'adresse `/dev/sr0`. C'est à modifier suivant votre configuration.
|
||||
|
||||
```
|
||||
cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
```
|
||||
|
||||
Sous Debian 9, `cdda2wav` n'est pas disponible. Le programme icedax le remplace.
|
||||
|
||||
<u>Exemple de sortie</u>
|
||||
|
||||
```
|
||||
[cedric@dskstd cdaudio]$ cdda2wav -vall cddb=0 -paranoia -B -D /dev/sr0
|
||||
Type: ROM, Vendor 'HL-DT-ST' Model 'DVDRAM GSA-4082N' Revision 'HG02' MMC+CDDA
|
||||
536576 bytes buffer memory requested, 4 buffers, 52 sectors
|
||||
#icedax version 1.1.11, real time sched., soundcard, libcdda_paranoia support
|
||||
no cddb entry found: 202 No match for disc ID 0f0e0b14.
|
||||
|
||||
AUDIOtrack pre-emphasis copy-permitted tracktype channels
|
||||
1-20 no no audio 2
|
||||
Table of Contents: total tracks:20, (total time 59:55.35)
|
||||
1.( 2:29.63), 2.( 2:50.30), 3.( 3:21.25), 4.( 2:34.57), 5.( 3:23.70),
|
||||
6.( 3:16.73), 7.( 2:54.10), 8.( 2:40.35), 9.( 3:26.00), 10.( 3:08.70),
|
||||
11.( 2:49.62), 12.( 2:59.35), 13.( 2:45.28), 14.( 2:32.25), 15.( 3:15.15),
|
||||
16.( 2:51.07), 17.( 3:20.43), 18.( 3:12.70), 19.( 2:57.47), 20.( 3:04.20),
|
||||
|
||||
Table of Contents: starting sectors
|
||||
1.( 32), 2.( 11270), 3.( 24050), 4.( 39150), 5.( 50757),
|
||||
6.( 66052), 7.( 80825), 8.( 93885), 9.( 105920), 10.( 121370),
|
||||
11.( 135540), 12.( 148277), 13.( 161737), 14.( 174140), 15.( 185565),
|
||||
16.( 200205), 17.( 213037), 18.( 228080), 19.( 242550), 20.( 255872),
|
||||
lead-out( 269692)
|
||||
CDINDEX discid: XSTt_d1DVVDSU7Nqap4W7khDTJU-
|
||||
CDDB discid: 0x0f0e0b14
|
||||
CD-Text: not detected
|
||||
CD-Extra: not detected
|
||||
No media catalog number present.
|
||||
scanning for ISRCs: 20 ...
|
||||
index scan: 20...
|
||||
samplefile size will be 634240364 bytes.
|
||||
recording 3595.4666 seconds stereo with 16 bits @ 44100.0 Hz ->'audio'...
|
||||
no cddb entry found: 202 No match for disc ID 0f0e0b14.
|
||||
|
||||
using lib paranoia for reading.
|
||||
cdda2wav: Operation not permitted. cannot set posix realtime scheduling policy
|
||||
percent_done:
|
||||
100% track 1 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 11 overlap(0.1088 .. 0.1088)
|
||||
100% track 2 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 2 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 22 overlap(0.1088 .. 0.2449)
|
||||
100% track 3 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 1 drift
|
||||
100% 22 overlap(0.2449 .. 0.2449)
|
||||
100% track 4 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 20 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.2449)
|
||||
100% track 5 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 26 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 10 overlap(0.1088 .. 0.1088)
|
||||
100% track 6 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 3 drift
|
||||
100% 10 overlap(0.1088 .. 0.1088)
|
||||
100% track 7 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1088)
|
||||
100% track 8 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 20 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.1088)
|
||||
100% track 9 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 26 edge, 0 drop, 0 dup, 3 drift
|
||||
100% 11 overlap(0.1088 .. 0.1088)
|
||||
100% track 10 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1088)
|
||||
100% track 11 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 8 overlap(0.1088 .. 0.1088)
|
||||
100% track 12 recorded with minor problems (0.1% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 14 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.1633)
|
||||
100% track 13 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 20 overlap(0.1088 .. 0.1088)
|
||||
100% track 14 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 2 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 20 overlap(0.1088 .. 0.2449)
|
||||
100% track 15 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 24 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 24 overlap(0.2449 .. 0.2449)
|
||||
100% track 16 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 22 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 9 overlap(0.1088 .. 0.2449)
|
||||
100% track 17 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 11 edge, 0 drop, 0 dup, 2 drift
|
||||
100% 13 overlap(0.1088 .. 0.1633)
|
||||
100% track 18 recorded successfully
|
||||
100% 0 rderr, 0 skip, 0 atom, 0 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 24 overlap(0.1088 .. 0.1088)
|
||||
100% track 19 recorded with minor problems
|
||||
100% 0 rderr, 0 skip, 0 atom, 1 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 23 overlap(0.1088 .. 0.1633)
|
||||
100% track 20 recorded with minor problems (0.2% problem sectors)
|
||||
100% 0 rderr, 0 skip, 0 atom, 23 edge, 0 drop, 0 dup, 0 drift
|
||||
100% 23 overlap(0.1633 .. 0.1633)
|
||||
```
|
||||
|
||||
## Convertir
|
||||
Les pistes audios extraites pas `cdda2wav`, sont au format WAV. Pour les convertir en fichier OPUS, je vous propose la commande suivante :
|
||||
|
||||
```
|
||||
for f in *.* ; do opusenc --bitrate 128 "$f" "${f%.*}_128k.opus"; done
|
||||
```
|
||||
|
||||
Cela suppose que `opusenc` soit déployer sur votre configuration.
|
||||
Reference in New Issue
Block a user