Dalla documentazione di Linux:
Alcuni lettori CDROM sono capaci di cambiare la loro velocità. Ci sono varie ragioni per cambiare la velocità di un CD-ROM. CDROM pressati male possono avere benefici da una velocità minore della massima. I moderni lettori CDROM possono raggiungere velocità molto alte (fino a 24-volte è comune). E' stato riportato che questi lettori possono dare errori di lettura a queste alte velocità, ridurre la velocità può prevenire perdite di dati in queste circostanze. In fine, alcuni di questi lettori possono produrre un fastidioso rumore, che si può ridurre a velocità più basse.
Per ridurre la velocità del lettore si può usare hdparm o un programma chiamato setcd. Usali così:
hdparm -E [velocità] [cdrom]
setcd -x [velocità] [cdrom]
Puoi anche provare:
echo current_speed:4 >/proc/ide/[cdrom device]/settings
ma devi avere i privilegi di root. Può aiutare anche il seguente comando:
echo file_readahead:2000000 >/proc/ide/[cdrom device]/settings
per leggere 2MB in anticipo dal file (è utile per i CDROM rigati). Se viene impostato ad un valore troppo alto, il lettore continuerà a girare e a fermarsi, riducendo drasticamente la performance. Si consiglia anche di regolare il tuo lettore CDROM anche con hdparm:
hdparm -d1 -a8 -u1 (cdrom device)
per abilitare l'accesso DMA, readahead, e l' IRQ unmasking. (se non capisci, *leggi la pagina di man di hdparm*)
Per favore fai riferimento a "/proc/ide/[cdrom device]/settings
" per una regolazione fine del
CDROM.
I lettori SCSI non hanno un modo comune per regolare questi parametri (ne conosci uno? Diccelo!) Esiste una utility che funziona con i lettori SCSI Plextor.
FreeBSD:
Velocità: cdcontrol [-f device] speed [velocità]
DMA: sysctl hw.ata.atapi_dma=1
Per la lista completa delle opzioni disponibili, leggete la pagina di man. La sintassi per la riproduzione di un DVD standard è la seguente:
mplayer dvd://<track> [-dvd-device <device>]
Esempio:mplayer dvd://1 -dvd-device /dev/hdc
Il dispositivo DVD predefinito è /dev/dvd
. Se il tuo sistema è
diverso, crea un symlink o specifica il dispositivo corretto sulla linea di comando
con l'opzione -dvd-device
.
MPlayer usa libdvdread
e libdvdcss
per
decifrare e leggere i DVD. Queste due librerie si trovano nella subdirectory
libmpdvdkit2/
dell'albero di MPlayer, non
devi installarle separatamente. Abbiamo optato per questa soluzione perchè
abbiamo dovuto correggere un bug di libdvdread, e applicare una patch che aggiunge
il supporto al caching delle chiavi CSS crackate per libdvdcss. Risulta un grande
aumento della velocità perchè le chiavi non devono essere crackate ogni volta
prima della riproduzione . Queste chiavi vengono conservate nella
directory $HOME/.mplayer/DVDKeys
.
MPlayer può anche utilizzare le librerie libdvdread
e
libdvdcss
installate nel sistema, ma questa soluzione non è
consigliata, in quanto possono risultare bug, incompatibilità di librerie, e minore velocità.
Il supporto per DVD navigation attraverso dvdnav
era in implementazione, ma
non è mai stato completato del tutto ed è quindi sconsigliato!
Utile se vuoi leggere file VOB dall' hardisk. Compila e
installa libcss 0.0.1 (non più recente) (se MPlayer non lo trova,
usa l'opzione -csslib /percorso/di/libcss.so
). Per usarlo,
devi essere root, usare un binario di Mplayer suid root o far richiamare ad MPlayer il programma
wrapper fibmap_mplayer che è suid root.
I dischi DVD hanno settori da 2048 byte/settore con ECC/CRC. Solitamente hanno un filesystem UDF su una singola traccia, che contiene vari file (piccoli file .IFO e .BUK e grandi (1GB) file .VOB). Questi sono veri file e possono essere copiati/riprodotti dal filesystem montato di un DVD non criptato.
I file .IFO contengono le informazioni per la navigazione del film (capitoli/titoli/mappa delle angolazioni, tabella delle lingue, ecc.) ed è necessario per leggere ed interpretare il contenuto .VOB (film). I file .BUK sono i loro backup. Usano i settori ovunque, quindi bisogna usare il puro indirizzamento dei settori del disco per implementare la navigazione dei DVD navigation. Questo è necessario anche per decrittare il contenuto.
L'intero supporto DVD vecchio stile con libcss deve quindi avere il filesystem del DVD montato e l'accesso a basso livello ai settori della device. Sfortunatamente devi essere root (sotto Linux) per avere l'indirizzo del settore di un file. Hai quindi le seguenti possibilità:
A volte /dev/dvd non può essere letto dagli utenti, quindi gli autori di libdvdread hanno implementato un livello di emulazione che trasferisce gli indirizzi dei settori in nomifile+offset, per simulare un accesso a basso livello su un filesystem montato o anche su un hard disk.
libdvdread accetta anche il punto di mount al posto del nome del dispositivo
e controlla in /proc/mounts
per ottenere il nome del device. E' stato
sviluppato per Solaris, dove i nomi dei dispositivi sono assegnati dinamicamente.
Il dispositivo DVD di default è /dev/dvd
. Se la tua impostazione è diversa,
fai un symlink, o specifica la device corretta alla riga di comando con l'opzione
-dvd-device
.
Il metodo di autenticazione e decrittazione del supporto DVD nuovo stile usa
un libdvdcss modificato (vedi sopra). Il metodo può essere specificato con
la variabile d'ambiente DVDCSS_METHOD
che può avere i valori
key
, disk
o title
.
Se non è specificato nulla vengono provati i seguenti metodi (default: key, title request):
~/.mplayer/DVDKeys
(veloce ;).ioctl()
.
La protezione regionale dei lettori RPC-2 avviene a questo passaggio e potrebbe fallire
su queto tipo di lettori. Se ha successo, le chiavi del titolo verranno decripttate usando
la chiave del bus e la chiave del disco.I lettori DVD RPC-1 proteggono le impostazioni regionali solo su lettori DVD software. I lettori RPC-2 hanno una protezione hardware che permette solo 5 cambiamenti. Potrebbe essere necessario/consigliato aggiornare il firmware a RPC-1 se hai un lettore DVD RPC-2. Aggiornamenti del firmware possono essere trovati qui. Se non c'è un aggiornamento del firmware per il tuo lettore, usa l'applicazione regionset per impostare il codice regionale del tuo lettore DVD (sotto Linux). Attenzione: Si può impostare la regione solo 5 volte.
Per la lista completa delle opzioni disponibili, leggete la pagina di man. La sintassi per vedere i Video CD standard (VCD) è la seguente:
mplayer vcd://numerotraccia [-cdrom-device device]
Esempi:
mplayer vcd://1
mplayer -fs vcd://2 -cdrom-device /dev/hdc
Nota: Almeno i Plextor e alcuni CD-ROM SCSI della Toshiba hanno terribili prestazioni nella lettura dei VCD. Questo perchè l'ioctl CDROMREADRAW non è del tutto implementato per questi lettori. Se hai conoscenze nella programmazione SCSI, per favore aiutaci ad implementare il supporto SCSI generico per i VCD.
Nel frattempo puoi estrarre i dati dal VCD con readvdc e vedere il file risultante con MPlayer.
I dischi VCD contengono una o più tracce:
vcd://2
per prima.Circa i file .DAT:
Il file da ~600 MB visibile sulla prima traccia vcd montato non è un vero file!
E' un così detto iso gateway, creato per permettere a Windows di gestire quel tipo di tracce
(Windows non consente assolutamente alle applicazioni un accesso a basso livello ai dispositivi).
Sotto linux, non puoi copiare o riprodurre tali file (contengono schifezze).
Sotto Windows è possibile perchè il suo driver iso9660 emula la lettura delle tracce pure
in questo file. Per riprodurre un file .DAT devi usare un driver del kernel che si può
trovare nella versione Linux di PowerDVD. Ha un driver per il filesystem iso9660 modificato
(vcdfs/isofs-2.4.X.o). Se monti il disco col loro driver puoi copiare e riprodurre
il file .DAT con mplayer. Ma non funzionerà
col driver iso9660 standard contenuto nel kernel! Si consiglia invece di usare l'opzione
-vcd
. Altre opzioni per la copia dei VCD sono
il nuovo driver del kernel cdfs
(mostra le sessioni del CD come file di immagine) e
cdrdao (un'applicazione che fa una copia bit-a-bit
dei cd).
Il dispositivo VCD di default è /dev/cdrom. Se il dispositivo è diverso, allora devi fare un
link simbolico, o specificarlo dalla linea di comando con l'opzione -cdrom-device
.