# Instalación

Una guía de instalación rápida puede encontrarse en el archivo `README`. Por favor, léala primero y luego vuelva aquí para obtener el resto de detalles sanguinolientos.

En esta sección trataré de guiarlo a través del proceso de compilación y configuración de MPlayer. No es fácil, pero no necesariamente difícil. Si experimenta un comportamiento diferente al que explico, por favor busque en esta documentación y encontrará las respuestas. Si ve un enlace, por favor sigalo y lea atentamente su contenido. Le llevará algún tiempo, pero vale la pena.

Necesita un sistema relativamente reciente. En Linux, un sistema con núcleo 2.4.x es recomendado.

## Requerimientos de Software

- binutils - la versión sugerida es 2.11.x. Este programa es el responsable de generar instrucciones MMX/3DNow!/etc, por lo tanto muy importante.

- gcc - versiones recomendadas son 2.95 y 3.3+. 2.96 y 3.0.x generan código con fallas, 3.1 y 3.2 tambien tuvieron sus problemas.

- XFree86 - versión sugerida siempre la más nueva (4.3). Normalmente, todos quieren esto, desde XFree 4.0.2, viene con la extensión XVideo (referida en varios lugares como Xv) que se usa en efecto para activar la aceleración YUV por hardware (mostrado rápido de imagen) en placas que lo soportan. Asegúrese que el paquete de desarrollo este también instalado, de otra manera no funcionará. Para algunas placas de vídeo no se necesita XFree86. Vea el listado abajo.

- make - versión sugerida siempre la última (por lo menos la 3.79.x). Esto normalmente no es importante.

- SDL - no es obligatoria, pero puede ayudar en algunos cosas (audio malo, placas de vídeo que sufren retardo extraños con el controlador xv). Siempre use la versión más actual (empezando por 1.2.x).

- libjpeg - decodificador opcional de JPEG, usado por la opción `-mf` y algunos archivos MOV de QT. Útil para ambos MPlayer y MEncoder si planea trabar con archivos jpeg.

- libpng - recomendado y decodificador por omisión de (M)PNG. Necesario para la IGU. Útil para ambos MPlayer y MEncoder.

- lame - recomendado, necesario para codificar audio en MP3 audio con MEncoder, la versión recomendada es siempre la más nueva (por lo menos 3.90).

- libogg - opcional, necesaria para reproducir archivos con formato OGG.

- libvorbis - opcional, necesario para reproducir archivos de audio OGG Vorbis.

- LIVE.COM Streaming Media - opcional, necesario para reproducir flujos RTSP/RTP.

- directfb - opcional, de

- cdparanoia - opcional, para soporte de CDDA

- libfreetype - opcional, para soporte de fuentes TTF Versión mínima requerida es 2.0.9.

- libxmms - opcional, para soporte de plugins de entrada de XMMS La versión mínima necesaria es 1.2.7.

- libsmb - opcional, para soporte Samba.

- libmad - opcional, para decodificación rápida de MP3 en plataformos sin FPU.

## Características

- Decida si necesita GUI (interfaz gráfica de usuario). Si lo necesita, vea la sección GUI antes de compilar.

- Si desea instalar MEncoder (nuestro gran codificador multiproposito), vea la sección MEncoder.

- Si tiene una placa sintonizadora de TV compatible con V4L, y desea usarla para ver/capturar y codificar películas con MPlayer, lea la sección entrada de TV.

- Existe un buen soporte de Menu en Pantalla listo para ser usado. Verifique la sección Menú en Pantalla.

Lo siguiente es armar MPlayer:

    ./configure
    make
    make install

En este punto, MPlayer ya está listo para usar. El directorio `$PREFIX/share/mplayer` contiene el archivo `codecs.conf`, que se lo usa para decirle al programa todos los codecs y sus posibilidades. Este archivo es necesario solo cuando quiera cambiar sus propiedades, ya que el archivo ejecutable principal contiene una copia interna del mismo. Revise si tiene el archivo `codecs.conf` en su directorio de inicio (`~/.mplayer/codecs.conf`) olvidado de alguna instalación previa de MPlayer y borrela.

Note que si tiene un `codecs.conf` en `~/.mplayer/`, el `codecs.conf` interno y el de sistema serán ignorados por completo. No use esto a menos que quiera trapichear con las cosas internas de MPlayer lo que puede ocasionarle problemas. Si quiere cambiar el órden de búsqueda de los codecs, use la opción `-vc`, `-ac`, `-vfm`, o `-afm` en la línea de órdenes o en su archivo de configuración (vea la página de manual).

Los usuarios de Debian pueden construir un paquete .deb, es muy simple. Simplemente ejecute

    fakeroot debian/rules binary

en el directorio raíz de MPlayer. Vea la sección paquetes de Debian para instrucciones más detalladas.

Siempre revise la salida de `./configure`, y el archivo `config.log`, ellos contienen información acerca de lo que se compilará, y que no. Quizá quiera ver también los archivos `config.h` y `config.mak`. Si alguna de las librerías que tiene instaladas no fueron detectadas por `./configure`, por favor revise si tiene los archivos de encabezados correspondientes (normalmente los paquetes -dev) y que sus versiones sean las mismas. El archivo `config.log` normalmente dice que falta.

Aunque no es obligatorio, las fuentes deberían ser instaladas para poder usar el texto en pantalla (OSD) y los subtítulos. El método recomendado es instalar una fuente TTF y avisarle a MPlayer que lo use. Vea la sección Subtítulos y OSD para más detalles.

## ¿Qué hay acerca de la GUI?

La GUI necesita GTK 1.2.x (no es totalmente GTK, pero los paneles son). Las pieles están guardadas en formato PNG, por lo tanto GTK, libpng (y sus archivos de desarrollos, normalmente llamados gtk-dev y libpng-dev) deben estar instalados. Puede compilarlo especificando la opción `--enable-gui` a `./configure`. Luego de compilarlo, puede usar el modo GUI, ejecutando el binario `gmplayer`.

Actualmente no se puede usar la opción `-gui` en la línea de comandos, debido a razones técnicas.

Como MPlayer no tiene una piel incluida, debe bajarlas si desea usar la GUI. Vea la página de descargas. Deberían ser extraídas al directorio global de pieles normal (`$PREFIX/share/mplayer/skins/`), o al directorio personal `$HOME/.mplayer/skins/`. MPlayer por omisión busca en esos directorios por un directorio llamado `default`, pero puede usar la opción `-skin pielnueva`, o usar la directiva `skin=pielnueva` en el archivo de configuración para usar el directorio `*/skins//pielnueva`.

## Subtítulos y OSD

MPlayer puede mostrar subtítulos juntos con los archivos de películas. Actualmente los siguientes formatos están soportados:

- VobSub

- OGM

- CC (closed caption)

- MicroDVD

- SubRip

- SubViewer

- Sami

- VPlayer

- RT

- SSA

- PJS (Phonenix Japanimation Society)

- MPsub

- AQTitle

- JACOsub

MPlayer puede volcar los formatos de subtítulos listados anteriormente (con excepción de los 3 primeros) en los siguientes formatos de salida con las opciones correspondientes:

- MPsub: `-dumpmpsub`

- SubRip: `-dumpsrtsub`

- MicroDVD: `-dumpmicrodvdsub`

- JACOsub: `-dumpjacosub`

- Sami: `-dumpsami`

MEncoder puede volcar subtítulos de DVD en formato VobSub.

La linea de comando difiere levemente para los diferentes formatos:

### Subtítulos VobSub

Los subtítulos VobSub consisten de un gran (varios megabytes) archivo `.SUB`, y opcionalmente un archivo `.IDX` y/o un archivo `.IFO`. Si tiene archivos como `ejemplo.sub`, `ejemplo.ifo` (opcional), `ejemplo.idx` - entonces debe pasarle a MPlayer la opción `-vobsub ejemplo [-vobsubid id]` (la ruta completa es opcional). La opción `-vobsubid` es como la opción `-sid` para DVDs, puede elegir entre pistas de subtítulos (lenguajes) con ella. En el caso que `-vobsubid` se omita, MPlayer tratará de usar el lenguaje dado por la opción `-slang` y sino usará el langidx en el archivo `.IDX` para configurar el lenguaje de los subtítulos. Si esto falla no habrá subtítulos.

### Otros subtítulos

Los otros formatos consisten de un archivo de texto simple conteniendo el tiempo y la información del texto a colocar. Uso: si tiene un archivo como `ejemplo.txt`, debe pasarle a MPlayer la opción `-sub ejemplo.txt` (la ruta completa es opcional).

### Ajustando la sincronización de subtítulos y su ubicación:

`-subdelay seg`

  Retrasa los subtítulos en `seg` segundos. Puede ser un número negativo.

`-subfps TASA`

  Especifica la tasa de cuadros por segundo del archivo de subtítulos (número flotante).

`-subpos 0-100`

  Especifica la posición de los subtítulos.

Si experimenta un retraso creciente de retraso entre la película y los subtítulos cuando esta usando un archivo de subtítulos de MicroDVD, lo más probable es que la tasa de cuadros por segundo de la película y de los subtítulos sea diferente. Note que el formato de subtítulos de MicroDVD usa números de cuadros absoluto para su temporización, y por lo tanto la opción `-subfps` no puede ser usada con este formato. Como MPlayer no tiene una manera de adivinar la tasa de cuadros por segundo del archivo de subtítulos, debe convertirlo manualmente. Hay un pequeño guión de perl en el directorio `contrib` del sitio FTP deMPlayer que hace esa conversión.

Para más información acerca de subtítulos para DVD, lea la sección DVD.

### El formato de subtítulos propio de MPlayer (MPsub)

MPlayer introduce un nuevo formato de subtítulos llamado MPsub. Fue diseñado por Gabucino. Básicamente su característica más importante es ser basado dinámicamente en el tiempo (a pesar de que tiene un modo por cuadros también). Un ejemplo (de DOCS/tech/mpsub.sub):

    FORMAT=TIME
    # primer número  : espera esto desde que el subtitulo anterior desapareció
    # segundo número : mostrar el subtitulo actual esta cantidad de segundos

    15 3
    Hace mucho, mucho tiempo atrás...

    0 3
    en una galaxia muy lejana...

    0 3
    Naboo estaba bajo un ataque.

Como puede ver, el objetivo principal fue hacer la edición/temporización/unión y cortado de subtítulos más fácil. Y, si - por decirlo - consigue un subtitulo SSA pero esta mal temporizado o tiene problemas de retraso con su versión de la película, entonces puede hacer

    mplayer vacío.avi -sub fuente.ssa -dumpmpsub

. Un archivo `dump.mpsub` se creara en el directorio actual, que contendrá la fuente del texto de los subtítulos, pero en el formato MPsub. Ahora puede agregar/quitar segundos a los subtítulos.

Los subtítulos son mostrados con una técnica llamada 'OSD', On Screen Display (Muestra en Pantalla). La muestra en pantalla se muestra para mostrar el tiempo, la barra de volumen, la barra de búsqueda, etc.

### Instalando OSD y subtítulos

Necesita un paquete de tipografías para MPlayer para poder usar OSD/subtítulos. Hay muchas maneras de conseguirlo:

- Use la herramienta generadora de tipografías en `TOOLS/subfont-c`. Es una herramienta completa para convertir una tipografía TTF/Type1/etc a tipografía pkg de MPlayer (lea `TOOLS/subfont-c/README` para más detalles).

- Use el plugin de GIMP generador de tipografías en `TOOLS/subfont-GIMP` (nota: debe tener también el plugin HSI RAW, vea ).

- usando una tipografía TrueType (TTF), gracias a la biblioteca freetype. ¡La versión debe ser 2.0.9 o mayor! Entonces tiene 2 métodos:

  - use la opción `-font /ruta/a/tipografía_ejemplo.ttf` para especificar un archivo de tipografía TrueType en cada ocasión

  - cree un enlace simbólico:

        ln -s /ruta/a/tipografía_ejemplo.ttf ~/.mplayer/subfont.ttf

  Si MPlayer fue compilado con soporte para fontconfig, los métodos de arriba no funcionarán, en su lugar la opción `-font` espera un nombre de tipografía fontconfig y por defecto se usa la tipografía sans-serif. Para obtener una lista de los tipos de letra que conoce fontconfig, use `fc-list`. Ejemplo: `-font 'Bitstream Vera Sans'`

- Descargue paquetes de fuentes listos para usar del sitio de MPlayer. Nota: actualmente las fuentes disponibles están limitadas al soporte ISO 8859-1/2, pero existen algunas otras fuentes (incluyendo Koreano, Ruso, ISO 8859-8, etc)en la sección contrib/font del FTP, hechas por los usuarios.

  Las fuentes deberían tener el archivo apropiado `font.desc` que mapea las posiciones de la fuente unicode al código de página real del texto de los subtítulos. Otra solución es tener los subtítulos codificados en formato UTF8 y usar la opción `-utf8` o simplemente nombrar a los archivos de subtítulos `<nombre_del_video>utf` y tenerlo en el mismo directorio que el archivo de vídeo. La recodificación desde diferentes códigos de página a UTF8 lo puede hacer usando los programas `konwert` o `iconv`.

  #### Algunas URLs

  URL | Comentario
  --- | ---
  | Fuentes ISO
  | varias fuentes hechas por usuarios
  | Tipografías Coreanas y plugin RAW

Si elige fuentes no TTF, descomprima el archivo que haya descargado a `~/.mplayer` o `$PREFIX/share/mplayer`. Entonces renombre o enlace simbólicamente uno de los directorios extraídos a `font`, por ejemplo:

    ln -s ~/.mplayer/arial-24 ~/.mplayer/font

Ahora debería ver un reloj en la esquina superior izquierda de la película (apaguelo pulsado la tecla o).

(los subtítulos están siempre activos, para desactivarlos por favor lea la página del manual).

OSD tiene 4 estados (cambielo con o):

1. barra de volumen + barra de búsqueda (por omisión)

2. barra de volumen + barra de búsqueda + reloj + posición porcentual del archivo cuando se busca

3. barra de volumen + barra de búsqueda + reloj + duración total de la pelicula

4. solamente subtítulos

Puede cambiar el comportamiento por omisión cambiando la variable `osdlevel` en el archivo de configuración, o con la opción `-osdlevel` de la línea de comando.

### Menú en pantalla

MPlayer trae una interfaz de Menú en pantalla completamente configurable por el usuario.

¡el menú Preferencias no esta actualmente implementado!

#### Instalación

1. compile MPlayer pasándole la opción `--enable-menu` a `./configure`

2. asegúrese de tener una fuente OSD instalada

3. copie el archivo `etc/menu.conf` a su directorio `.mplayer`

4. copie el archivo `etc/input.conf` a su directorio `.mplayer`, o al directorio general de configuración de MPlayer (por omisión: `/usr/local/etc/mplayer`)

5. verifique y edite el archivo `input.conf` para activar las teclas de movimiento en el menú (está descripto en el archivo).

6. inicie MPlayer como en el ejemplo:

       $ mplayer -menu archivo.avi

7. pulse cualquier tecla de menú que haya definido

## instalación de codecs

### XviD

XviD es una derivación del desarrollo del codec OpenDivX. Esto ocurrió cuando ProjectMayo cambió OpenDivX a código cerrado DivX4 (ahora DivX5), y la gente del no-ProjectMayo que trabajaba en OpenDivX se cabreó, e inició XviD. Este es el motivo de que ambos proyectos tengan el mismo origen.

#### INSTALANDO XVID CVS

Actualmente está disponible solo desde CVS. Aquí tiene instrucciones para descargarlo e instalarlo (necesita al menos autoconf 2.50, automake y libtool):

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Puede añadir algunas opciones (examine la salida de

       ./configure --help

   ).

6.     make && make install

7. Si ha especificado `--enable-divxcompat`, copie `../../src/divx4.h` a `/usr/local/include/`.

8. Recompile MPlayer con `--with-xvidlibdir=/ruta/a/libxvidcore.a` `--with-xvidincdir=/ruta/a/xvid.h`

### AAC

AAC (Codificación Avanzada de Audio) es un codec de audio que algunas veces se encuentra en archivos MOV y MP4. Un decodificador llamado FAAD de código abierto está disponible en . MPlayer incluye libfaad 2.0RC1, por lo que no necesita obtenerlo por separado.

Si usa gcc 3.2 y falla al compilar nuestro FAAD interno o desea usar la biblioteca externa por alguna otra razón, descargue la biblioteca desde la página de descargas y pase la opción `--enable-external-faad` a `configure`. No necesita todo el faad2 para decodificar archivos AAC, libfaad es suficiente. Constrúyalo como sigue:

    cd faad2/
    chmod +x bootstrap
    ./bootstrap
    ./configure
    cd libfaad
    make
    make install

No hay binarios disponibles en audiocoding.com, pero puede apetegetear paquetes Debian desde la página personal de Christian Marillat, paquetes RPM para Mandrake desde la P.L.F. y RPMs para Red Hat en Grey Sector.

## RTC

Existen tres métodos de temporización en MPlayer.

- Para usar el método viejo, no tiene que hacer nada. Usa usleep() para ajustar la sincronización A/V, con una precisión de +/- 10ms. Sin embargo muchas veces la sincronización debe ser más precisa.

- El nuevo código temporizador usa el RTC (Reloj de Tiempo Real) de su PC para esta tarea, ya que tiene precisión de 1ms. Es activado automágicamente cuando está disponible, pero requiere privilegios de administrador, que el archivo ejecutable de MPlayer tenga permiso de SUID root o un núcleo configurado apropiadamente. Si utiliza un núcleo 2.4.19pre8 o más nuevo entonces puede ajustar la frecuencia máxima del RTC para usuarios normales a través del sistema de archivo /proc. Use este comando para habilitar el RTC para usuarios normales:

      echo 1024 > /proc/sys/dev/rtc/max-user-freq

  Si no posee dicho núcleo actualizado, puede también cambiar una línea en el archivo `drivers/char/rtc.c` y recompilar el núcleo. Busque la sección que dice:

             * We don't really want Joe User enabling more
             * than 64Hz of interrupts on a multi-user machine.
             */
            if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))

  y cambie el 64 por 1024. Debería realmente saber lo que esta haciendo de todas maneras. Puede ver la eficiencia del nuevo temporizador en la línea de estado. Las funciones de administración de energía de BIOS de algunas notebooks con cambio de velocidad de CPUs interactúan muy mal con el RTC. El vídeo y el audio puede salirse de sincronía. Enchufar el conector de energía externo antes de encender su notebook parece ayudar a solucionar la situación. Siempre que desee puede apagar el soporte de RTC con la opción `-nortc`. En algunas combinaciones de hardware (confirmado durante el uso de un disco no-DMA de DVD en una placa ALi1541) el uso del RTC puede causar defectos en la reproducción. Es recomendado usar el tercer método en esos casos.

- El tercer código de temporización es activado con la opción `-softsleep`. Tiene la eficiencia del RTC, pero no usa el RTC. Por otro lado requiere más CPU.

¡NUNCA instale un archivo ejecutable de MPlayercon permisos de SUID root en un sistema multiusuario! Es una manera fácil para cualquiera de convertirse en administrador.