Top: International: Italiano: Computer: Software: Multimedia: Mplayer




[ history ]

Introduzione a Mplayer

La versione a cui ci riferiremo è la 0.90pre2. Con MPlayer potremo vederci i nostri dvd, divx, avi e molti altri formati video in tutta tranquillità godendo di un ottimo e stabile player. Lo consiglio anche al posto di Xine (altro famoso player linux) dato che xine mi andava spesso in Segmentation Fault e in alcune release c'erano problemi di compilazione.
Tutto quello che vado a spiegare lo potete trovare anche approfondito nella directory DOCS/Italian dei sorgenti (una volta decompressi). Mplayer, come abbiamo detto, è un lettore di filmati per Linux che supporta file MPEG, VOB, AVI, VIVO, ASF/WMV, QT/MOV, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ. SI possono così guardare Video CD, DVD, DivX. Ovviamente però è necessario installare prima le librerie necessarie. La libreria principale (non per DVD) che supporta molti di questi formati (tra cui AVI e quindi DivX) è rappresentata dai codec Win32, scaricabili dal sito di Mplayer. I requisiti per fare funzionare Mplayer sono sicuramente già presenti nel vostro sistema e sono:
- binutils >=2.11.x
- gcc 2.95.3 / 2.95.4. Dice di non usare la versione 2.96 o la 3 perchè generano codice errato!!
- XFree86 >=4.2.0 (la consigliata per le innovazioni tra cui Xv e l'accelerazione YUV (vedremo come usarla su schede matrox)
- make (la più nuova)
- SDL, non fondamentale ma consigliato. Aiuta in alcuni casi di audio difettoso e mostra i sottotitoli (se il filmato li supporta)
- libjpeg
- libpng (necessario per la GUI, Graphical User Interface, l'interfaccia Grafica).


[ history ]

I codec

Per prima cosa dovete sapere quali codec scaricare in base ai formati audio che avete intenzione di vedere. Per Mplayer possono essere:

- libavcodec = legge e codifica RealVideo ed ha la più alta velocità di decodifica per filmati DivX.
- Win32 = comprendono molti codec. I codec originali "avifile" sono simili ma non uguali. Si consiglia l'uso di questi codec al posto di quelli originali per potere riprodurre tutti i codec supportati.
- DivX4/DivX5 = serve essenzialmente per codificare un filmato, ma se usate libavcodec andrete molto più veloci.
- XviD = L'alternativa di codifica OpenSource a Divx4Linux. Molto più veloce di DivX4.
- XAnim = i migliore codec per decodificare filmati 3ivx e Indeo 3/4/5.

Il consiglio a chi riproduce file DivX è di scaricare solo i codec Win32.
Dal sito di Mplayer potete scaricarvi il pacchetto w32codecs.zip. Una volta scaricato il file dobbiamo decomprimerne il contenuto in /usr/lib/win32 in modo che subito dentro questa cartella siano presenti i file. Io ho a disposizione un file tar.bz2 invece che .zip (nn so come mai) e per ottenere lo stesso risultato dò i comandi:

#bunzip2 w32codes.tar.bz2
#cp w32codes.tar /usr/lib
#tar xvf w32codex.tar
#mv w32codecs-0.90** win32


Dove l'ultimo passaggio rinomina la directory creata dalla decompressione dell'archivio in win32.
Abbiamo quindi installato correttamente i primi codec che ci permetteranno di vedere la maggior parte dei filmati. Al momento della riproduzione, se otterrete un errore che dice che non trova un codec adatto al formato, controllate l'installazione dei codec win32 e se necessario scaricatevi i codec necessari.


[ history ]

Decompressione dei sorgenti

Una volta scaricato il pacchetto dei sorgenti di Mplayer, eseguiamo le seguenti operazioni lo copiamo in una cartella temporanea come /usr/local/src e lo decomprimiamo:

#cp MPlayer-0.90pre2.tar.bz2 /usr/local/src
#cd /usr/local/src
#bunzip2 MPlayer-0.90pre2.tar.bz2
#tar xvf MPlayer-0.90.pre2.tar
#cd MPlayer-0.90pre2


Siamo quindi dentro la directory principale dei sorgenti.
Prima di compilare MPlayer, possiamo impostare dei miglioramenti delle prestazioni del futuro Mplayer, ad esempio sfruttando a pieno la nostra scheda video.


[ history ]

Ottimizzazione per schede video

MPlayer supporta vari formati per l'output e ognuno ha le sue caratteristiche. Non tratteremo completamente il paragrafo del manuale di mplayer spiegando ogni tipo di output, ma ci soffermeremo su alcuni.
Per prima cosa MPlayer supporta i Registri MTRR che forniscono un grande aumento di prestazioni. E' quindi caldamente consigliato verificare che siano installati correttamente. I registri MTRR dovrebbero essere configurati automaticamente da XFreee 4.x.x e per verificarlo date il comando:

#cat /proc/mtrr

Ottenendo un output simile a:

reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1
reg01: base=0xe4000000 (3648MB), size= 64MB: write-combining, count=1
reg02: base=0xe2000000 (3616MB), size= 16MB: write-combining, count=1


I miei registri sono configurati bene. Se invece non lo fossero allora vi consiglio di andare a leggere la parte "MTRR" del capitolo "Dispositivi di Output Video" della pagina DOCS/Italian/documentation.html. Non mi soffermo supponendo che nella maggior parte dei casi siano configurati automaticamente.
Il primo tipo di output video supportato da MPlayer è l'XV (XVideo). Sono presenti in versioni di XFree a partire dalla 4.0.2 e servono per potere usare le routine hardware della propria scheda video. Con questo driver si può anche regolare la luminosità/ contrasto/hue. Per potere usare le estensioni XV devi assicurarti che la tua versione di XFree sia maggiore o uguale alla 4.2.0, che la tua scheda video supporti l'accelerazione hardware e che X carica l'estensione XV e che la tua scheda sia supportata sotto linux. Per vedere se X carica XV dovreste avere una riga simile a:

(II) Loading extension XVideo

nel file /var/log/XFree86.0.log (o dovunque voi abbiate il file di log di X). Per vedere se la vostra scheda è supportata da XV sotto Linux, da X in console date il comando:

#xvinfo

Ottenendo un output simile a:

X-Video Extension version 2.2
screen #0
Adaptor #0: "Matrox G-Series Backend Scaler"
number of ports: 1
port base: 51
operations supported: PutImage
supported visuals:
depth 24, visualID 0x21
depth 24, visualID 0x22
number of attributes: 4
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 66046)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_DOUBLE_BUFFER" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
maximum XvImage size: 1024 x 1024
Number of image formats: 4
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x59565955 (UYVY)
guid: 55595659-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)


Infine dobbiamo compilare MPlayer con il supporto xv.
Un altro output video è ilDGA (Direct Graphics Access, Accesso diretto alla Grafica). Questo output permette di aggirare il server X e modificare direttamente la memoria del framebuffer, ma è necessario essere utenti root o avere MPlayer come suid root (IL CHE È PERICOLOSO SU SERVER O COMPUTER NON A UTENZA CASALINGA). Per vedere se il supporto DGA è presente, nel file di log di X dovreste avere una riga simile:

(II) Loading extension XFree86-DGA

Altri due output sono l'SDL e il SVGAlib (per il quale è necessario l'omonimo pacchetto delle librerie installato), ma tralascio questa parte.
Esiste poi l'output con il Framebuffer. Il supporto generico lo tralascio e vi rimando al manuale. Vediamo però dei driver particolari specifici di varie schede video. Ad esempio vediamo il Framebuffer Matrox (mga_vid) attivo per schede video Matrox G200/G400/G450/G550. Praticamente con il driver mga_vid sarà possibile riscalare l'immagine (cambiare la dimensione) del frame del filmato a qualunque dimensione che rientri nella RAMDAC (la memoria) della scheda video. Questo rescaling non viene effettuato a livello software (non si carica così la cpu) ma solo a livello hardware di scheda video. In questo modo possiamo ottenere filmati a pieno schermo di buona qualità e molto veloci.
Il supporto per gestire il rescaling è gestito da un modulo del kernel: mga_vid.o. Funziona sia in console con il framebuffer, sia sotto X. Il modulo è presente nella directory drivers/ dei sorgenti di MPlayer in formato sorgente (è quindi da compilare). Per compilarlo, a partire dalla directory dei sorgenti di Mplayer, diamo:

#cd drivers
#make


A questo punto dovrebbe averci compilato il modulo mga_vid.o. Per seconda cosa dobbiamo creare il device a caratteri /dev/mga_vid che sarà usato dal modulo per comunicare con il dispositivo. Diamo quindi i comandi:

#mknod /dev/mga_vid c 178 0

Possiamo ora caricare il modulo con il comando:

#insmod mga_vid.o

Se tutto è andato bene, dovremmo vedere listato il modulo "mga_vid" come output del comando "lsmod" e un output simile dando il comando "dmesg | grep mga_vid":

mga_vid: Found MGA G400/G450
mga_vid: MMIO at 0xc984e000 IRQ: 11 framebuffer: 0xE2000000
mga_vid: OPTION word: 0x50040120 mem: 0x00 SDRAM
mga_vid: detected RAMSIZE is 16 MB
syncfb (mga): IRQ disabled in mga_vid.c


Fate attenzione alla penultima riga. Vi dice quanta memoria video è stata rilevata. Se è sbagliata, allora per dovrete inserire il modulo con il seguente comando:

#insmod mga_vid.o mga_ram_size=16

sostituendo a 16 la quantità della vostra memoria in MB.
A questo punto possiamo fare in modo che il modulo venga caricato ogni volta al boot da INIT (se come me non avete l'automounter del kernel attivato). Per farlo, copiamo il modulo in una directory in /lib/modules/versione-kernel/kernel/. Diamo ad esempio il comando:

#cp mga_vid.o /lib/modules/2.4.18/kernel/drivers

Ed infine mettiamo mano al file di INIT che carica i moduli al boot (sulla slackware /etc/rc.d/rc.modules) ed inseriamo una riga del genere:

### MGA_VID support ###
# Carica il modules mga_vid usato da mplayer per il rescaling a buffer triplo.
# dei frame dei filmati.
/sbin/modprobe mga_vid


Adesso aggiorna i moduli:

#depmod -a

Esistono anche simili driver framebuffer specifici per shcede video SiS 6326 e 3dfx.
Un altro tipo di output è quello in OpenGL ovvero tramite le librerie grafiche accelerate. Non tutti i driver lo supportano però. I driver Utah-GLX lo supportano. I driver XFree86 (DRI) maggiore o uguale di 4.0.3 lo supporta solo con le schede Matrox e Radeon. Per informazioni visitate la pagina http://dri.sourceforge.net.
Ora che abbiamo preparato tutte le ottimizzazioni video di Mplayer, passiamo alla sua compilazione.


[ history ]

Compiliare MPlayer

Per compilarlo posizioniamoci nella directory principale dei sorgenti. I comandi per compilarlo sono "./configure", "make" e "make install". Dato però che abbiamo preparato delle ottimizzazioni, è meglio dare il configure con tutti i parametri necessari. Per sapere la lista di tutti i parametri disponibili date il comando "./configure --help". Vediamo i principali:

--prefix=[DIR] (default /usr/local) = ovvero la directory dentro la quale verranno messi tutti i file di Mplayer.
--enable-lirc = attiva il supporto per il cotrollo da remoto di MPlayer (con gli infrarossi). Deve essere supportato nel kernel.
--enable-gui = ABILITA LA GUI (Graphical User Interface). Per intenderci potremo usare il mouse e agire su una mascherina per andare avanti con le immagini, aumentare il volume, caricare un film. La attiviamo noi.

--enable-gl = compila con il supporto video OpenGL
--enable-dga = compila con il supporto DGA
--enable-sdl = compila con il supporto SDL
--enable-mga = compila con supporto per il framebuffer matrox (mga_vid) in console
--enable-xmga = compila con il supporto per il framebudder matrox (mga_vid) da X
--enable-xv = compila con il supporto XVideo
--language=xx = sceglie la lingua (default EN). Noi italiani metteremo "it".
Noi scegliamo per ordine di installare MPlayer nella directory /usr/local/mplayer.
Per prima cosa creiamo la suddetta directory:

#mkdir /usr/local/mplayer

e poi procediamo alla compilazione, facendo attenzione a scegliere gli output video che avevamo preparato. Io ad esempio confdigurerò come:

#./configure --prefix=/usr/local/mplayer --enable-gui --enable-mga --enable-xmga --enable-xv --language=it

Dato il comando se tutto è andato bene procediamo con la compilazione e l'installazione:

#make
#make install


Se tutto è andato bene allora abbiamo installato MPlayer con successo.


[ history ]

Aggiunta dell'eseguibile al path

Dato che abbiamo scelto di installare MPlayer in una directory fuori dal path, impostiamo ora di aggiungere al PATH la directory /usr/local/mplayer/bin. Per farlo, sulla slackware, apriamo il file /etc/profile e arriviamo ad una riga simile a:

# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/sbin:/usr/sbin:$JAVA_HOME/bin:/usr/local/gphoto/bin";


e modifichiamolo fino ad ottenere la riga:

# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/sbin:/usr/sbin:$JAVA_HOME/bin:/usr/local/gphoto/bin:/usr/local/mplayer/bin";


[ history ]

I permessi per mga_vid

Il device mga_vid deve avere dei permessi speciali in modo tale che un utente che può riprodurre un filmato con mplayer possa anche usare il framebuffer matrox. Per farlo creiamo un gruppo "mplayer":

#groupadd mplayer

E vi facciamo appartenere tutti gli utenti che possono aprire il framebuffer matrox. Diamo quindi i permessi 664 al device:

#chmod 664 /dev/mga_vid


[ history ]

Installazione di una GUI

Per potere sfruttare una interfaccia grafica sotto X dobbiamo scaricarla dal sito di Mplayer. Ne esistono molte e noi abbiamo scelto quella di default. Il file scaricato è nominato "default.tar.bz2". Per installarlo come impostazione dell'utente creiamo la directory .mplayer nella home dell'utente:

$mkdir ~/.mplayer

E dentro di essa la directory "Skin":

$mkdir ~/.mplayer/Skin

Copiamo qui il file default.tar.bz2 e decomprimiamolo:

$bunzip2 default.tar.bz2
$tar xvf default.tar


Il nostro skin è installato (ogni skin ha una sua directory in ~/.mplayer/Skin/).


[ history ]

Installazione dei font

I font servono sia per i sottotitoli sia per visualizzare varie informazioni sulla finestra del filmato. Li scarichiamo dal sito di MPlayer e il nome del file è "mp-arial-iso-8859-1.tar.bz2". Decomprimiamo l'archivio in una directory:

$bunzip2 mp-arial-iso-8859-1.tar.bz2
$tar xvf mp-arial-iso-8859-1.tar
$cd mp-arial-iso-8859-1/


Dentro quella directory dovete scegliere la grandezza del font (arial-14, arial-18, arial-24, arial-28) e copiare i contenuti della rispettiva directory in ~/.mplayer/font:

$mkdir ~/.mplayer/font
$cp arial-14/* ~/.mplayer/font/


[ history ]

Esecuzione di Mplayer

Per eseguire mplayer, una volta che l'eseguibile è nel path, diamo il comando "mplayer [OPZIONI] nomefile". Le opzioni possono essere:

-vo [driver] = specifica il tipo di output video da usare (per intenderci mga, xmga, x11, xv, sdl...). Per avere una lista completa dei video output installati date il comando "mplayer -vo help". Per usare Il framebuffer matrox in X date allora è "-vo xmga" (se in console allora -vo mga).
-ao [driver] = tipo di output sonoro. Anche qui -ao help per infos.
-gui = fa aprtire mplayer con la GUI. Potete caricare i filmati quindi dalla gui senza specificare in console il file da riprodurre. Ce se sono altre ("mplayer --help") ma qui ho riassunto le più usate.
Per fare partire ad esempio "Il nemico alle porte" darò il comando:

$mplayer -vo xmga -ao oss /mnt/cdrom/Il\ Nemico\ alle\ porte.avi

Mplayer farà quindi un po' di output in console (dove cerca il relativo codec, inizializza gli output video e audio, carica i font ecc...) che consiglio caldamente almeno le prime volte di controllare per cercare degli errori.


[ history ]

based

1. http://opensp.altervista.org/



 All text is available under the terms of the GNU Free Documentation License. (See Copyright Policy for details.) 
© Open-Site Foundation, Inc.
Hosted by Android Technologies, Inc. the medical robotics news source.
Visit our sister sites dmoz.org | mozilla.org | chefmoz.org | musicmoz.org