# Utilisation des CD/DVD

## Lecteurs CD/DVD

Les lecteurs modernes de CD-ROM peuvent atteindre de très hautes vitesses de lecture, bien que certains soient capables de fonctionner à des vitesses réduites. Il y a plusieurs raisons possibles pour vouloir changer cette vitesse :

- Il a été signalé que des lecteurs peuvent commettre des erreurs de lecture à haute vitesse, surtout avec des CD-ROM mal pressés. Réduire la vitesse peut alors empêcher la perte de données dans ces circonstances.

- Les lecteurs CD-ROM génèrent souvent un bruit assourdissant, qu'une vitesse réduite peut contribuer à diminuer.

### Linux

Vous pouvez réduire la vitesse des lecteurs de CD-ROM IDE avec `hdparm`, `setcd` ou `cdctl`. Ils fonctionnent comme suit :

    hdparm -E [vitesse] [périph. cdrom]

    setcd -x [vitesse] [périph. cdrom]

    cdctl -bS [vitesse]

Si vous utilisez l'émulation SCSI, vous pourriez avoir à appliquer les paramètres au vrai périphérique IDE, et non au périphérique SCSI émulé.

Si vous avez les privilèges root, la commande suivante peut également aider :

    echo file_readahead:2000000 > /proc/ide/[périph. cdrom]/settings

Ceci créé un cache de 2 Mo, ce qui est utile pour les CD-ROMs endommagés (rayés). Si vous lui donnez une valeur trop haute, le lecteur ne va pas cesser de s'arrêter et de repartir, ce qui va dramatiquement diminuer les performances. Il est également recommandé d'optimiser votre lecteur de CD-ROM avec `hdparm` :

    hdparm -d1 -a8 -u1 [périph. cdrom]

Ceci permet l'accès DMA, le cache en lecture, et l'IRQ unmasking (lisez la page de man de `hdparm` pour plus d'explications).

Référez vous à "`/proc/ide/`[périph. cdrom]`/settings`" pour optimiser précisément votre lecteur CD-ROM.

Les lecteurs SCSI n'ont pas une manière uniforme de régler ces paramètres (Vous en connaissez une ? Dites-la nous !). Il y a un outil qui fonctionne pour les Lecteurs SCSI Plextor.

### FreeBSD

Vitesse :

    cdcontrol [-f périphérique] speed [vitesse]

DMA :

    sysctl hw.ata.atapi_dma=1

## Lecture de DVD

Pour voir la liste complète des options disponibles, veuillez lire la page de man. La syntaxe pour lire un Digital Versatile Disc (DVD) est la suivante :

    mplayer dvd://<piste> [-dvd-device <périphérique>]

Exemple :

    mplayer dvd://1 -dvd-device /dev/hdc

Si vous avez compilé MPlayer avec la gestion de dvdnav, la syntaxe est la même, sauf que que vous devrez utiliser dvdnav:// au lieu de dvd://.

Le périphérique DVD par défaut est `/dev/dvd`. Si votre configuration est différente, faites un lien symbolique (symlink) ou spécifiez le bon périphérique en ligne de commande avec l'option `-dvd-device`.

MPlayer utilise `libdvdread` et `libdvdcss` pour le décryptage et la lecture de DVD. Ces deux bibliothèques sont contenues dans le répertoire source de MPlayer, vous n'avez donc pas besoin de les installer séparément. Vous pouvez aussi utiliser les versions de ces deux bibliothèques qui sont peut-être déjà présentes sur votre système, mais cette solution n'est pas recommandée, dans la mesure où elle peut provoquer des bogues, des incompatibilités de bibliothèque et une vitesse réduite.

En cas de problème de décodage de DVD, essayez de désactiver supermount, ou tous les outils de ce genre. Certains lecteurs RPC-2 peuvent aussi nécessiter le réglage de leur code de région.

## Décodage DVD

Le décodage DVD est réalisé par `libdvdcss`. La méthode peut être spécifiée par la variable d'environnement `DVDCSS_METHOD`. Voir le manuel pour plus de détails.

### Code zone

Les lecteurs DVD d'aujourd'hui sont équipés d'une restriction sans queue ni tête appelée protection commerciale par zones . C'est un système qui oblige les lecteurs DVD à accepter uniquement les DVDs produits pour l'une des six zones qui découpent le monde. Il est impensable qu'un groupe de personne se réunisse pour arriver à élaborer une telle idée et pense que la Terre entière se pliera à leur volonté.

Les lecteurs qui appliquent le réglage des zones uniquement via logiciel sont connus comme des lecteurs RPC-1, ceux qui le font via matériel comme des lecteurs RPC-2. Les lecteurs RPC-2 permettent de changer de zone cinq fois avant qu'il ne se bloque. Sous Linux, vous pouvez utiliser l'outil regionset pour modifier le code zone de votre lecteur DVD.

Heureusement, il est possible de convertir les lecteurs RPC-2 en RPC-1 lors d'une mise à jours du micrologiciel. Saisissez la référence de votre lecteur DVD dans votre moteur de recherche favori ou jetez un œil au forum et à la section téléchargement de "The firmware page". Les mises en garde habituelles des mises à jours de micrologiciels restent valables mais les expériences de suppressions de restrictions de zones sont généralement fructueuses.

## Lecture de VCDs

Pour voir la liste complète des options disponibles, veuillez lire la page de man. La syntaxe pour lire un Vidéo CD standard (VCD) est la suivante :

    mplayer vcd://<piste> [-cdrom-device <périphérique>]

Exemple :

    mplayer vcd://2 -cdrom-device /dev/hdc

Le périphérique VCD par défaut est `/dev/cdrom`. Si votre installation diffère, faites un lien symbolique (symlink) ou spécifiez le bon périphérique en ligne de commande avec l'option `-cdrom-device`.

Les CD-ROM SCSI Plextor et certains Toshiba, entre autres, ont d'horribles performances durant la lecture de VCDs. C'est parce que l'`ioctl` CDROMREADRAW n'est pas complètement implémenté pour ces lecteurs. Si vous avez des connaissances en programmation SCSI, merci de nous aider à implémenter un support SCSI générique pour les VCDs.

En attendant vous pouvez extraire des données d'un VCD avec readvcd et lire le fichier obtenu avec MPlayer.

## Structure d'un VCD

Un CD Video (VCD) est constitué de secteurs CD-ROM XA, c'est-à-dire des pistes CD-ROM mode 2 forme 1 et 2 :

- La première piste est en mode 2 forme 2 ce qui signifie qu'elle utilise une correction d'erreur L2. La piste contient un système de fichiers ISO-9660 avec 2048 octets/secteur. Ce système de fichiers contient des informations VCD meta-donnée, aussi bien que les images fixes souvent utilisées dans les menus. Les segments MPEG pour les menus peuvent aussi être stockés dans la première piste, mais les données MPEG doivent être cassées en séries de bouts de 150 secteurs. Le système de fichiers ISO-9660 peut contenir d'autres fichiers ou programmes qui ne sont pas essentiels pour les opérations VCD.

- La seconde piste et les suivantes sont des pistes MPEG brutes (film) à 2324 octets/secteur, contenant un paquet de données MPEG PS par secteur. Celles-ci sont formatées selon le mode 2 forme 1, elles stockent donc plus de données par secteur au détriment de la correction d'erreur. Il est aussi permis d'avoir des pistes CD-DA dans un VCD après la première piste. Sur certains systèmes d'exploitation, il y a quelques astuces qui permettent de faire apparaître ces pistes non-ISO-9660 dans un système de fichiers. Sur d'autres systèmes d'exploitation comme GNU/Linux cela n'est pas le cas (pas encore). Ici les données MPEG ne peuvent être montées. Comme la plupart des films sont à l'intérieur de ce genre de piste, vous devrez tout d'abord essayer `vcd://2`.

- Il existe également certains disques VCD sans la première piste (une seule piste et pas de système de fichier du tout). Ils sont quand même lisibles, mais ne peuvent pas être montés.

- La définition du standard Video CD est appelée le "Livre Blanc" Philips et n'est généralement pas disponible en ligne, étant donné qu'elle doit être achetée auprès de Philips. Une information plus détaillée sur le Video CD peut être trouvée dans la documentation de vcdimager.

## À propos des fichiers .DAT :

Le fichier de ~600 Mo visible sur la première piste d'un VCD monté n'est pas un vrai fichier ! C'est ce qu'on appelle une passerelle ISO, créée pour permettre à Windows de gérer de telles pistes (Windows n'autorise pas du tout l'accès brut au périphérique). Sous linux, vous ne pouvez pas copier ou lire de telles pistes (elle contiennent des informations parasites). Sous Windows c'est possible car son pilote iso9660 émule la lecture brute des pistes dans ce fichier. Pour lire un fichier .DAT vous avez besoin d'un pilote noyau qui peut être trouvé dans la version Linux de PowerDVD. Il possède un pilote de système de fichier iso9660 modifié (`vcdfs/isofs-2.4.X.o`), qui est capable d'émuler les pistes brutes au travers de ce fichier .DAT fantôme. Si vous montez le disque en utilisant leur pilote, vous pouvez copier et même lire les fichiers .DAT avec MPlayer. Mais cela ne fonctionnera pas avec le pilote iso9660 standard du noyau ! Il est recommandé d'utiliser l'option `vcd://` à la place. D'autres possibilités pour la copie de VCD sont le nouveau pilote noyau cdfs (qui ne fait pas partie du noyau officiel) qui montre les sessions du CD en temps que fichier image et cdrdao, une application d'enregistrement/copie bit-à-bit).