Utilizzo CD/DVDLettori 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]/settingshdparm -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.
FreeBSDvelocità:
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 .
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.
Struttura DVD
I dischi DVD hanno 2048 byte per settore con ECC/CRC. Di solito hanno un
filesystem UDF su una sola traccia, contenente svariati file (piccoli file
.IFO e .BUP e grossi (1GB) file .VOB). Questi sono file veri e possono esser
copiati/riprodotti dal filesystem montato di un DVD non criptato.
I file .IFO contengono le informazioni per navigare nel film
(capitoli/titoli/angolazioni, tabella lingue, etc) e sono necessari per leggere
ed interpretare il contenuto .VOB (il film). I file .BUP sono dei loro backup.
Usano sectors dappertutto, per cui hai bisogno
di usare un indirizzamento dei settori del disco a basso livello per
implementare la navigazione DVD o decrittarne il contenuto.
Il supporto per DVD ha bisogno di un accesso di basso livello basato su settori
al dispositivo. Sfortunatamente devi (sotto Linux) essere root per ottenere
l'indirizzamento del settore in un file. Per questo non usiamo proprio il
filesystem del kernel, piuttosto lo reimplementiamo nello spazio utente di
esecuzione. libdvdread 0.9.x fa ciò. Non serve il
driver del kernel per il filesystem UDF visto che ha già il suo driver
integrato per il filesystem UDF. Inoltre non serve che il DVD sia montato visto
che viene utilizzato solo l'accesso di basso livello a settori.
Alcune volte /dev/dvd non può esser letto dagli utenti,
perciò gli autori di libdvdread hanno implementato un
livello di emulazione che traduce gli indirizzi dei settori in
nomifile+posizioni relative, per emulare un accesso di basso livello su di un
filesystem montato o anche su un disco fisso.
libdvdread accetta anche il nome del punto di mount al
posto del nome del dispositivo per l'accesso di basso livello e controlla in
/proc/mounts per definire il nome del dispositivo.
E' stato sviluppato per Solaris, dove i nomi dei dispositivi sono allocati
dinamicamente.
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.
Attenzione: puoi cambiare la zona solo 5 volte.
I lettori DVD RPC-1 proteggono le impostazioni di zona solo via software. I
lettori RPC-2 hanno invece una protezione hardware che permette solo 5
modifiche. Può esser necessario/consigliato aggiornare il firmware a RPC-1 se
hai un lettore DVD RPC-2. Puoi provare a cercare aggiornamenti di firmware per
il tuo lettore su internet,
questo forum su firmware
potrebbe essere un buon punto di partenza per la tua ricerca.
Se non c'è alcun aggiornamento di firmware disponibile per il tuo dispositivo,
usa lo strumento
regionset per
impostare la zona del tuo lettore DVD (sotto Linux).
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 .
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
.
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 .
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.