# Uso

## Línea de órdenes

MPlayer utiliza un árbol de juego complejo. Consiste en escribir las opciones globales las primeras, por ejemplo

    mplayer -vfm 5

y las opciones escritas después de los nombres de archivos, que se aplican solamente al nombre de archivo/URL/lo que sea, por ejemplo:

    mplayer -vfm 5 pelicula1.avi pelicula2.avi -vfm 4

Puede agrupar nombres de archivo/URLs usando `{` y `}`. Esto es útil con la opción `-loop`:

    mplayer { 1.avi - loop 2 2.avi } -loop 3

La órden de arriba reproduce los archivos en este orden: 1, 1, 2, 1, 1, 2, 1, 1, 2.

Reproduciendo un archivo:

    mplayer [opciones] [ruta/]nombre-archivo

Reproduciendo más archivos:

    mplayer [opciones por defecto] [ruta/]nombre-archivo1 [opciones para nombre-archivo1] nombre-archivo2 [opciones para nombre-archivo2] ...

Reproduciendo VCD:

    mplayer [opciones] vcd://npista [-cdrom-device /dev/cdrom]

Reproduciendo DVD:

    mplayer [opciones] dvd://ntitulo [-dvd-device /dev/dvd]

Reproduciendo desde la WWW:

    mplayer [opciones] http://sitio.com/archivo.asf

(las listas de reproducción también pueden ser usadas)

Reproduciendo desde RTSP:

    mplayer [opciones] rtsp://servidor.ejemplo.com/nombreFlujo

Ejemplos:

    mplayer -vo x11 /mnt/Pelis/Contact/contact2.mpg
    mplayer vcd://2 -cd-rom-device /dev/hdc
    mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
    mplayer dvd://1 -dvd-device /dev/hdc
    mplayer -abs 65536 -delay -0.4 -nobps ~/pelis/prueba.avi

## Control

MPlayer tiene una capa de control completamente configurable, dada por órdenes, que le permite controlar MPlayer con el teclado, el ratón, la palanca de juegos o el mando a distancia (usando LIRC). Vea la página de manual para una lista completa de los controles de teclado.

### Configuración de los controles

MPlayer permite asignar una tecla/botón a cualquier órden de MPlayer usando un archivo de configuración simple. La sintaxis consiste en un nombre clave seguido por la órden. El archivo de configuración por defecto es `$HOME/.mplayer/input.conf` pero puede ser cambiado usando la opción `-input conf` (ruta relativa a `$HOME/.mplayer`).

#### Un archivo de control simple

    ##
    ## Archivo de control de entrada de MPlayer
    ##

    RIGHT seek +10
    LEFT seek -10
    - audio_delay 0.100
    + audio_delay -0.100
    q quit
    > pt_step 1
    < pt_step -1
    ENTER pt_step 1 1

#### Nombres clave

Puede obtener una lista completa ejecutando `mplayer -input keylist`.

##### Teclado

- Cualquier caracter imprimible

- `SPACE`

- `ENTER`

- `TAB`

- `CTRL`

- `BS`

- `DEL`

- `INS`

- `HOME`

- `END`

- `PGUP`

- `PGDWN`

- `ESC`

- `RIGHT`

- `LEFT`

- `UP`

- `DOWN`

##### Ratón (solo funciona bajo X)

- `MOUSE_BTN0` (Botón izquierdo)

- `MOUSE_BTN1` (Botón derecho)

- `MOUSE_BTN2` (Botón central)

- `MOUSE_BTN3` (Rueda)

- `MOUSE_BTN4` (Rueda)

- ...

- `MOUSE_BTN9`

##### Palanca de juegos (para que funcione debe habilitarse durante la compilación)

- `JOY_RIGHT` o `JOY_AXIS0_PLUS`

- `JOY_LEFT` o `JOY_AXIS0_MINUS`

- `JOY_UP` o `JOY_AXIS1_MINUS`

- `JOY_DOWN` o `JOY_AXIS1_PLUS`

- `JOY_AXIS2_PLUS`

- `JOY_AXIS2_MINUS`

- ...

- `JOY_AXIS9_PLUS`

- `JOY_AXIS9_MINUS`

#### Órdenes

Puede obtener una lista completa de órdenes ejecutando `mplayer -input cmdlist`.

- `seek` (int) val [(int) type=0]

  Se posiciona en un lugar de la película. Tipo `0` es posicionamiento relativo en +/- val segundos. Tipo `1` se posiciona a un valor en val% de la película.

- `audio_delay` (float) val

  Ajusta el retardo de audio en val segundos

- `quit`

  Salir de MPlayer

- `pause`

  Pausa/continúa la reproducción

- `grap_frames`

  ¿Alguien lo sabe?

- `pt_step` (int) val [(int) force=0]

  Va a la entrada siguiente/previa en la lista de reproducción. El signo de val dice la dirección. Si no hay otra entrada disponible en la dirección dada no ocurre nada a no ser que force no sea 0.

- `pt_up_step` (int) val [(int) force=0]

  Igual que pt_step pero salta a siguiente/previo en la lista actual. Esto es útli para romber bucles internos en el árbol de reproducción.

- `alt_src_step` (int) val

  Cuando hay más de una fuente disponible selecciona la siguiente/previa (solo funciona en listas de reproducción asx).

- `sub_delay` (float) val [(int) abs=0]

  Ajusta el retardo de subtítulos en +/- val segundos o lo establece en val segundos cuando abs no es cero.

- `osd` [(int) level=-1]

  Cambia el modo de osd o establece el invel cuando el nivel > 0.

- `volume` (int) dir

  Incrementa/reduce el volumen

- `contrast` (int) val [(int) abs=0]

- `brightness` (int) val [(int) abs=0]

- `hue` (int) val [(int) abs=0]

- `saturation` (int) val [(int) abs=0]

  Establece/Ajusta los parámetros de video. Rango de val entre -100 y 100.

- `frame_drop` [(int) type=-1]

  Cambia/Establece el modo de salto de marcos.

- `sub_visibility`

  Ajusta la visibilidad de los subtítulos.

- `sub_pos` (int) val

  Ajusta la posición de los subtítulos.

- `vobsub_lang`

  Cambia el idioma de los subtítulos VobSub.

- `vo_fullscreen`

  Cambia el modo de pantalla completa.

- `vo_ontop`

  Cambia siempre-visible. Soportado por controladores que usen X11, excepto SDL, así como directx y gl2 bajo Windows.

- `tv_step_channel` (int) dir

  Selecciona el canal de tv siguiente/previo.

- `tv_step_norm`

  Cambia la norma de TV.

- `tv_step_chanlist`

  Cambia la lista de canales.

- `gui_loadfile`

- `gui_loadsubtitle`

- `gui_about`

- `gui_play`

- `gui_stop`

- `gui_playlist`

- `gui_preferences`

- `gui_skinbrowser`

  Acciones para el GUI

### Control desde LIRC

Linux Infrared Remote Control - use un receptor-IR facil de hacer y fabricar en casa, un (casi) arbitrario control remoto ¡y controle su linux con él! Más acerca de esto en www.lirc.org.

Si tiene instalado el paquete-lirc, configure lo autodetectará. Si todo va bien, MPlayer escribirá un mensaje como "`Setting up lirc support...`" durante su inicio. Si ocurre algún error le informará de ello. Si no le dice nada acerca de LIRC es porque se ha compilado sin tenerlo en cuenta. Eso es todo :-)

El nombre de la aplicación para MPlayer es - oh que maravilla - `mplayer`. Puede usar las órdenes de MPlayer e incluso pasar más de una órden separándolas con `\n`. No olvide activar el marcador repeat en `.lircrc` cuando tenga sentido (posición, volumen, etc). Aquí hay un extracto de mi `.lircrc`:

    begin
         button = VOLUME_PLUS
         prog = mplayer
         config = volume 1
         repeat = 1
    end

    begin
        button = VOLUME_MINUS
        prog = mplayer
        config = volume -1
        repeat = 1
    end

    begin
        button = CD_PLAY
        prog = mplayer
        config = pause
    end

    begin
        button = CD_STOP
        prog = mplayer
        config = seek 0 1\npause
    end

Si no le gusta la localización estándar del archivo de configuración de lirc (`~/.lircrc`) use el conmutador `-lircconf nombre-archivo` para especificar otro archivo.

### Modo esclavo

El modo esclavo le permite construir una interfaz gráfica de manera simple para MPlayer. Cuando se activa (con la opción `-slave`) MPlayer lee las órdenes separándolsa por el caracter de nueva línea (\n) desde la entrada estándar stdin.

## Streaming desde la red o tuberías

MPlayer puede reproducir archivos desde la red, usando el protocolo HTTP, FTP, MMS o RTSP/RTP.

La reprodución comienza símplemente añadiendo la URL en la línea de órdenes. MPlayer también tiene en cuenta a la variable de entorno `http_proxy`, y usa el proxy si está disponible. El uso de proxy también puede forzarse con:

    mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf

MPlayer puede leer desde la entrada estádar (no desde tuberías nombradas). Esto puede ser usado por ejemplo para reproducir desde FTP:

    wget ftp://micorsops.com/algo.avi -O - | mplayer -

Nota: también es recomendable activar la `-cache`cuando se reproduce desde la red:

    wget ftp://micorsops.com/algo.avi -O - | mplayer -cache 8192 -

## Flujos remotos

Los flujos remotos le permiten acceder a la mayoría de los tipos de flujo para MPlayer desde un host remoto. El propósito principal de esta característica es hacer posible la reproducción directa usando CD o DVD de otro ordenador a través de la red (suponiendo que tiene el ancho de banda requerido). En el lado bajo algunos tipos de flujos (actualmente TV y MF) no se pueden usar de manera remota debido a que están implementados a nivel de demultiplexor. De todos modos para MF y TV debería de tener una cantidad insana de ancho de banda.

### Compilando el servidor

Después de que tenga MPlayer compilado vaya a `TOOLS/netstream` para compilar el binario del servidor. Puede hacer una copia del binario de netstream al lugar correcto en su sistema (normalmente `/usr/local/bin` en Linux).

### Usando flujos remotos

Lo primero que tiene que hacer es iniciar el servidor en el ordenador al que quiere hacer el acceso remoto. Actualmente el servidor es muy básico y no tiene ningún argumento en la línea de órdenes nada más que escribir `netstream`. Ahora puede por ejemplo reproducir una segunda pista de un VCD en el servidor con :

    mplayer -cache 5000 mpst://nombre-servidor/vcd://2

También puede acceder a los archivos en este servidor :

      mplayer -cache 5000 mpst://nombre-servidor//usr/local/peliculas/lol.avi

Note que las rutas que no empiezan con un / deben ser relativas al directorio donde el servidor está corriendo. La opción `-cache` no es necesaria pero es altamente recomendable.

Tenga cuidado con que actualmente el servidor no es para nada seguro. No se queje de la cantidad tan numerosa de fallos de seguridad que es posible que tenga. En lugar de eso, envíe algunos (buenos) parches para mejorarlo o escriba su propio servidor.

## Listas de Decisión de Edición (EDL)

El sistema de listas de decisión de edición (EDL) le permite automáticamente saltar o silenciar secciones de vídeos durante la reproducción, basado en un archivo de configuración de EDL especifico de una película.

Esto es útil para aquellos que quieran mirar una película "de manera familiar". Puede cortar secciones de violencia, profanidad, Jar-Jar Binks... de una película de acuerdo a sus preferencias personales. A un lado de esto, tiene otros usos, como pasar automáticamente comerciales en archivos de vídeos que mire.

El formato de archivo EDL es muy simple. Una vez que el sistema EDL haya alcanzado cierto nivel de maduración, es muy probable que se implemente un formato de archivo basada en XML (manteniendo compatibilidad con los formatos previos de EDL).

El número máximo de entradas de la implementación actual de EDL es 1000. Si llega a necesitar más, cambie #define MAX_EDL_ENTRIES en el archivo `edl.h`.

### Usando un archivo EDL

Incluya la opción `-edl <archivo>` cuando quiera correr MPlayer, con el nombre del archivo EDL que quiere que se le aplique al vídeo.

### Haciendo un archivo EDL

El actual formato de un archivo EDL es:

    [segundo de inicio] [segundo final] [acción]

Donde los segundos son números de punto flotante y la acción es o bien `0` para saltar esa parte o `1` para silenciarla. Por ejemplo:

    5.3   7.1    0
    15    16.7   1
    420   422    0

Esto hará que se salten del segundo 5.3 al segundo 7.1 del vídeo, entonces silenciar en el segundo 15, volver el sonido a los 16.7 segundos y saltar desde el segundo 420 al segundo 422 del vídeo. Estas acciones serán realizadas cuando el reloj de reproducción alcance los tiempos dados en el archivo.

Para crear un archivo EDL para poder trabajar, use la `-edlout <archivo>`. Durante la reproducción, cuando quiera marcar los dos segundos previos para ser saltados, pulse i. Se guardara una entrada en el archivo para ese momento. Luego puede volver atrás y ajustar a mano el archivo EDL generado.