# Utilizzo CD/DVD

## Lettori CD/DVD

I lettori CD-ROM recenti possono raggiungere velocità molto alte, ma molti lettori sono capaci di girare a velocità ridotte. Ci sono diversi motivi che possono farti pensare di cambiare la velocità di un'unità CD-ROM:

- Ci sono state notifiche di errori di lettura ad alte velocità, specialmente con CD-ROM malamente pressati. Ridurre la velocità può prevenire la perdita di dati in queste circostanze.

- Molti lettori CD-ROM sono fastidiosamente rumorosi, una minor velocità può ridurre il rumore.

### Linux

Puoi diminuire la velocità delle unità CD-ROM IDE con `hdparm`, `setcd` o `cdctl`. Funziona così:

    hdparm -E [velocità] [dispositivo cdrom]

    setcd -x [velocità] [dispositivo cdrom]

    cdctl -bS [velocità]

Se stai usando l'emulazione SCSI, puoi dover applicare le impostazioni al lettore IDE reale, e non al dispositivo emulato come SCSI.

Se hai i privilegi di root può essere di aiuto anche il comando seguente:

    echo file_readahead:2000000 > /proc/ide/[dispositivo cdrom]/settings

    hdparm -d1 -a8 -u1 [dispositivo cdrom]

Ciò imposta la lettura in prefetch dei file a 2MB, che aiuta con CD-ROM graffiati. Se la imposti troppo alta, il lettore continuerà ad aumentare e diminuire la velocità, e le prestazioni diminuiranno drasticamente. Si raccomanda di regolare il tuo lettore CD-ROM anche con `hdparm`:

    hdparm -d1 -a8 -u1 [dispositivo cdrom]

Questo abilita l'accesso in DMA, la pre-lettura, e la mascheratura IRQ (leggi la pagina man di `hdparm` per una spiegazione dettagliata).

Per favore fai riferimento a "`/proc/ide/`[dispositivo cdrom]`/settings`" per regolare con precisione il tuo CD-ROM.

I lettori SCSI non hanno un modo uniforme di impostare questi parametri (ne conosci uno? diccelo!). C'è uno strumento che funziona con i lettori SCSI Plextor.

### FreeBSD

velocità:

    cdcontrol [-f dispositivo] speed [velocità]

DMA:

    sysctl hw.ata.atapi_dma=1

## Riproduzione DVD

Per una lista completa delle opzioni disponibili per favore leggi la pagina man. La sintassi per riprodurre un DVD normale è la seguente:

    mplayer dvd://<traccia> [-dvd-device <dispositivo>]

Esempio:

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

Se hai compilato MPlayer con il supporto per dvdnav, la sintassi è la stessa, tranne che devi usare dvdnav:// invece di dvd://.

Il dispositivo DVD di default è `/dev/dvd`. Se la tua impostazione è diversa, crea un collegamento simbolico o indica il dispositivo giusto dalla riga comando con l'opzione `-dvd-device`.

MPlayer usa `libdvdread` e `libdvdcss` per la riproduzione e la decrittazione dei DVD. Queste due librerie sono contenute nei sorgenti di MPlayer, non hai bisogno di installarle separatamente. Puoi anche usare le controparti di sistema delle due librerie, ma questa non è la soluzione raccomandata, in quanto può portare a bachi, incompatibilità di librerie e minor velocità.

Nel caso di problemi di decodifica di DVD, prova a disabilitare il supermount, o qualsiasi altra utilità. Alcuni lettori RPC-2 possono anche aver bisogno di avere il codice di zona impostato.

## Decrittazione DVD

La decrittazione dei DVD viene fatta da `libdvdcss`. La modalità può esser specificata attraverso la variabile d'ambiente `DVDCSS_METHOD`, vedi la pagina di manuale per i dettagli.

### Codici regionali

I lettori DVD al giorno d'oggi sono venduti con una costrizione senza senso chiamata codice regionale (in inglese). Questa è una strategia per forzare i lettori DVD ad accettare solamente DVD prodotti per una delle sei diverse regioni in cui è stato diviso il mondo. Come un gruppo di persone possano sedersi attorno ad un tavolo, partorire un'idea del genere ed aspettarsi che il mondo del 21° secolo si pieghi ai loro voleri, è aldilà di ogni comprensione.

I lettori che forzano l'impostazione regionale solo via software sono anche conosciuti come lettori RPC-1, quelli che lo gestiscono via hardware come RPC-2. I lettori RPC-2 permettono la modifica della regione per cinque volte, prima che resti bloccata. Sotto Linux puoi usare lo strumento regionset per per impostare il codice regionale del tuo lettore DVD.

Grazie al cielo, è possibile convertire lettori RPC-2 in lettori RPC-1 attraverso un aggiornamento del firmware. Inserisci il modello del tuo lettore DVD nel tuo motore di ricerca preferito oppure dai un'occhiata ai forum e alle sezioni di download di "The firmware page". Anche se si devono applicare le solite precauzioni per l'aggiornamento del firmware, le esperienze relative alla rimozione della forzatura del codice regionale sono generalmente positive.

## Riproduzione VCD

Per una lista completa delle opzioni disponibili per favore leggi la pagina man. La sintassi per riprodurre un Video CD (VCD) normale è la seguente:

    mplayer vcd://<traccia> [-cdrom-device <dispositivo>]

Esempio:

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

Il dispositivo VCD di default è `/dev/cdrom`. Se la tua impostazione è diversa, crea un collegamento simbolico o indica il dispositivo giusto dalla riga comando con l'opzione `-cdrom-device`.

Perlomeno i lettori CD-ROM Plextor e alcuni Toshiba SCSI hanno prestazioni orribili leggendo i VCD. Questo perché l'`ioctl` CDROMREADRAW non è implementata appieno per questi lettori. Se hai una qualche conoscenza della programmazione SCSI, per favore aiutaci ad implementare un supporto SCSI generico per i VCD.

Nel frattempo puoi estrarre i dati dal VCD con readvcd e riprodurre con MPlayer il file così ricavato.

## Struttura VCD

Un Video CD (VCD) è fatto di settori CD-ROM XA, per es. tracce CD-ROM mode 2 form 1 e 2:

- La prima traccia è in formato mode 2 form 2 il che significa che usa una correzione errori L2. La traccia contiene un filesystem ISO-9660 con 2048 byte/settore. Il filesystem contiene delle informazioni metadati VCD, così come fermi-immagine spesso usati nei menu. I segmenti MPEG per i menu possono anche essere salvati nella prima traccia, ma gli MPEG devono essere spezzettati in una serie di blocchi di 150 settori. Il filesystem ISO-9660 può contenere altri file o programmi che non sono essenziali per le operazioni VCD.

- Le seconde e restanti tracce spesso sono tracce MPEG (filmato) di basso livello di 2324 byte/settore, contenenti un pacchetto dati MPEG PS per settore. Queste sono in formato mode 2 form 1, così da poter archiviare più dati per settore con la perdita di qualche correzione di errore. E' anche valido avere tracce CD-DA in un VCD dopo la prima traccia. In alcuni sistemi operativi c'è qualche trucchetto che fa apparire queste tracce non ISO-9660 in un filesystem. In altri sistemi operativi come GNU/Linux non è (ancora) così. Qui i dati MPEG non possono venir montati. Siccome molti film sono dentro questo tipo di tracce, dovresti provare prima `vcd://2`.

- Ci sono dischi VCD senza la prima traccia (traccia singola e proprio nessun filesystem). Essi sono comunque riproducibili, ma non possono essere montati.

- La definizione dello standard VCD viene chiamato il "White Book" Philips, e non è disponibile on-line visto che deve essere acquistato da Philips. Informazioni più dettagliate sui Video CD si possono trovare nella documentazione di vcdimager.

## Riguardo i file .DAT

Il file .DAT da ~600MB visibile sulla prima traccia del filsystem VCD montato non è un vero file! Viene anche detto "ISO gateway", creato per permettere a Windows di gestire tali tracce (Windows non permette alle applicazioni alcun accesso di basso livello ai dispositivi). Sotto Linux non puoi copiare o riprodurre questi file (contengono spazzatura). Sotto Windows è possibile che il driver iso9660 emuli la lettura a basso livello delle tracce nel file. Per riprodurre un file .DAT ti serve il driver per il kernel che si può trovare nella versione per Linux di PowerDVD. Esso ha un driver modificato per il filesystem iso9660 (`vcdfs/isofs-2.4.X.o`), che è in grado di emulare le tracce di basso livello attraverso quel file fantasma .DAT. Se monti il disco usando il loro driver, puoi poi copiare e anche riprodurre i file .DAT con MPlayer. Ma non funzionerà col driver iso9660 standard del kernel Linux! Usa invece `vcd://`. Alternative per copiare i VCD sono il nuovo driver del kernel cdfs (non incluso nel kernel ufficiale), che mostra le sessioni dei CD come file immagine, e cdrdao, un'applicazione per copiare/fare il dump di CD bit-per-bit.