4.2. 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à.

Nota

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).