<?xml version="1.0" encoding="utf-8"?>
<!-- synced with 1.17 -->
<chapter id="usage">
<title>Uso</title>

<sect1 id="commandline">
<title>Línea de órdenes</title>

<para>
<application>MPlayer</application> utiliza un árbol de juego
complejo. Consiste en escribir las opciones globales las
primeras, por ejemplo

<screen>mplayer -vfm 5</screen>

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:

<screen>mplayer -vfm 5 <replaceable>pelicula1.avi</replaceable> <replaceable>pelicula2.avi</replaceable> -vfm 4</screen>
</para>

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

<screen>mplayer { 1.avi - loop 2 2.avi } -loop 3</screen>

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

<para>
Reproduciendo un archivo:
<synopsis>
<command>mplayer</command><!--
--> [<replaceable>opciones</replaceable>]<!--
--> [<replaceable>ruta</replaceable>/]<replaceable>nombre-archivo</replaceable>
</synopsis>
</para>

<para>
Reproduciendo más archivos:
<synopsis>
<command>mplayer</command><!--
--> [<replaceable>opciones por defecto</replaceable>]<!--
--> [<replaceable>ruta</replaceable>/]<replaceable>nombre-archivo1</replaceable><!--
--> [<replaceable>opciones para nombre-archivo1</replaceable>]<!--
--> <replaceable>nombre-archivo2</replaceable><!--
--> [<replaceable>opciones para nombre-archivo2</replaceable>] ...
</synopsis>
</para>

<para>
Reproduciendo VCD:
<synopsis>
<command>mplayer</command> [<replaceable>opciones</replaceable>]<!--
--> vcd://<replaceable>npista</replaceable><!--
--> [-cdrom-device <replaceable>/dev/cdrom</replaceable>]
</synopsis>
</para>

<para>
Reproduciendo DVD:
<synopsis>
<command>mplayer</command> [<replaceable>opciones</replaceable>]<!--
--> dvd://<replaceable>ntitulo</replaceable><!--
--> [-dvd-device <replaceable>/dev/dvd</replaceable>]
</synopsis>
</para>

<para>
Reproduciendo desde la WWW:
<synopsis>
<command>mplayer</command> [<replaceable>opciones</replaceable>]<!--
--> http://<replaceable>sitio.com/archivo.asf</replaceable>
</synopsis>
(las listas de reproducción también pueden ser usadas)
</para>

<para>
Reproduciendo desde RTSP:
<synopsis>
<command>mplayer</command> [<replaceable>opciones</replaceable>]<!--
--> rtsp://<replaceable>servidor.ejemplo.com/nombreFlujo</replaceable>
</synopsis>
</para>

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


<sect1 id="control">
<title>Control</title>

<para>
<application>MPlayer</application> tiene una capa de control completamente
configurable, dada por órdenes, que le permite controlar
<application>MPlayer</application> 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.
</para>


<sect2 id="ctrl-cfg">
<title>Configuración de los controles</title>

<para>
<application>MPlayer</application> permite asignar una tecla/botón a
cualquier órden de <application>MPlayer</application> 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
<filename>$HOME/.mplayer/input.conf</filename> pero puede ser cambiado
usando la opción <option>-input <replaceable>conf</replaceable></option>
(ruta relativa a <filename>$HOME/.mplayer</filename>).
</para>

<example id="input_control_file">
<title>Un archivo de control simple</title>
<programlisting>
##
## Archivo de control de entrada de <application>MPlayer</application>
##

RIGHT seek +10
LEFT seek -10
- audio_delay 0.100
+ audio_delay -0.100
q quit
&gt; pt_step 1
&lt; pt_step -1
ENTER pt_step 1 1<!--
--></programlisting>
</example>


<sect3 id="ctrl-cfg-keys">
<title>Nombres clave</title>

<para>
Puede obtener una lista completa ejecutando
<command>mplayer -input keylist</command>.
</para>

<itemizedlist>
<title>Teclado</title>
<listitem><para>Cualquier caracter imprimible</para></listitem>
<listitem><para><literal>SPACE</literal></para></listitem>
<listitem><para><literal>ENTER</literal></para></listitem>
<listitem><para><literal>TAB</literal></para></listitem>
<listitem><para><literal>CTRL</literal></para></listitem>
<listitem><para><literal>BS</literal></para></listitem>
<listitem><para><literal>DEL</literal></para></listitem>
<listitem><para><literal>INS</literal></para></listitem>
<listitem><para><literal>HOME</literal></para></listitem>
<listitem><para><literal>END</literal></para></listitem>
<listitem><para><literal>PGUP</literal></para></listitem>
<listitem><para><literal>PGDWN</literal></para></listitem>
<listitem><para><literal>ESC</literal></para></listitem>
<listitem><para><literal>RIGHT</literal></para></listitem>
<listitem><para><literal>LEFT</literal></para></listitem>
<listitem><para><literal>UP</literal></para></listitem>
<listitem><para><literal>DOWN</literal></para></listitem>
</itemizedlist>

<itemizedlist>
<title>Ratón (solo funciona bajo X)</title>
<listitem><para>
  <literal>MOUSE_BTN0</literal> (Botón izquierdo)</para></listitem>
<listitem><para>
  <literal>MOUSE_BTN1</literal> (Botón derecho)</para></listitem>
<listitem><para>
  <literal>MOUSE_BTN2</literal> (Botón central)</para></listitem>
<listitem><para>
  <literal>MOUSE_BTN3</literal> (Rueda)</para></listitem>
<listitem><para>
  <literal>MOUSE_BTN4</literal> (Rueda)</para></listitem>
<listitem><para>...</para></listitem>
<listitem><para><literal>MOUSE_BTN9</literal></para></listitem>
</itemizedlist>

<itemizedlist>
<title>Palanca de juegos (para que funcione debe habilitarse durante la compilación)</title>
<listitem><para>
  <literal>JOY_RIGHT</literal> o
  <literal>JOY_AXIS0_PLUS</literal></para></listitem>
<listitem><para>
  <literal>JOY_LEFT</literal> o
  <literal>JOY_AXIS0_MINUS</literal></para></listitem>
<listitem><para>
  <literal>JOY_UP</literal> o
  <literal>JOY_AXIS1_MINUS</literal></para></listitem>
<listitem><para>
  <literal>JOY_DOWN</literal> o
  <literal>JOY_AXIS1_PLUS</literal></para></listitem>
<listitem><para><literal>JOY_AXIS2_PLUS</literal></para></listitem>
<listitem><para><literal>JOY_AXIS2_MINUS</literal></para></listitem>
<listitem><para>...</para></listitem>
<listitem><para><literal>JOY_AXIS9_PLUS</literal></para></listitem>
<listitem><para><literal>JOY_AXIS9_MINUS</literal></para></listitem>
</itemizedlist>
</sect3>


<sect3 id="ctrl-cfg-commands">
<title>Órdenes</title>

<para>
Puede obtener una lista completa de órdenes ejecutando
<command>mplayer -input cmdlist</command>.
</para>

<itemizedlist>
<listitem><para><literal>seek</literal> (int) val [(int) type=0]</para>
  <para>
  Se posiciona en un lugar de la película.
  Tipo <literal>0</literal> es posicionamiento relativo en +/- val segundos.
  Tipo <literal>1</literal> se posiciona a un valor en val% de la película.
  </para></listitem>
<listitem><para><literal>audio_delay</literal> (float) val</para>
  <para>
  Ajusta el retardo de audio en val segundos
  </para></listitem>
<listitem><para><literal>quit</literal></para>
  <para>
  Salir de <application>MPlayer</application>
  </para></listitem>
<listitem><para><literal>pause</literal></para>
  <para>
  Pausa/continúa la reproducción
  </para></listitem>
<listitem><para><literal>grap_frames</literal></para>
  <para>
  ¿Alguien lo sabe?
  </para></listitem>
<listitem><para><literal>pt_step</literal> (int) val [(int) force=0]</para>
  <para>
  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.
  </para></listitem>
<listitem><para><literal>pt_up_step</literal> (int) val [(int) force=0]</para>
  <para>
  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.
  </para></listitem>
<listitem><para><literal>alt_src_step</literal> (int) val</para>
  <para>
  Cuando hay más de una fuente disponible selecciona la siguiente/previa
  (solo funciona en listas de reproducción asx).
  </para></listitem>
<listitem><para><literal>sub_delay</literal> (float) val [(int) abs=0]</para>
  <para>
  Ajusta el retardo de subtítulos en +/- val segundos o lo establece en
  val segundos cuando abs no es cero.
  </para></listitem>
<listitem><para><literal>osd</literal> [(int) level=-1]</para>
  <para>
  Cambia el modo de osd o establece el invel cuando el nivel &gt; 0.
  </para></listitem>
<listitem><para><literal>volume</literal> (int) dir</para>
  <para>Incrementa/reduce el volumen
  </para></listitem>
<listitem><para><literal>contrast</literal> (int) val [(int) abs=0]
  </para></listitem>
<listitem><para><literal>brightness</literal> (int) val [(int) abs=0]
  </para></listitem>
<listitem><para><literal>hue</literal> (int) val [(int) abs=0]
  </para></listitem>
<listitem><para><literal>saturation</literal> (int) val [(int) abs=0]</para>
  <para>
  Establece/Ajusta los parámetros de video. Rango de val entre -100 y 100.
  </para></listitem>
<listitem><para><literal>frame_drop</literal> [(int) type=-1]</para>
  <para>
  Cambia/Establece el modo de salto de marcos.
  </para></listitem>
<listitem><para><literal>sub_visibility</literal></para>
  <para>
  Ajusta la visibilidad de los subtítulos.
  </para></listitem>
<listitem><para><literal>sub_pos</literal> (int) val</para>
  <para>
  Ajusta la posición de los subtítulos.
  </para></listitem>
<listitem><para><literal>vobsub_lang</literal></para>
  <para>
  Cambia el idioma de los subtítulos VobSub.
  </para></listitem>
<listitem><para><literal>vo_fullscreen</literal></para>
  <para>
  Cambia el modo de pantalla completa.
  </para></listitem>
<listitem><para><literal>vo_ontop</literal></para>
  <para>
  Cambia siempre-visible. Soportado por controladores que usen X11,
  excepto SDL, así como directx y gl2 bajo Windows.
  </para></listitem>
<listitem><para><literal>tv_step_channel</literal> (int) dir</para>
  <para>
  Selecciona el canal de tv siguiente/previo.
  </para></listitem>
<listitem><para><literal>tv_step_norm</literal></para>
  <para>
  Cambia la norma de TV.
  </para></listitem>
<listitem><para><literal>tv_step_chanlist</literal></para>
  <para>
  Cambia la lista de canales.
  </para></listitem>
<listitem><para><literal>gui_loadfile</literal></para></listitem>
<listitem><para><literal>gui_loadsubtitle</literal></para></listitem>
<listitem><para><literal>gui_about</literal></para></listitem>
<listitem><para><literal>gui_play</literal></para></listitem>
<listitem><para><literal>gui_stop</literal></para></listitem>
<listitem><para><literal>gui_playlist</literal></para></listitem>
<listitem><para><literal>gui_preferences</literal></para></listitem>
<listitem><para><literal>gui_skinbrowser</literal></para>
  <para>
  Acciones para el GUI
  </para></listitem>
</itemizedlist>
</sect3>
</sect2>


<sect2 id="lirc">
<title>Control desde LIRC</title>

<para>
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
<ulink url="http://www.lirc.org">www.lirc.org</ulink>.
</para>

<para>
Si tiene instalado el paquete-lirc, configure lo autodetectará. Si todo
va bien, <application>MPlayer</application> escribirá un mensaje como
"<computeroutput>Setting up lirc support...</computeroutput>"
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 :-)
</para>

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

<programlisting>
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<!--
--></programlisting>

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


<sect2 id="slave-mode">
<title>Modo esclavo</title>
<para>
El modo esclavo le permite construir una interfaz gráfica de manera
simple para <application>MPlayer</application>. Cuando se activa
(con la opción <option>-slave</option>) <application>MPlayer</application>
lee las órdenes separándolsa por el caracter de nueva línea (\n) desde
la entrada estándar stdin.
</para>
</sect2>
</sect1>


<sect1 id="streaming">
<title>Streaming desde la red o tuberías</title>

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

<para>
La reprodución comienza símplemente añadiendo la URL en la línea de órdenes.
<application>MPlayer</application> también tiene en cuenta a la variable
de entorno <envar>http_proxy</envar>, y usa el proxy si está disponible. El
uso de proxy también puede forzarse con:
<screen>mplayer <replaceable>http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</replaceable></screen>
</para>

<para>
<application>MPlayer</application> puede leer desde la entrada estádar
(<emphasis>no</emphasis> desde tuberías nombradas). Esto puede ser usado
por ejemplo para reproducir desde FTP:
<screen>wget <replaceable>ftp://micorsops.com/algo.avi</replaceable> -O - | mplayer -</screen>
</para>

<note><para>
Nota: también es recomendable activar la <option>-cache</option>cuando
se reproduce desde la red:
<screen>wget ftp://micorsops.com/algo.avi -O - | mplayer -cache 8192 -</screen>
</para></note>
</sect1>

<sect1 id="mpst" xreflabel="Remote streams">
<title>Flujos remotos</title>

<para>
Los flujos remotos le permiten acceder a la mayoría de los tipos de flujo
para <application>MPlayer</application> 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.
</para>

<sect2 id="compile_mpst_server">
<title>Compilando el servidor</title>
<para>
Después de que tenga <application>MPlayer</application> compilado
vaya a <filename>TOOLS/netstream</filename> para compilar el binario
del servidor. Puede hacer una copia del binario de
<application>netstream</application> al lugar correcto en su
sistema (normalmente <filename class="directory">/usr/local/bin</filename>
en Linux).
</para>
</sect2>

<sect2 id="use_mpst">
<title>Usando flujos remotos</title>
<para>
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
<filename>netstream</filename>. Ahora puede por ejemplo reproducir una
segunda pista de un VCD en el servidor con :
<screen>
mplayer -cache 5000 <replaceable>mpst://nombre-servidor/vcd://2</replaceable>
</screen>
También puede acceder a los archivos en este servidor :
<screen>
  mplayer -cache 5000 <replaceable>mpst://nombre-servidor//usr/local/peliculas/lol.avi</replaceable>
</screen>
Note que las rutas que no empiezan con un / deben ser relativas
al directorio donde el servidor está corriendo. La opción <option>-cache</option>
no es necesaria pero es altamente recomendable.
</para>

<para>
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.
</para>

</sect2>

</sect1>

<sect1 id="drives">
<title>Unidades de CD/DVD</title>
<para>
Extracto de documentación de Linux:
</para>

<para>
Las unidades de CD-ROM modernas pueden alcanzar velocidades de lectura
muy altas, a pesar de ello algunas unidades de CD-ROM son capaces de
funcionar a velocidades reducidas. Hay varias razones que pueden hacer
considerar cambiar la velocidad de la unidad de CD-ROM:
</para>

<itemizedlist>
<listitem><para>
Ha habido varios informes de errores de lectura a velocidades altas,
especialmente en unidades de CD-ROM en mal estado. Reducir la velocidad
puede prevenir la pérdida de datos bajo estas circunstancias.
</para></listitem>

<listitem><para>
Algunas unidades de CD-ROM son molestamente ruidosas, a menor velocidad
se puede reducir el ruido.
</para></listitem>
</itemizedlist>

<para>
Puede reducir la velocidad de las unidades de CD-ROM IDE con
<command>hdparm</command> o con un programa llamado <command>setcd</command>.
Funciona de la siguiente manera:
<screen>hdparm -E <replaceable>[velocidad]</replaceable> <replaceable>[dispositivo de cdrom]</replaceable></screen>
<screen>setcd -x <replaceable>[velocidad]</replaceable> <replaceable>[dispositivo cdrom]</replaceable></screen>
</para>

<para>
Si tiene privilegios de root la siguiente órden puede también ayudarle:
<screen>echo file_readahead:2000000 &gt; /proc/ide/<replaceable>[cdrom device]</replaceable>/settings</screen>
</para>

<para>
Esto establece prelectura de 2MB del archivo, lo cual ayuda en CD-ROMs rayados.
Si establece un valor demasiado alto, la unidad puede estar contínuamente
girando y parando, y puede decrementar dramáticamente el rendimiento.
Se recomienda que también afine su unidad de CD-ROM con <command>hdparm</command>:
<screen>hdparm -d1 -a8 -u1 <replaceable>cdrom device</replaceable></screen>
</para>

<para>
Esto activa el acceso DMA, pre-lectura, y desenmascarado de IRQ (lea la página
de manual de <command>hdparm</command> para una explicación detallada).
</para>

<para>
Por favor, diríjase a &quot;<filename>/proc/ide/<replaceable>cdrom device</replaceable>/settings&quot;</filename>
para ajuste-fino de su CD-ROM.
</para>

<para>
Las unidades SCSI no tienen una manera uniforme para estableces estos
parámetros (¿conoce alguna? ¡Díganoslo!) Aquí hay una herramienta que funciona
para
<ulink url="http://das.ist.org/~georg/">unidades Plextor SCSI</ulink>.
</para>

<para>FreeBSD:</para>
<para>Speed: <command>cdcontrol [-f <replaceable>dispositivo</replaceable>] speed <replaceable>velocidad</replaceable></command></para>
<para>DMA: <command>sysctl hw.ata.atapi_dma=1</command></para>
</sect1>

<sect1 id="dvd">
<title>Reproducción de DVD</title>
<para>
Para una lista completa de opciones disponibles, lea por favor la página de manual.
La Sintaxis para un Disco Versátil Digital (DVD) estándar es la siguiente:
<screen>mplayer dvd://<replaceable>&lt;pista&gt;</replaceable> [-dvd-device <replaceable>&lt;dispositivo&gt;</replaceable>]</screen>
</para>

<para>
Ejemplo:
<screen>mplayer dvd://<replaceable>1</replaceable> -dvd-device <replaceable>/dev/hdc</replaceable></screen>
</para>

<para>
El dispositivo DVD por defecto es <filename>/dev/dvd</filename>. Si su
configuración es diferente, haga un enlace simbólico o especifique el
dispositivo correcto en la línea de órdenes con la opción
<option>-dvd-device</option>.
</para>

<formalpara>
<title>Soporte para el DVD de Nuevo-estilo (mpdvdkit2)</title>
<para>
<application>MPlayer</application> usa <systemitem>libdvdread</systemitem> y
<systemitem>libdvdcss</systemitem> para desencriptación y reproducción. Estas
dos bibliotecas están contenidas en el subdirectorio
<filename class="directory">libmpdvdkit2/</filename>
del árbol de código fuente de <application>MPlayer</application>, no tiene
que instalarlo por separado. Hemos optado por esta solución porque hemos
corregido un error de <systemitem>libdvdread</systemitem> y aplicado un
parche que añade <emphasis role="bold">soporte para cacheo de claves CSS
crackeadas</emphasis> para <systemitem>libdvdcss</systemitem>. Esto resulta
en un gran incremento de velocidad porque las claves no tienen que ser
crackeadas cada vez que se reproduce.
</para>
</formalpara>

<para>
<application>MPlayer</application> puede usar también bibliotecas
<systemitem>libdvdread</systemitem> del sistema y <systemitem>libdvdcss</systemitem>,
pero esta solución <emphasis role="bold">no</emphasis> se recomienda, porque puede
resultar en fallos, incompatibilidades de bibliotecas y velocidad más lenta.
</para>

<note><para>
En caso de problemas de decodificación de DVD, pruebe a deshabilitar supermount, o
cualquier otra utilidad de este tipo.
</para></note>

<formalpara>
<title>Estructura de DVD</title>
<para>
Los discos de DVD tienen 2048 bytes por sector con ECC/CRC. Normalmente tienen
un sistema de archivos UDF en una pista simple, conteniendo varios archivos
(archivos pequeños .IFO y .BUK y archivos grandes (1GB) .VOB). Son archivos
reales y pueden ser copiados/reproducidos desde un sistema de archivos montado
de un DVD sin encriptar.
</para>
</formalpara>

<para>
Los archivos .IFO contienen la información de navegación por la película
(capítulos/títulos/mapas de ángulos, tablas de idiomas, etc) y son necesarios
para leer e interpretar el contenido del .VOB (la película). Los archivos
.BUK son copias de seguridad de estos. Usan <emphasis role="bold">sectores</emphasis>
por todos sitios, por lo que necesita usar direccionamiento crudo de sectores
del disco para implementar navegación DVD o desencriptar el contenido.
</para>

<para>
El soporte DVD necesita acceso basado en sectores al dispositivo. Desafortunadamente
debe (bajo Linux) ser root para obtener la dirección de un sector dentro de un
archivo. Este es el motivo por el que no se usa el controlador interno del sistema
de archivos del kernel, en su lugar se ha reimplementado en el espacio de usuario.
<systemitem>libdvdread</systemitem> 0.9.x y <systemitem>libmpdvdkit</systemitem>
hacen esto. El controlador de sistema de archivos UDF del kernel no es necesario
ya que tenemos nuestro propio controlador de sistema de archivos UDF. Además
el DVD no necesita estar montado ya que solo se usa acceso a nivel de sectores.
</para>

<para>
Algunas veces <filename>/dev/dvd</filename> no puede ser leído por los
usuarios, por lo que los autores de <systemitem>libdvdread</systemitem>
han implementado una capa de emulación que transfiere el direccionamiento
por sectores a nombres de archivo + desplazamiento, para emular un acceso
crudo sobre un sistema de archivos montado o incluso en un disco duro.
</para>

<para>
<systemitem>libdvdread</systemitem> incluso acepta un punto de montaje
en lugar del nombre del dispositivo para acceso crudo y comprueba
<filename>/proc/mounts</filename> para obtener el nombre del dispositivo.
Esto ha sido desarrollado por Solaris, donde los nombres de los
dispositivos son asignados dinámicamente.
</para>

<para>
El dispositivo por defecto de DVD es <filename>/dev/dvd</filename>. Si su
configuración no coincide con esto, haga un enlace simbólico, o especifique
el dispositivo correcto en la línea de órdenes con la opción
<option>-dvd-device</option>.
</para>

<formalpara>
<title>Autenticación para DVD</title>
<para>
La autenticación y el método de desencriptación del soporte de DVD al
nuevo-estilo se ha hecho usando una versión modificada de
<systemitem>libdvdcss</systemitem> (vea más arriba). Este método peude ser
especificado a través de la variable de entorno <envar>DVDCSS_METHOD</envar>,
que puede ser establecido a key, disk o title.
</para>
</formalpara>

<para>
Si no se especifica nada se prueban los siguientes métodos (por defecto:
key, petición de título):
</para>

<orderedlist>
<listitem><para>
<emphasis role="bold">bus key</emphasis>: Esta clave es negociada durante
la autenticación (una larga mezcla de ioctls y varios intercambios de
claves, material de encriptación) y es usada para encriptar el título y
las claves de disco antes de enviarlas sobre el bus sin proteger
(para prevenir robos de claves). El bus key necesita obtener y
predesencriptar la clave encriptada de disco.
</para></listitem>

<listitem><para>
<emphasis role="bold">cached key</emphasis>: <application>MPlayer</application>
mira a ver si el título ya ha sido crackeado con una clave almacenada en el
directorio <filename class="directory">~/.mplayer/DVDKeys</filename> (rápido ;).
</para></listitem>

<listitem><para>
<emphasis role="bold">key</emphasis>: Si no hay una clave disponible en caché,
<application>MPlayer</application> intenta desencriptar la clave del disco con
un conjunto de claves de reproductor incluidas.
</para></listitem>

<listitem><para>
<emphasis role="bold">disk</emphasis>: Si el método key falla (p.e. no hay
claves de reproductor incluídas), <application>MPlayer</application>
crackeará la clave del disco usando un algoritmo de fuerza bruta. Este proceso
usa la CPU de manera intensiva y requiere 64 MB de memoria (una tabla hash de
16M 32Bit entradas) para almacenamiento temporal de datos. Este método debe
funcionar siempre (lento).
</para></listitem>

<listitem><para>
<emphasis role="bold">title request</emphasis>: Con la clave del disco
<application>MPlayer</application> pide las claves encriptadas de los
títulos que están dentro de <emphasis>sectores escondidos</emphasis> usando
<systemitem>ioctl()</systemitem>. La protección por región de unidades
RPC-2 se hace en este paso y puede fallas en algunas unidades de disco.
Si funciona bien, las claves de títulos son desencriptadas con las claves
de bus y de disco.
</para></listitem>

<listitem><para>
<emphasis role="bold">title</emphasis>: Este método es usado si la
búsqueda de título falla y no sale en ningun intercambio de clave
con la unidad de DVD. Usa un ataque de encriptación para buscar
la clave del título directamente (encontrando un patrón que se
repita en el contenido del VOB desencriptado y comprobando que
el texto plano corresponde a los primeros bytes encriptados como
una continuación del patrón). El método es también conocido como
&quot;ataque de texto plano conocido&quot; o &quot;DeCSSPlus&quot;.
En raras ocasiones esto falla porque no hay suficientes datos
desencriptados en el disco para realizar un ataque estadístico
o porque las claves cambian en mitad de un título. Este método es la
única manera de desencriptar un DVD almacenado en un disco duro o en
un DVD con la región incorrecta en una unidad RPC2 (lento).
</para></listitem>
</orderedlist>

<para>
Las unidades de DVD RPC-1 solo protegen la configuración de región a través
de software. Las unidades RPC-2 tienen una protección por hardware que
permite tan solo 5 cambios. Puede ser necesario/recomendable actualizar el
firmware a RPC-1 si tiene una unidad RPC-2. Las actualizaciones de
firmware puede encontrarse en esta
<ulink url="http://www.firmware-flash.com">página del firmware</ulink>.
Si no hay una actualización del firmware disponible para su dispositivo, use la
<ulink url="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">herramienta regionset</ulink>
para establecer el código de región de su unidad de DVD (bajo Linux).
<emphasis role="bold">Advertencia</emphasis>: Solo puede establecer la región 5 veces.
</para>
</sect1>

<sect1 id="vcd">
<title>Reproducción de VCD</title>
<para>
Para una lista completa de las opciones disponibles, lea por favor la página de manual. La
sintaxis para un Video CD (VCD) estándar es la siguiente:
<screen>mplayer vcd://<replaceable>&lt;track&gt;</replaceable> [-cdrom-device <replaceable>&lt;device&gt;</replaceable>]</screen>
Ejemplo:
<screen>mplayer vcd://<replaceable>2</replaceable> -cdrom-device <replaceable>/dev/hdc</replaceable></screen>
El dispositivo para VCD Por defecto es <filename>/dev/cdrom</filename>.
Si su configuracio no coincide con esto, haga un enlace simbólico o
especifique el dispositivo correcto en la línea de órdenes con la
opción <option>-cdrom-device</option>.
</para>

<note><para>
Al menos las unidades de CD-ROM SCSI Plextor y algunas Toshiba tienen un
rendimiento horrible leyendo VCDs. Esto es porque el <systemitem>ioctl</systemitem>
CDROMREADRAW no está completamente implementado en estas unidades. Si tiene
conocimientos sobre la programación SCSI, por favor
<ulink url="../../tech/patches.txt">ayúdenos</ulink> a implementar soporte SCSI
genérico para VCDs.
</para></note>

<para>
En la actualidad puede extraer datos desde VCDs con
<ulink url="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
y reproducir el archivo resultante con <application>MPlayer</application>.
</para>

<formalpara>
<title>Estructura de un VCD</title>
<para>Los discos de VCD consisten en una o más pistas:</para>
</formalpara>

<itemizedlist>
<listitem><para>
La primera piesta es una pista pequeña de datos 2048 bytes/sector con
un sistema de archivos iso9660, normalmente conteniendo programas reproductores
de VCD para Windows o quizá alguna otra información (imágenes, texto, etc).
</para></listitem>

<listitem><para>
La segunda y otras pistas son 2324 bytes/sector crudas de MPEG (película),
conteniendo un paquete de datos MPEG PS por sector en lugar de un sistema
de archivos. De manera similar a las pistas de CD de audio, estas pistas
<emphasis role="bold">no pueden ser montadas</emphasis> (¿Alguna vez ha
montado un CD de audio para reproducirlo?).
Como las películas están dentro de esta pista, debería probar <option>vcd://2</option>
primero.
</para></listitem>

<listitem><para>
Existen discos de VCD sin la primera pista (pista simple y sin ningún sistema
de archivos). Siguen siendo reproducibles, pero no pueden ser montadas.
</para></listitem>
</itemizedlist>

<formalpara>
<title>Acerca de los archivos .DAT</title>
<para>
Los archivos visibles de ~600 MB en la primera pista de un VCD montado ¡no son
archivos reales! Son llamadas puertas de acceso ISO, creadas para permitir a
Windows administrar estas pistas (Windows no permite acceso crudo al dispositivo
en ninguna de sus aplicaciones). Bajo Linux no puede copiar o reproducir estos
archivos (solo contienen basura). Bajo Windows es posible que el controlador
iso9660 emule lectura cruda de las pistas en estos archivos. Para reproducir
un archivo .DAT necesita el controlador del kernel que se encuentra en la
versión para Linux de PowerDVD. Contiene un controlador de sistema de archivos iso9660
modificado (<filename>vcdfs/isofs-2.4.X.o</filename>), que permite emular las
pistas crudas a través de este archivo de sombra .DAT. Si monta el disco usando
ese controlador, puede copiar e incluso reproducir los archivos .DAT con
<application>MPlayer</application>. ¡Pero no funciona con el controlador estandar
iso9660 del kernel de Linux! Use <option>vcd://</option> en su lugar. Alternativas
para copiar un VCD son los nuevos controladores del kernel
<ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (que no forman
parte del kernel oficialmente) que muestran sesiones de CD como archivos de imagen y
<ulink url="http://cdrdao.sourceforge.net/">cdrdao</ulink>, un programa para
grabar/copiar CD bit-por-bit.
</para>
</formalpara>
</sect1>

<sect1 id="edl" xreflabel="Listas de Decisión de Edición (EDL)">
<title>Listas de Decisión de Edición (EDL)</title>

<para>
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.
</para>

<para>
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.
</para>

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

<sect2 id="edl_using">
<title>Usando un archivo EDL</title>
<para>
Incluya la opción <option>-edl &lt;archivo&gt;</option> cuando quiera correr
<application>MPlayer</application>, con el nombre del archivo EDL que quiere
que se le aplique al vídeo.
</para>
</sect2>

<sect2 id="edl_making">
<title>Haciendo un archivo EDL</title>
<para>
El actual formato de un archivo EDL es:
<programlisting>
[segundo de inicio] [segundo final] [acción]
</programlisting>
Donde los segundos son números de punto flotante y la acción es o bien
<literal>0</literal> para saltar esa parte o <literal>1</literal> para silenciarla. Por ejemplo:
<programlisting>
5.3   7.1    0
15    16.7   1
420   422    0
</programlisting>
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>

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

</sect1>

<sect1 id="tv-input" xreflabel="Entrada de TV">
<title>Entrada de TV</title>

<para>
Esta sección es acerca de como poder <emphasis role="bold">mirar/capturar
desde un dispositivo sintonizador de TV compatible con V4L</emphasis>. Vea
la página del manual para una descripción de las opciones de TV y los controles
del teclado.
</para>


<sect2 id="tv-compilation">
<title>Compilación</title>

<procedure>
<step><para>
  Primero, deberá recompilar. <filename>./configure</filename> detectará
  los archivos de encabezados de las cosas de v4l y la existencia de
  las entradas <filename>/dev/video*</filename>. Si existen, el soporte
  de TV se compilará (vea la salida de <filename>./configure</filename>).
  </para></step>
<step><para>
  Asegúrese de que su sintonizador funcione bien con otro software de TV
  en Linux, como por ejemplo con <application>XawTV</application>.
  </para></step>
</procedure>
</sect2>

<sect2 id="tv-tips">
<title>Consejos de Uso</title>
<para>
El listado completo de opciones esta disponible en la página del manual.
Aquí hay solamente un par de consejos:
</para>
<itemizedlist>
<listitem>
<para>
Use la opción <option>channels</option>(canales). Ejemplo:
<screen>-tv channels=26-MTV,23-TV2</screen>
Explicación: usando esta opción, solo se podrá ver el canal 26 y el 23 y
habrá un bonito texto en pantalla (OSD) por cada cambio de canal, mostrando
el nombre del canal. Los espacios en el nombre del canal deben ser reemplazados
por el carácter &quot;_&quot;.
</para>
</listitem>

<listitem>
<para>
Elija varias dimensiones de imagen razonables. Las dimensiones de la imagen
resultante deberían ser divisibles por 16.
</para>
</listitem>

<listitem>
<para>
Si captura el vídeo con una resolución vertical más grande que la mitad de
la resolución total (por ejemplo: 288 para PAL o 240 para NTSC), asegúrese que
activó el desentrelazado. De otro modo obtendrá una película la cual esta
distorsionada durante las escenas con movimientos rápidos y el controlador de tasa
de bits probablemente no podrá ser capaz de retener la cantidad de información necesaria
ya que el entrelazado produce una gran cantidad de detalles y por lo tanto consume
una gran cantidad de ancho de banda. Puede activar el desentrelazado con
la opción <option>-vf pp=DEINT_TYPE</option>. Normalmente
<option>pp=lb</option> funciona bien, pero es un problema de preferencias
personales. Vea otros algoritmos de desentrelazado en el manual y pruebelos.
</para>
</listitem>

<listitem>
<para>
Corte el área no usada. Cuando captura vídeo, las áreas en los bordes normalmente
son negras y contienen algo de ruido. Esto también consume un montón de ancho
de banda innecesario. Más precisamente no son las áreas en negro por si mismas
pero si las bruscas transcisiones entre el negro y la imagen de vídeo brillante
pero por ahora eso no es importante por ahora. Antes de empezar a capturar,
ajuste los argumentos de la opción <option>crop</option> de tal manera que todo
lo negro quede afuera. Nuevamente, no se olvide de mantener las dimensiones
de manera razonables.
</para>
</listitem>

<listitem>
<para>
Observe la carga de CPU. La mayoría del tiempo no debería cruzar el límite
del 90%. Si tiene un gran buffer de captura, <application>MEncoder</application>
puede sobrevivir una sobrecarga por unos pocos segundos y nada más. Es mejor apagar
los salvadores de pantalla 3D OpenGL y ese tipo de cosas.
</para>
</listitem>

<listitem>
<para>
No se meta con el reloj del sistema. <application>MEncoder</application> usa
el reloj del sistema para mantener sincronía entre Audio y Vídeo. Si ajusta
el reloj del sistema (particularmente volviendo hacia atrás en el tiempo),
<application>MEncoder</application> se confunde y pierde cuadros. Esto es un
problema importante si está conectado a una red y corre algún tipo de software
de sincronización como NTP. Debería desactivar NTP durante el proceso de captura
si quiere capturar en forma confiable.
</para>
</listitem>

<listitem>
<para>
No cambie la opción <option>outfmt</option> a menos que sepa lo que está haciendo
o su tarjeta/controlador realmente no soporte la opción por omisión (espacio de color
YV12). En las versiones viejas de <application>MPlayer</application>/<application>
MEncoder</application> era necesario especificar el formato de salida. Este
problema se debería estar resuelto en las versiones actuales y la opción <option>outfmt</option>
no se requiere más, ya que la opción por omisión sirve para la mayoría de los propósitos. Por
ejemplo si está capturando en DivX usando
<systemitem class="library">libavcodec</systemitem> y especifica <option>outfmt=RGB24</option>
para incrementar la calidad de las imágenes capturadas, las imágenes capturadas serán
realmente convertidas nuevamente a YV12 por lo que lo único que logra es un desperdicio
masivo de ciclos de CPU.
</para>
</listitem>

<listitem>
<para>
Para especificar el espacio de colores I420 (<option>outfmt=i420</option>), deberá
agregar una opción <option>-vc rawi420</option> debido a un conflicto de fourcc con
un codec de vídeo de Intel Indeo.
</para>
</listitem>

<listitem>
<para>
Hay muchas maneras de capturar audio. Puede capturar el sonido ya sea usando
su tarjeta de sonido por medio de un cable de conexión externo entre la placa
sintonizadora y la linea de entrada, o usando el chip ADC incorporado en el chip
bt878. En este ultimo caso, deberá cargar el controlador <emphasis role="bold">btaudio
</emphasis>. Lea el archivo <filename>linux/Documentation/sound/btaudio</filename>
(en el árbol de directorio del núcleo, no el de
<application>MPlayer</application>) para instrucciones de como
usar este controlador.
</para>
</listitem>

<listitem>
<para>
Si <application>MEncoder</application> no puede abrir el dispositivo de audio,
asegúrese que este realmente disponible. Puede haber algunos problemas con
algunos servidores de sonido como arts (KDE) o esd (GNOME). Si tiene una placa
de sonido full dúplex (casi todas las placas decentes lo soportan hoy en día), y
está usando KDE, trate activando la opción "full dúplex" en el menú de preferencias del
servidor de sonido.
</para>
</listitem>
</itemizedlist>
</sect2>


<sect2 id="tv-examples">
<title>Ejemplos</title>

<informalexample>
<para>
Salida ficticia, a AAlib :)
<screen>
mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://<!--
--></screen>
</para>
</informalexample>

<informalexample>
<para>
Entrada desde un dispositivo estándar V4L:
<screen>
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://<!--
--></screen>
</para>
</informalexample>

<informalexample>
<para>
Un ejemplo más sofisticado. Esto hace que <application>MEncoder</application>
capture la imagen completa PAL, corte los margenes y desentrelazando la
imagen usando un algoritmo linear blend. El audio es comprimido con una
tasa de bits constante de 64kbps, usando el codec LAME. Esta configuración
es satisfactoria para capturar películas.
<screen>
     mencoder -tv driver=v4l:width=768:height=576 \
     -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
     -oac mp3lame -lameopts cbr:br=64 \
     -vf crop=720:544:24:16,pp=lb -o <replaceable>salida.avi</replaceable> tv://
</screen>
</para>
</informalexample>

<informalexample>
<para>
Esto adicionalmente escalará la imagen a 384x288 y comprimirá el vídeo
a una tasa de bits de 350kbps en modo alta calidad. La opción <option>
vqmax</option> suelta al cuantizador y le permite al compresor de vídeo
alcanzar tasas de bits muy bajas a expensas de la calidad. Esto puede ser
usado para capturar series de TV largas, donde la calidad del vídeo no
es tan importante.
<screen>
     mencoder -tv driver=v4l:width=768:height=576 \
     -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
     -oac mp3lame -lameopts cbr:br=48 \
     -vf crop=720:540:24:18,pp=tn/lb,scale=384:288 -sws 1 \
     -o <replaceable>salida.avi</replaceable> tv://
</screen>
Es posible especificar una dimensión de imagen más chica en la opción <option>-tv</option>
y omitir el escalado de software pero este enfoque usa la máxima cantidad de información
disponible y es un poco más resistente al ruido. Los chips bt8x8 pueden hacer
el promediado de pixels solo en dirección horizontal debido a limitaciones de hardware.
</para>
</informalexample>
</sect2>
</sect1>

<sect1 id="radio">
<title>Radio</title>

<para>
This section is about how to enable listening to radio from
a V4L-compatible radio tuner. See the man page for a
description of radio options and keyboard controls.
</para>

<sect2 id="radio-tips">
<title>Usage tips</title>

<para>
The full listing of the options is available in the manual page.
Here are just a few tips:

<itemizedlist>
<listitem><para>
  Make sure your tuner works with another radio software in Linux, for
  example <application>XawTV</application>.
</para></listitem>
<listitem><para>
  Use the <option>channels</option> option. An example:
  <screen>-radio channels=104.4-Sibir,103.9-Maximum</screen>
  Explanation: With this option, only the 104.4 and 103.9 radio stations
  will be usable. There will be a nice OSD text upon channel switching,
  displaying the channel's name. Spaces in the channel name must be
  replaced by the "_" character.
</para></listitem>
<listitem><para>
  There are several ways of capturing audio. You can grab the sound either using
  your sound card via an external cable connection between video card and
  line-in, or using the built-in ADC in the saa7134 chip. In the latter case,
  you have to load the <systemitem>saa7134-alsa</systemitem> or
  <systemitem>saa7134-oss</systemitem> driver.
</para></listitem>
<listitem><para>
  <application>MEncoder</application> cannot be used for audio capture,
  because it requires a video stream to work. So your can either use
  <application>arecord</application> from ALSA project or
  use <option>-ao pcm:file=file.wav</option>. In the latter case you
  will not hear any sound (unless you are using a line-in cable and
  have switched line-in mute off).
</para></listitem>
</itemizedlist>
</para>
</sect2>

<sect2 id="radio-examples">
<title>Examples</title>

<informalexample><para>
Input from standard V4L (using line-in cable, capture switched off):
<screen>mplayer radio://104.4</screen>
</para></informalexample>

<informalexample><para>
Input from standard V4L (using line-in cable, capture switched off,
V4Lv1 interface):
<screen>mplayer -radio driver=v4l radio://104.4</screen>
</para></informalexample>

<informalexample><para>
Playing second channel from channel list:
<screen>mplayer -radio channels=104.4=Sibir,103.9=Maximm radio://2</screen>
</para></informalexample>

<informalexample>
<para>
Passing sound over the PCI bus from the radio card's internal ADC.
In this example the tuner is used as a second sound card
(ALSA device hw:1,0). For saa7134-based cards either the
<systemitem>saa7134-alsa</systemitem> or <systemitem>saa7134-oss</systemitem>
module must be loaded.
<screen>
mplayer -rawaudio rate=32000 radio://2/capture \
    -radio adevice=hw=1.0:arate=32000:channels=104.4=Sibir,103.9=Maximm
</screen>
<note><para>
When using ALSA device names colons must be replaced
by equal signs, commas by periods.
</para></note>
</para>
</informalexample>
</sect2>

</sect1>
</chapter>
