mpv (Español)
mpv es un reproductor multimedia basado en MPlayer y el ahora sin mantenimiento mplayer2. Soporta una gran variedad de formatos de video, codecs de audio y video, asi como subtítulos. Una lista, aunque incompleta, de las diferencias entre mpv y otros reproductores se puede encontrar aquí.
Instalación
Instale el paquete mpv o la version de desarrollo mpv-gitAUR.
Interfaces gráficas
Vea una lista de aplicaciones basadas en mpv.
Configuración
mpv trae valores predeterminados que debieran funcionar correctamente en computadoras con tarjetas de video más viejas o débiles. Sin embargo, en computadoras con tarjetas de video más recientes mpv permite hacer una gran cantidad de configuraciones para lograr una mejor calidad de video, limitadas únicamente por la capacidad del componente. Esto requiere la creación de archivos de configuración que no vienen incluidos en la instalación por defecto.
/etc/mpv
y por usuario (per-user) desde ~/.config/mpv
— a menos que las variables de entorno XDG_CONFIG_HOME
estén establecidas —, en donde los ajustes del usuario sobreescriben los del sistema, y a su vez los ajustes ingresados en la línea de comando sobreescriben todos los anteriores. Se sugiere realizar configuraciones específicas por usuario, pues pueden requerir prueba y error.Para ayudarlo a comenzar mpv proporciona muestras de archivos de configuración con ajustes predeterminados. Cópielos para usarlos como punto de partida:
$ cp -r /usr/share/doc/mpv ~/.config/
mpv.conf
contiene la mayoría de los ajustes de mpv, input.conf
contiene los enlaces de tecla (key binding). Lea ambos para formar una idea de cómo funcionan y qué opciones están disponibles.
Ajustes generales
Añada los siguientes ajustes en .
Configuraciones para calidad alta
Esto carga opciones de OpenGL de alta calidad al ser usado con como método de salida de video (valor por defecto). La mayoría de los usuarios puede hacerle funcionar sin problemas, pero no está activado por defecto para evitar causar problemas al grupo de usuarios que no les funciona:
profile=gpu-hq
El perfil utiliza por defecto el filtro de escala spline36
para velocidad y calidad media. Para obtener la mejor calidad en la salida de video, el manual dice que si el hardware puede hacerle funcionar, la opción ewa_lanczossharp
es la aconsejada.
profile=gpu-hq scale=ewa_lanczossharp cscale=ewa_lanczossharp
Estas últimas tres opciones son un poco más complicadas. La primera hace un remuestreo (resample) del audio si este se desincroniza con el video en vez de botar los cuadros (frames) ─un leve aumento en el tono del sonido es usualmente menos notorio que una caída en los cuadros─. La wiki de mpv tiene un artículo en profundidad al respecto titulado Display Synchronization. El resto de las opciones esencialmente vuelven más suave el movimiento en la pantalla cambiando la forma en que los cuadros son mostrados para que así los cuadros por segundo de la fuente se muevan mejor con la tasa de refresco de la pantalla ─no confundir con la técnica SVP que convierte los videos a 60 cuadros por segundo─. La wiki de mpv tiene un artículo en produndidad al respecto titulado Interpolation, aunque es comunmente conocido como smoothmotion.
profile=gpu-hq scale=ewa_lanczossharp cscale=ewa_lanczossharp video-sync=display-resample interpolation tscale=oversample
El usuario puede realizar más ajustes que los ya mencionados, pero su dificultad aumenta, requiere tarjetas de video más potentes y están en constante desarrollo. Como breve visión general, es posible cargar shaders especiales que realicen técnicas de escala y afilado, incluyendo también las que usan redes neuronales profundas entrenadas con imagenes tanto de origen animado como fotográfico. La wiki de mpv abarca este tópico, en particular la sección user shader's.
Para encontrar otras opciones de interés, se recomienda revisar . También es recomendable ejecutar mpv desde la consola de comandos para revisar posibles errores ocacionados por la configuración.
Perfiles personalizados
En mpv.conf
es posible crear perfiles que son esencialmente grupos de opciones con las que puede:
- Rápidamente cambiar entre diferentes configuraciones sin tener que reescribir el archivo.
- Crear perfiles especiales para contenido especial.
- Anidar perfiles, de modo que se construyan perfiles complejos a partir de otros más simples.
Crear un perfil es fácil. El área al comienzo de mpv.conf
se llama nivel superior, cualquier opción escrita allí tendrá efecto una vez que mpv sea iniciado. Sin embargo, una vez se define un perfil escribiendo su nombre entre corchetes, toda opción debajo formará parte de este y será delimitado únicamente por el comienzo de otro perfil. A continuación un ejemplo de mpv.conf
:
profile=miperfil2 #Nivel superior, carga miperfil2 ontop=yes #Siempre sobre el resto [miperfil1] #Un perfil simple, el nivel superior termina aquí profile-desc="un perfil" #Descripción opcional del perfil fs=yes #Empezar a pantalla completa [miperfil2] #Otro perfil simple profile=gpu-hq #Un perfil incorporado en mpv log-file=~~/log #Asigna una ubicación para escribir el registro, ~~/ se traduce a ~/.config/mpv
Sólo hay dos lineas en el nivel superior y dos perfiles separados definidos debajo de este. Cuando mpv comienza, este lee la primera línea, carga las opciones en ─lo que significa que va a cargar las opciones en y )─ y termina de iniciarse. Note que nunca es cargado porque no es llamado en el nivel superior.
Alternativamente se puede llamar a mpv desde la línea de comando con:
$ mpv --profile=miperfil1 video.mkv
y con ello ignoraría todas las opciones a excepción de las incluidas en .
Atajos de teclado
Los atajos de teclado son bastante directos dado los ejemplos en y la sección relevante en el manual.
Añada los siguientes ejemplos a :
shift+s screenshot each-frame Shift+UP seek 600 Shift+DOWN seek -600 = cycle video-unscaled - cycle-values window-scale 2 3 1 .5 WHEEL_UP add volume 5 WHEEL_DOWN add volume -5 WHEEL_LEFT ignore WHEEL_RIGHT ignore Alt+RIGHT add video-rotate 90 Alt+LEFT add video-rotate -90 Alt+- add video-zoom -0.25 Alt+= add video-zoom 0.25 Alt+j add video-pan-x -0.05 Alt+l add video-pan-x 0.05 Alt+i add video-pan-y 0.05 Alt+k add video-pan-y -0.05 Alt+BS set video-zoom 0; set video-pan-x 0; set video-pan-y 0
Para intentar reproducir los atajos de teclado de MPC-HC en mpv, vea .
Archivos de configuración adicionales
También hay otros archivos y directorios de configuración que pueden ser creados, entre ellos se encuentran:
~/.config/mpv/script-opts/osc.conf
que administra los On Screen Controller (controles en pantalla).- para scripts Lua. Vea para un ejemplo.
Vea https://mpv.io/manual/master/#files para mayor información.
Scripts
El reproductor mpv tiene una una gran variedad de scripts que extienden su funcionalidad. Para este propósito, tiene ataduras (bindings) para Lua y JavaScript — añadido recientemente —.
Los scripts son típicamente instalados poniendo archivos en el directorio ~/.config/mpv/scripts/
— puede necesitar crearlo primero — . Después de ello serán automáticamente cargados cuando mpv comience — este comportamiento puede ser alterado con otras opciones de mpv —. Algunos scripts vienen con su propia instalación e instrucciones de configuración, por lo que debe estar atento. Además, algunos scripts pueden estar viejos, quebrados y sin mantención.
JavaScript
JavaScript (ES5 via MuJS) tiene soporte como lenguaje script en mpv desde el año 2014. Actualmente pocos scripts se encuentran disponibles, pero existe documentación para los usuarios interesados en crear los propios.
Para comenzar, ponga en el directorio un script con extensión de archivo , e.g.:
Para mayores detalles, e.g. en el uso de para cargar módulos CommonJS, vea la documentación.
El soporte de JavaScript se encuentra disponible en el paquete mpv, así como en algunos paquetes de AUR, e.g. y .
Lua
Hay muchos scripts en Lua interesantes para mpv. Si está interesado en crear uno propio, la documentación relevante puede encontrarse aquí.
mpv-stats
mpv-stats — o simplemente stats — es un script en Lua que tiene como salida muchos datos estadísticos en tiempo real mostrando el estado de funcionamiento de mpv. Es muy útil para asegurar que el hardware soporta las configuraciones hechas o para comparar entre varias. Desde la versión v0.28.0 el script se encuentra incluído en mpv y se puede alternar su encendido/apagado con las teclas y I
— configuración por defecto —.
mpv-webm
mpv-webm — o simplemente webm — es un script en Lua muy fácil de usar que permite crear archivos WebM mientras se miran videos. Incluye varias característica y no requiere dependencias adicionales — se basa en su totalidad en mpv —.
mpv-mpris
El complemento en C mpv-mpris permite a otras aplicaciones integrarse con mpv mediante el protocolo MPRIS. Por ejemplo, con mpv-mpris instalado, puede automáticamente pausar la reproducción de un video en mpv cuando haya una llamada telefónica entrante. Otro ejemplo son los botones — reproducir/pausar, entre otros — en dispositivos de audio conectados por bluetooth.
Instale y siga las instrucciones de postinstalación mostradas por Pacman.
Vapoursynth
Vapoursynth es una alternativa a AviSynth que puede ser utilizada en Linux y permite la manipulación de videos mediante scripts de python. Los scripts de python de Vapoursynth pueden ser usados como filtros de video para mpv.
Para usar filtros de vapoursynth debe instalar el paquete vapoursynth (o ) y compilar mpv con la bandera de construcción (build flag) .
Esto es más fácil de hacer si primero se instala Vapoursynth y luego se instala ─o reinstala─ mpv-gitAUR. El script de configuración para mpv-gitAUR autodetectará Vapoursynth ─siempre que se encuentre instalado previamente─ y automaticamente compliará mpv con soporte para Vapoursynth sin tener que configurar manualmente ninguna opción ─lo que también vuelve muy fácil actualizar mpv─.
SVP 4 Linux (SmoothVideoProject)
SmoothVideoProject SVP es un programa conocido principalmente por convertir videos a 60 cuadros por segundo. Es gratuito [como la cerveza] y con todas las opciones disponibles para Linux de 64bit (cuesta dinero para Windows y OS X y es incompatible con Linux de 32bit).
Tiene tres características principales y cada una puede activarse/desactivarse a elección personal ─no se fuerza el uso de motion interpolation─.
- Motion interpolation (video de youtube) - Un algoritmo que convierte videos a 60 cuadros por segundo. Esto crea el controversial "efecto telenovela" (soap opera effect) que no le agrada a todas las personas. Desafortunadamente el algoritmo no es perfecto e introduce extraños artefactos (artifacts). El algoritmo puede ser afinado ─mediante un control deslizante─ para escoger entre rendimiento y calidad. También tiene ajustes de reducción de artefactos que interpolan los cuadros actuales con los generados, aminorando la percepción de los artefactos. La detección de los cuadros por segundo se puede establecer a modo manual o automático ─el modo manual parece resolver problemas de rendimiento a algunos usuarios─-
- Black bar lighting (video de youtube) - Si la imagen tiene una relación de aspecto que produce barras negras en la pantalla, entonces SVP iluminará las barras negras con "luces" generadas por el contenido en pantalla. Tiene un cierto grado de personalización, pero los valores por defecto están bastante cerca de lo óptimo.
- LED ambient lighting control (video de youtube) - Tiene la habilidad de controlar iluminación ambiental LED anexada al televisor.
Una vez se tenga mpv compilado con el sopote a Vapoursynth es bastante simple hacer funcionar SVP en conjunto con mpv. Simplemente instale , abra el programa SVP para dejarle evaluar el rendimiento del sistema ─se aconseja cerrar previamente otros programas para no afectar la precisión de la lectura─, y finalmente añada el siguiente perfil de mpv a mpv.conf:
Luego, antes de abrir el respectivo archivo con mpv utilizando el perfil previamente indicado, el programa SVP debe estar ejecutándose en segundo plano para poder utilizar la función SVP. Para el uso en mpv puede hacer:
$ mpv --profile=svp video.mkv
o establecer en el nivel superior de la configuración de mpv.P
Para utilizar decodificación por hardware debe emplear un decodificador copy-back, pues los decodificadores normales no son compatibles con Vapoursynth ─escoja una opción que termine en ─. Por ejemplo:
hwdec=auto-copy hwdec-codecs=all
De todos modos, la decodificación por hardware no es aconsejada por los desarrolladores de mpv y es probable que no genere una diferencia significativa en el rendimiento.
Consejos y trucos
Aceleración de video por hardware
Vea Hardware video acceleration.
La decodificación de video acelerada por hardware está disponible mediante la opción --hwdec=API
. Para un listado de todas las APIs soportadas y otras opciones requeridas vea la sección relevante del manual.
Para Wayland (Español) utilice la opción --gpu-context=wayland
. Para un listado de otras APIs de GPU disponibles vea el manual.
Guardar la posición en la salida
Puede guardar la posición y cerrar el programa con la combinación de teclas . Esta puede ser cambiada estableciendo en el archivo de configuración de atajos de teclado.
Para guardar automáticamente la posición de reproducción actual al momento de cerrar el programa, inicie mpv con , o añada al archivo de configuraciones.
El volumen está muy bajo
Escriba en su archivo de configuración con una cantidad razonable, como , que le permitirá aumentar el volumen hasta en un 150% ─lo que es el doble de ruidoso─. Aumentar demasiado el volumen provocará artefactos de recorte (clipping artefacts). Adicionalmente ─o de forma alternativa─ puede utilizar dynamic range compression con .
Reproducir un DVD
El reproductor mpv no soporta menús de DVD. Para reproducir el stream principal con el título más largo de un vídeo de DVD, use la orden:
$ mpv dvd://
Un especificador de título opcional es un número, comenzando desde el 0, que selecciona entre streams separados de video en el DVD:
$ mpv dvd://[título]
Un DVD que ha sido copiado a un sistema de archivos local ─con una herramiento como dvdbackup─ es acomodada especificando la ruta a la copia local: .
DVDs which have been copied on to a local file system (by e.g. the dvdbackup tool) are accommodated by specifying the path to the local copy: .
Vea el siguiente ejemplo de desktop file para reproducir DVDs desde un sistema de archivos local:
[Desktop Entry] Type=Application Name=mpv Media Player DVD GenericName=Multimedia player Comment=Play movies and songs Icon=mpv Exec=mpv dvd:// --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f Terminal=false Categories=AudioVideo;Audio;Video;Player;TV; # (MimeType and X-KDE-Protocols omitted, see orginianl mpv.desktop file)
Reemplazando la línea Exec con
Exec=mpv dvd://0 dvd://1 dvd://2 dvd://3 dvd://4 dvd://5 dvd://6 dvd://7 dvd://8 dvd://9 --player-operation-mode=pseudo-gui --force-window --idle --dvd-device=%f
el reproductor mpv pondrá en cola los títulos desde el 0 al 9 en una lista de reproducción, lo que permite reproducir los títulos consecutivamente o saltar entre ellos desde la interfaz gráfica de mpv.
Instale libdvdcss para solucionar el error:
[dvdnav] Error getting next block from DVD 1 (Error reading from DVD.)
Cambiar rápidamente entre relaciones de aspecto
Puede cambiar entre distintas relaciones de aspecto utilizando .
Ignorando relaciones de aspecto
Puede ignorar relaciones de aspecto utilizando . Para volverlo permanente añada la línea al archivo de configuraciones.
Dibujar a la ventana raíz
Ejecute mpv con --wid=0
. mpv dibujará a la ventana con un ID de número 0.
Siempre mostrar la ventana de la aplicación
Para mostrar la ventana de la aplicación, incluso para archivos de audios cuando son ejecutados desde la línea de órdenes, utilice la opción . Para volver la opción permanente añada la línea al archivo de configuración.
Desactivar la salida de video
Para desactivar la salida de video cuando se ejecuta desde la línea de órdenes utilice la opción , o su alias .
Restaurar un OSC antiguo
Desde la versión 0.21.0, mpv ha reemplazado los controles en pantalla por una barra al fondo. Si desea restaurar los controles en pantalla, puede editar las configuraciones de mpv como se describe aquí.
Usar un plugin de navegador
Con la ayuda de , mpv puede utilizarse en un navegador soportado para reproducir videos. Vea Browser plugins#MozPlugger para detalles de configuración. Esto en tándem con un script como ViewTube, permite usar mpv en lugar del reproductor de video integrado en el sitio.
Puede ser necesario especificar un agente de usuario (user agent) para streaming por HTTP, e.g. .
Browser plugins#Multimedia playback muestra otras formas más fáciles para reproducir videos.
Mejorando mpv como reproductor de música con spcripts en Lua
El desarrollo de scripts en Lua de mpv está documentado en DOCS/man/lua.rst y se muestra ejemplos en TOOLS/lua sobre el repositorio de mpv. Esta publicación de blog introduce el script music.lua que muestra cómo scripts en Lua pueden ser utilizados para mejorar mpv como reproductor de música.
Streaming de Twitch.tv mediante mpv
Si youtube-dl se encuentra instalado, entoncesmpv puede abrir directamente un livestream de Twitch.
Véase también Streamlink#Twitch.
Otra alternativa basada en Livestreamer es este script en Lua: https://gist.github.com/ChrisK2/8701184fe3ea7701c9cc
youtube-dl y escogiendo formatos
El --ytdl-format
predeterminado es . Para videos de youtube que tienen resoluciones 4k disponibles esto significa que su dispositivo trabajará más de lo habitual decodificando 4k en VP9, incluso cuando el monitor conectado tenga una resolución inferior.
Ajustando el selector de formato adecuado en youtube-dl puede arreglar esto de forma simple. En la siguiente configuración de ejemplo sólo los videos con una resolución vertical menor o igual a 1080 pixeles serán considerada.
ytdl-format="bestvideo[height<=?1080]+bestaudio/best"
Puede añadir lo siguiente al selector de formato si desdea evitar por completo cierto códec al no poder decodificarlo mediante hardware. En el siguiente ejemplo adicionalmente escogeremos ignorar por completo VP9:
ytdl-format="bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best"
Utilice lo siguiente si prefiere obtener la mejor calidad con códecs de código abierto (VP9 y Opus):
ytdl-format="((bestvideo[vcodec^=vp9]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio[acodec=aac]/bestaudio))/best"
Audio en youtube-dl con búsqueda
Para encontrar un stream de audio desde un emulador de terminal con la órden ponga la siguiente función en su :
function yta() { mpv --ytdl-format=bestaudio ytdl://ytsearch:"$*" }
Crear una única captura de pantalla
Un ejemplo de creación de una única captura de pantalla en un tiempo dado ():
$ mpv --no-audio --start=00:01:30 --frames=1 /path/to/video/file --o=/ruta/a/la/captura_de_pantalla.png
Las capturas de pantallas serán guardadas en /ruta/a/la/captura_de_pantalla.png
Solución de problemas
Depuración general
Para la solución de problemas en la reproducción de mpv ─o su total mal funcionamiento─ hay tres primeros pasos que debiera seguir:
- Ejecutar mpv desde la línea de órdenes ─la bandera -v incrementa el detalle desplegado─. Si tiene suerte encontrará un mensaje de error indicándole el problema.
$ mpv -v video.mkv
- Haga que mpv cree un archivo de registro. Podrá resultar dificultoso tamizarlo, pero si algo está quebrado lo encontrará allí.
- Ejecute mpv sin configuraciones. Si el programa funciona correctamente, entonces allí radica el problema ─es posible que su hardware no pueda manejar los ajustes seleccionados─.
Un cuarto paso que puede intentar, si lo anterior no surte efecto, es instalar el script mpv-stats y utilizarlo para ver exactamente cómo está funcionando mpv.
Arreglar reproducción desigual y desgarro
De forma predeterminada, mpv utiliza la configuración de dispositivo de salida de video OpenGL en hardware que lo soporta. Por ejemplo, cuando se intenta reproducir videos en un monitor de resolución 4k utilizando una tarjeta Intel de la serie HD4XXX o similar, utilizar cualquier configuración con una salida OpenGL volverá la reproducción de video poco fidedigna al punto en que se detiene en su totalidad de a momentos y presenta desgarros mayores. Para resolver este comportamiento, utilizar el dispositivo de salida de video XV ─solamente para Xorg (Español)─ puede ayudar:
Es posible incrementar aún más el rendimiento ─especialmente en hardware con menor potencia─, pero esto conlleva a una reducción drástica de la calidad en la mayoría de los casos.
La siguiente opción puede ser considerada para incrementar el rendimiento de la reproducción de video:
~/.config/mpv/mpv.conf
vd-lavc-fast vd-lavc-skiploopfilter=<skipvalue> vd-lavc-skipframe=<skipvalue> vd-lavc-framedrop=<skipvalue> vd-lavc-threads=<threads>
Problemas con compositores de ventanas
Los compositores de ventanas como Kwin o Mutter pueden causar problemas a la suavidad de la reproducción. Para ello, puede ayudar ajustar para hacer que mpv también deshabilite la composición de ventanas cuando reproduce contenido en el modo ventana ─si esta opción es soportada por el compositor─.
Con el compositor Kwin y la decodificación por hardware puede desear ajustar para mantener el compositor activado en el modo a pantalla completa, pues reactivar la composición luego de dejar la pantalla completa puede introducir el efecto de tartamudeo (stutter) por un periodo de tiempo.
No hay barra de volumen, no se puede modificar el volumen
Haga girar la rueda del ratón sobre el ícono del volumen.
Pantalla blanca en GNOME (Wayland)
Es posible que mpv no pueda suspender los ajustes de ahorro de energía de GNOME si utilizar Wayland hace que el salvador de pantalla apaque el monitor durante una reproducción de video. Un método para evitar esto consiste en añadir al inicio de la línea en .
Usar mpv con un compositor
Si está utilizando un compositor ─e.g en KDE Plasma 5─ y encuentra el compositor desactivado ─e.g. en Plasma esto le imposibilitaría presentar ventanas o ver miniaturas de ventanas en el cambiador de programas─ cuando mpv reproduce un vide, intente .
El tema del cursor no es respetado en GNOME Wayland
En Wayland, los clientes pueden mostrar distintos temas de cursores porque no hay un único archivo de configuración para aquello. Para el tema del cursor, las apliaciones Qt usualmente aceptar el valor que está establecido para la variable de entorno XCURSOR_THEME
. No obstante, en el caso específico de mpv, el tema del cursor que se muestra necesita ser establecido en . Como GNOME no actualiza este archivo cuando el tema del cursor es cambiado desde GNOME Tweaks, lo deberá hacer manualmente. Vea Cursor themes#XDG specification para mayor información.