DVD Playback HOWTO David Jao 2004-02-26 Diario delle Revisioni Revisione 1.0 2004-02-26 Revisionato da: DJ Primo rilascio, rivisto da LDP Revisione 0.9 2004-02-07 Revisionato da: DJ Proposto a LDP Revisione 0.1 2004-01-26 Revisionato da: DJ Primo rilascio pubblico Questo documento descrive come fare per vedere film in DVD su un computer Linux dotato di lettore DVD. (Traduzione italiana di Piero Capone, picapone@libero.it, revisione di Elisabetta Galli, lab at kkk dot it, Aprile 2005). _________________________________________________________________ Sommario 1. Introduzione 1.1. Licenze e copyright 1.2. Liberatoria 1.3. Feedback 2. Preparazione del sistema 2.1. Prerequisiti hardware 2.2. Creare il link simbolico /dev/dvd 2.3. Impostare la regione del DVD 2.4. X Video Overlay 2.5. Abilitare il DMA 3. Installazione del software 3.1. Red Hat / Fedora 3.2. Debian 3.3. Slackware 3.4. Mandrake 3.5. SuSE 3.6. Gentoo 4. Uso del software 4.1. Principi generali: deinterlacciamento, telecine e framerate 4.2. Istruzioni specifiche per l'uso 5. Risoluzione dei problemi 6. Ulteriori informazioni 1. Introduzione In questo documento verrà descritto come fare per vedere film e video in DVD su un sistema Linux. Verranno fornite istruzioni pratiche, specifiche e semplici per poter essere rapidamente in grado di riprodurre DVD sulla maggior parte di distribuzioni Linux. Verrà posta una particolare attenzione nel descrivere diverse, e poco conosciute, ottimizzazioni necessarie per una regolare riproduzione dei video DVD. _________________________________________________________________ 1.1. Licenze e copyright This document, DVD Playback HOWTO, is copyrighted © 2004 by David Jao. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html. Linux® è un marchio registrato di Linus Torvalds. _________________________________________________________________ 1.2. Liberatoria Non si assume nessuna responsabilità per i contenuti del presente documento. L'uso di concetti, esempi ed informazioni qui riportate è a vostro rischio. Sebbene molto improbabile, potrebbero esserci errori o inesattezze in grado di danneggiare il sistema. Gli autori non si assumono nessuna responsabilità per qualsiasi danno possa occorrervi. Il solo atto di accedere o visionare il contenuto di un DVD, o di occuparsi del software scritto a questo scopo, può essere illegale in alcuni Paesi. Gli autori non si assumono alcuna responsabilità per qualsiasi azione che porti a violare la legge o la giurisdizione alla quale siete sottoposti. Tutti i diritti sono detenuti dai loro rispettivi proprietari, a meno che non sia espressamente citato il contrario. L'uso di termini in questo documento non inficia la validità di marchi registrati o di servizio. La citazione di particolari marchi o prodotti non deve intendersi come approvazione degli stessi. _________________________________________________________________ 1.3. Feedback Domande, commenti, suggerimenti e correzioni sono sicuramente benvenuti e possono essere spediti all'autore di questo documento all'indirizzo . _________________________________________________________________ 2. Preparazione del sistema 2.1. Prerequisiti hardware È necessaria una discreta potenza di elaborazione per riprodurre tranquillamente i DVD. Le capacità richieste dal sistema Linux sono più elevate che in Windows, dato che alcune tecniche di accelerazione hardware per la riproduzione video funzionano solo in Windows. Come minimo, si raccomanda: * CPU 700 Mhz o superiore; * scheda grafica con supporto X Video Overlay * lettore DVD con il supporto DMA abilitato _________________________________________________________________ 2.2. Creare il link simbolico /dev/dvd Se non c'è già il link simbolico /dev/dvd, si digiti, come root, il comando # ln -s /dev/hdc /dev/dvd per creare un link simbolico da /dev/dvd all'attuale dispositivo hardware che rappresenta il lettore DVD-ROM (che in questo esempio è /dev/hdc, ma che dovrà essere rimpiazzato con l'attuale file di dispositivo usato dal proprio lettore). Il link /dev/dvd non è solo una questione di convenienza; quasi tutti i player menzionati in questo HOWTO danno per scontato che il link sia lì. Se non si conosce il nome del dispositivo usato dal proprio lettore DVD-ROM, solitamente lo si può trovare con il comando dmesg | grep DVD digitato in console o in una shell dopo l'avvio del sistema. _________________________________________________________________ 2.3. Impostare la regione del DVD Tutti i lettori DVD (ad eccezione dei lettori RPC Fase I costruiti fino al 1999) rispettano le restrizioni regionali sulla riproduzione scritte nel firmware del lettore e, di conseguenza, si suppone siano impostati su una specifica regione per poter riprodurre dischi di quella regione (e solo di quella). In realtà, quasi tutti i software di riproduzione di DVD in Linux possono aggirare i blocchi regionali incorporati nel lettore, anche se questo richiede del tempo al software e sarebbe meglio, potendo, evitare queste complicazioni. La piccola minoranza che possiede dispositivi di tipo RPC-I non deve fare niente: questi lettori sono già capaci di leggere DVD di qualsiasi regione geografica. Questi lettori sono abbastanza vecchi e, comunque, chi li possiede sa già di averli. Per la maggioranza che possiede un lettore di tipo RPC-II ci sono diverse opzioni a disposizione: 1. Per riprodurre solo dischi che provengono da una sola regione, la scelta più facile è usare il programma regionset per predisporre la regione corretta per il lettore. 2. Per riprodurre dischi che provengono da più regioni, si potrebbe tentare di trovare un aggiornamento del firmware del lettore DVD nella raccolta di firmware non ufficiale presente su rpc1.org. Quasi tutti questi file possono essere installati solo facendo il boot da DOS o Windows. 3. Si potrebbero comprare diversi lettori capaci di leggere DVD di diverse regioni. Dato il costo attuale di questi dispositivi, questa strategia potrebbe essere fattibile. 4. Si potrebbe anche non fare assolutamente nulla, e lasciare alle capacità del software Linux il compito di aggirare le restrizioni regionali. Anche in questo caso però si potrebbe usare il programma regionset per impostare il lettore per la regione usata più spesso, dato che un lettore tipo RPC-II non predisposto per una regione si comporta come se tutte le regioni fossero bloccate. _________________________________________________________________ 2.4. X Video Overlay L'estensione Video Overlay di XFree86 è una caratteristica standard di XFree86 4.x molto poco documentata ed è assolutamente essenziale per una riproduzione video di alta qualità sotto Linux. Questo è l'unico tipo di accelerazione hardware ampiamente supportato in Linux, ed è di gran lunga il più importante elemento di configurazione per riprodurre DVD su un sistema Linux. Per controllare l'esistenza di questa estensione, si digiti xvinfo in un terminale. Se il comando restituisce diverse schermate di output, allora congratulazioni, l'accelerazione hardware video overlay è presente e non ci si dovrà più preoccupare di nulla. Se, invece, xvinfo restituisce una risposta negativa del tipo: # xvinfo X-Video Extension version 2.2 screen #0 no adaptors present significa che non c'è il supporto hardware overlay. Si veda Overlay Troubleshooting per suggerimenti su come rendere operativo il supporto overlay. _________________________________________________________________ 2.5. Abilitare il DMA L'accesso DMA (Accesso Diretto in Memoria) è critico per la riproduzione DVD perché abbassa il sovraccarico della CPU dovuto alla lettura del disco e la lascia libera per la riproduzione video. In molti sistemi, abilitare il supporto DMA per il lettore DVD fa la differenza fra una riproduzione non fluida ed una regolare. Per vedere se il supporto DMA è abilitato si digiti (come root) il comando # hdparm -d /dev/hdc (rimpiazzando /dev/hdc con il nome del proprio dispositivo). Se il DMA è abilitato non c'è altro da fare. Se non lo è, è possibile abilitarlo digitando hdparm -d 1 /dev/hdc. Questo comando potrebbe essere aggiunto in uno script di avvio come /etc/rc.d/rc.local per essere sicuri di abilitare il supporto DMA all'avvio del sistema. Si veda la sezione DMA Troubleshooting nel caso in cui il supporto DMA non venga abilitato dopo aver seguito la procedura sopra descritta. _________________________________________________________________ 3. Installazione del software In questa sezione verrà discussa l'installazione del software per la riproduzione dei DVD su diverse distribuzioni Linux. Per ogni distribuzione verrà indicato come installare nel sistema MPlayer, Xine, Ogle, e VideoLAN, che sono i quattro più popolari pacchetti software per la riproduzione di DVD in Linux. Le istruzioni per l'uso di questi software verranno fornite nella prossima sezione. Si legga la sezione corrispondente alla propria distribuzione. Tutti i comandi per l'installazione descritti di seguito vanno digitati come root. _________________________________________________________________ 3.1. Red Hat / Fedora Chi usa Red Hat Linux oppure Fedora può scaricare tutto il software per la riproduzione di DVD da FreshRPMS. Dato che sono necessari diversi pacchetti per la riproduzione di DVD, il modo più semplice per installarli tutti è usare apt-get. Ecco le istruzioni: 1. Seguire il link per la versione di apt adatta alla propria versione di Red Hat: + Fedora Core 1 + Red Hat Linux 9 + Red Hat Linux 8 + Red Hat Linux 7.3 Scaricare il pacchetto RPM x86 appropriato (in questo esempio, apt-0.5.15cnc3-0.1.fr.i386.rpm) ed installarlo usando il comando rpm come segue: # rpm -Uvh apt-0.5.15cnc3-0.1.fr.i386.rpm 2. Digitare i comandi # apt-get update # apt-get install mplayer xine ogle_gui per fare installare tutto ad apt. _________________________________________________________________ 3.1.1. Annotazioni speciali su VideoLAN e Red Hat L'archivio FreshRPMS contiene il pacchetto videolan-client per Red Hat 9 e per Red Hat 7.3, ma non per Red Hat 8 o per Fedora Core 1. Per installare VideoLAN su Red Hat 9 o Red Hat 7.3 si digiti apt-get install videolan-client lasciando fare tutto ad apt. Gli utenti di Fedora Core 1 che vogliano installare VideoLAN dovranno invece visitare la pagina ufficiale di VideoLAN per Red Hat, e seguire le istruzioni riportate. Io non raccomando agli utenti Fedora di installare VideoLAN, dato che i pacchetti di VideoLAN interferiscono grandemente con i pacchetti prelevati da FreshRPMS ed installati in precedenza. Non sembra ci sia un modo facile per installare VideoLAN su Red Hat 8. _________________________________________________________________ 3.2. Debian Queste istruzioni si riferiscono alla versione stable di Debian (3.0r1 al momento in cui scrivo): si assume che chi ha una versione testing o unstable sappia quello che sta facendo. Ci si assicuri che nel file /etc/apt/sources.list siano presenti le seguenti righe: deb http://hpisi.nerim.net/ stable main deb http://www.interq.or.jp/libra/oohara/debian-unofficial/ ./ deb http://download.videolan.org/pub/videolan/debian woody main (La prima riga è per MPlayer, la seconda per il plugin CSS di Xine e la terza per VideoLAN.) Quindi digitare: # apt-get update # apt-get install mplayer-686 mplayer-fonts mplayer-doc ogle # /usr/share/doc/ogle/examples/install-css.sh # apt-get install xine-ui xine-d5d-plugin xine-d4d-plugin gnome-vlc libdvdcss2 _________________________________________________________________ 3.3. Slackware Il miglior sito per pacchetti aggiuntivi Slackware è http://www.linuxpackages.net/. Il loro motore di ricerca può essere usato per trovare e scaricare Ogle, Xine, MPlayer, libdvdcss, libdvdnav, libdvdread, lame e a52dec dal sito web. Porre i pacchetti in una directory di propria scelta ed usare pkgtool per installare i pacchetti nel sistema. Per quanto riguarda VideoLAN, andrà compilato dai sorgenti dato che ancora non ci sono pacchetti precompilati su LinuxPackages. Come se non bastasse, bisogna considerare che la versione di mpeg2dec inclusa in Slackware 9.1 è troppo vecchia per essere usata con VideoLAN, per cui bisognerà compilarne una più recente. Detto questo, volendo ancora installare VideoLAN, bisognerà scaricare gli ultimi sorgenti da mpeg2dec e VideoLAN e dare i seguenti comandi. Si noti che il supporto ffmpeg di VideoLAN dovrà essere disabilitato, dato che il pacchetto MPlayer di Slackware omette alcuni file header necessari per ffmpeg. # tar xzvf mpeg2dec-0.4.0.tar.gz # cd mpeg2dec-0.4.0 # ./configure # make # make install # cd .. # tar xzvf vlc-0.7.0.tar.gz # cd vlc-0.7.0 # ./configure --disable-ffmpeg # make # make install _________________________________________________________________ 3.4. Mandrake Gli utenti Mandrake possono ottenere i pacchetti per tutti i programmi video dal sito Penguin Liberation Front. La via più veloce è visitare il sito Easy Urpmi e seguire le istruzioni per generare una lista di comandi da digitare per ottenere accesso a PLF usando urpmi. I comandi indicati dal sito web andranno quindi digitati per impostare l'accesso a PLF. Una volta impostato l'accesso a PLF, digitare: # urpmi.update -a # urpmi mplayer libdvdcss2 xine-ui ogle ogle_gui vlc per installare tutti i programmi video. _________________________________________________________________ 3.5. SuSE Il programma YaST incluso in SuSE lavora solo con i pacchetti ufficiali della distribuzione, e non ci sono pacchetti ufficiali che supportino i DVD. Si possono, comunque, installare manualmente tutti i pacchetti dei software per DVD. I pacchetti di MPlayer e Xine per Suse sono disponibili sul sito PackMan. Per MPlayer serviranno i pacchetti MPlayer, lzo e xvid presenti sulla pagina e "tutti i pacchetti addizionali necessari" elencati sulla pagina per ogni pacchetto. Gli utenti di SuSE 9.0 prendano nota che, alla data attuale, il pacchetto di MPlayer per questa distribuzione mostra una dipendenza mancante in libsmbclient.so.0. L'ostacolo può essere aggirato dando i comandi: # rpm -Uvh --nodeps MPlayer-1.0pre3-pm.1.i686.rpm # ln -s libsmbclient3.so.0 /usr/lib/libsmbclient.so.0 Per installare Xine, si dovranno scaricare ed installare i pacchetti libxine1-dvd e xine-ui da PackMan. Il supporto dei DVD criptati in Xine richiede anche l'installazione di libdvdcss dal sito di VideoLAN. Ogle può essere installato usando Red Hat RPMs dal sito di Ogle. Gli utenti di SuSE 9.0 che vogliano installare l'interfaccia grafica di Ogle dovranno installare orbit, gdk-pixbuf, gnome-libs, e libglade da SuSE 8.2. Gli utenti VideoLAN avranno bisogno di scaricare Red Hat RPMs dal sito di VideoLAN e forzarne l'installazione usando rpm --nodeps. I pacchetti di VideoLAN richiedono anche XFree86-compat-libs e freetype da SuSE 8.2 per funzionare correttamente. _________________________________________________________________ 3.6. Gentoo Il comando base da usare è: # emerge sync # USE="dvd mmx sse" emerge mplayer xine-ui vlc ogle-gui Chi possiede un processore AMD dovrà digitare USE="dvd mmx 3dnow" invece di usare il flag sse. I possessori di Athlon XP possono usare i flag 3dnow e sse insieme. _________________________________________________________________ 4. Uso del software Sebbene abbia cercato in tutti i modi di focalizzare questo HOWTO su suggerimenti pratici piuttosto che sulla teoria astratta, è necessario avere alcune minime conoscenze di televisione per capire come ottenere la migliore qualità video possibile sotto Linux. _________________________________________________________________ 4.1. Principi generali: deinterlacciamento, telecine e framerate Il normale video televisivo è interlacciato, che significa che le linee di scansione dispari sono registrate (e mostrate) prima, seguite dalle linee pari, poi ancora le dispari, quindi le pari, e così via. Ogni singola linea è mostrata 30 volte al secondo (o 25, a seconda di dove si vive), ma, a causa dell'interlacciamento, l'intera immagine televisiva è aggiornata 60 volte al secondo (o 50), con solo la metà delle linee totali aggiornate ogni volta. In generale, con film interlacciati, non c'è modo di ricostruire perfettamente ogni singolo frame video senza creare artefatti. Questo punto è tanto importante da doverlo ripetere: non c'è modo di ricostruire perfettamente ogni singolo frame! Il motivo è che le linee dispari sono registrate sul nastro con uno scarto temporale di mezzo frame rispetto alle linee pari. Se l'immagine video è ferma il sincronismo non è un problema, ma per le immagini in movimento esso causa la sostituzione di metà delle linee con l'altra metà. Su uno schermo televisivo non si vede lo spostamento, dato che gli schermi TV (eccezion fatta per quelli ad alta definizione) sono di qualità tanto bassa da rendere invisibili gli artefatti. Comunque, su un monitor per computer lo spostamento è molto visibile e causa artefatti che appaiono in video. Immagini di questi artefatti sono visibili nella sezione interlacciamento della Guida Video di Luke. _________________________________________________________________ 4.1.1. Come sistemare gli artefatti dell'interlacciamento Il processo di rimozione degli artefatti dell'interlacciamento è chiamato deinterlacciamento. Sfortunatamente tutte le tecniche di deinterlacciamento sono in larga misura imperfette, e non c'è un solo metodo che lavori bene in tutte le situazioni. Quindi è importante sperimentare tutte le possibili impostazioni di deinterlacciamento, per vedere quali lavorino meglio per un particolare disco. MPlayer: gli utenti possono trovare una lista di opzioni di deinterlacciamento digitando mplayer -pphelp in un terminale. Trovata l'opzione che si vuole usare, si usi la sintassi -vf pp=