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 : 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 (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 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 ) 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 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 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. Unidades de CD/DVD Extracto de documentación de Linux: 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: 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. Algunas unidades de CD-ROM son molestamente ruidosas, a menor velocidad se puede reducir el ruido. Puede reducir la velocidad de las unidades de CD-ROM IDE con hdparm o con un programa llamado setcd. Funciona de la siguiente manera: hdparm -E [velocidad] [dispositivo de cdrom] setcd -x [velocidad] [dispositivo cdrom] Si tiene privilegios de root la siguiente órden puede también ayudarle: echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings 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 hdparm: hdparm -d1 -a8 -u1 cdrom device Esto activa el acceso DMA, pre-lectura, y desenmascarado de IRQ (lea la página de manual de hdparm para una explicación detallada). Por favor, diríjase a "/proc/ide/cdrom device/settings" para ajuste-fino de su CD-ROM. Las unidades SCSI no tienen una manera uniforme para estableces estos parámetros (¿conoce alguna? ¡Díganoslo!) Aquí hay una herramienta que funciona para unidades Plextor SCSI. FreeBSD: Speed: cdcontrol [-f dispositivo] speed velocidad DMA: sysctl hw.ata.atapi_dma=1 Reproducción de DVD 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: mplayer dvd://<pista> [-dvd-device <dispositivo>] Ejemplo: mplayer dvd://1 -dvd-device /dev/hdc El dispositivo DVD por defecto es /dev/dvd. 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 . Soporte para el DVD de Nuevo-estilo (mpdvdkit2) MPlayer usa libdvdread y libdvdcss para desencriptación y reproducción. Estas dos bibliotecas están contenidas en el subdirectorio libmpdvdkit2/ del árbol de código fuente de MPlayer, no tiene que instalarlo por separado. Hemos optado por esta solución porque hemos corregido un error de libdvdread y aplicado un parche que añade soporte para cacheo de claves CSS crackeadas para libdvdcss. Esto resulta en un gran incremento de velocidad porque las claves no tienen que ser crackeadas cada vez que se reproduce. MPlayer puede usar también bibliotecas libdvdread del sistema y libdvdcss, pero esta solución no se recomienda, porque puede resultar en fallos, incompatibilidades de bibliotecas y velocidad más lenta. En caso de problemas de decodificación de DVD, pruebe a deshabilitar supermount, o cualquier otra utilidad de este tipo. Estructura de DVD 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. 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 sectores por todos sitios, por lo que necesita usar direccionamiento crudo de sectores del disco para implementar navegación DVD o desencriptar el contenido. 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. libdvdread 0.9.x y libmpdvdkit 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. Algunas veces /dev/dvd no puede ser leído por los usuarios, por lo que los autores de libdvdread 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. libdvdread incluso acepta un punto de montaje en lugar del nombre del dispositivo para acceso crudo y comprueba /proc/mounts para obtener el nombre del dispositivo. Esto ha sido desarrollado por Solaris, donde los nombres de los dispositivos son asignados dinámicamente. El dispositivo por defecto de DVD es /dev/dvd. 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 . Autenticación para DVD 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 libdvdcss (vea más arriba). Este método peude ser especificado a través de la variable de entorno DVDCSS_METHOD, que puede ser establecido a key, disk o title. Si no se especifica nada se prueban los siguientes métodos (por defecto: key, petición de título): bus key: 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. cached key: MPlayer mira a ver si el título ya ha sido crackeado con una clave almacenada en el directorio ~/.mplayer/DVDKeys (rápido ;). key: Si no hay una clave disponible en caché, MPlayer intenta desencriptar la clave del disco con un conjunto de claves de reproductor incluidas. disk: Si el método key falla (p.e. no hay claves de reproductor incluídas), MPlayer 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). title request: Con la clave del disco MPlayer pide las claves encriptadas de los títulos que están dentro de sectores escondidos usando ioctl(). 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. title: 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 "ataque de texto plano conocido" o "DeCSSPlus". 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). 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 página del firmware. Si no hay una actualización del firmware disponible para su dispositivo, use la herramienta regionset para establecer el código de región de su unidad de DVD (bajo Linux). Advertencia: Solo puede establecer la región 5 veces. Reproducción de VCD 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: mplayer vcd://<track> [-cdrom-device <device>] Ejemplo: mplayer vcd://2 -cdrom-device /dev/hdc El dispositivo para VCD Por defecto es /dev/cdrom. 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 . Al menos las unidades de CD-ROM SCSI Plextor y algunas Toshiba tienen un rendimiento horrible leyendo VCDs. Esto es porque el ioctl CDROMREADRAW no está completamente implementado en estas unidades. Si tiene conocimientos sobre la programación SCSI, por favor ayúdenos a implementar soporte SCSI genérico para VCDs. En la actualidad puede extraer datos desde VCDs con readvcd y reproducir el archivo resultante con MPlayer. Estructura de un VCD Los discos de VCD consisten en una o más pistas: 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). 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 no pueden ser montadas (¿Alguna vez ha montado un CD de audio para reproducirlo?). Como las películas están dentro de esta pista, debería probar primero. 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. Acerca de los archivos .DAT 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 (vcdfs/isofs-2.4.X.o), 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 MPlayer. ¡Pero no funciona con el controlador estandar iso9660 del kernel de Linux! Use en su lugar. Alternativas para copiar un VCD son los nuevos controladores del kernel cdfs (que no forman parte del kernel oficialmente) que muestran sesiones de CD como archivos de imagen y cdrdao, un programa para grabar/copiar CD bit-por-bit. 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). Usando un archivo EDL Incluya la opción 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 . 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.