• ¡Bienvenido a AnimeFagos, estimado invitado! Por favor, tómate un minuto para registrarte, solo con hacerlo ayudas al crecimiento de la comunidad.

TUTORIAL [Plataforma MPV] Aprendamos a ver anime como Dios manda.

Xesu

Godtaster - Encoder - Rey de los Autistas - Ey
Desde
7 Ene 2017
Mensajes
390
Puntos
73
¿Qué es MPV?

MPV es un reproductor de vídeo rápido, compacto y de código abierto. Si empiezas a moverte por github descubrirás un montón de funcionalidades que poder hacer.
La interfaz es muy simple, limpia y ordenada. Nadie necesita una interfaz sobrecargada.
Lo único que necesitas es crear 2 archivos .conf y editarlos con bloc de notas.


Entonces, ¿es MPV la mejor opción?

Sí, siempre.
Es el reproductor de vídeo con el que puedes llegar a lograr la mejor calidad de imagen.
Y en cuanto a funcionalidades también. Además, en github aparecen a menudo nuevos scripts de lo más útiles. No hay que hacer nada más que descargar los que nos interesen y copiarlos a una carpetita de scripts.


MPC, VLC, KCP, CCCP están obsoletos.

LOGkLx4.png

Vamos con el tutorial pues. [Windows]

Archivos que necesitamos:
MPV lattest build: https://mpv.srsfckn.biz/ (Actualizado a la 0.28.0 del 25/12/2017)
1427.png

MPV-Install: https://github.com/rossy/mpv-install/archive/master.zip (Script para poder poner el MPV como reproductor predeterminado)
MPV-Prescalers: https://github.com/bjin/mpv-prescalers/archive/master.zip (Los resizers)


Auto-Profiles.lua: https://raw.githubusercontent.com/wm4/mpv-scripts/master/auto-profiles.lua
Stats.lua: https://raw.githubusercontent.com/Argon-/mpv-stats/master/stats.lua
Recomiendo echar un vistazo a los scripts del segundo post.


noise_static_luma.hook:
https://mega.nz/#!URFUkLQb!dCP_Ocpdy5D2pyROAUq2ns2n4AlNYgv0hSPymHuooO0
noise_static_chroma.hook:
https://mega.nz/#!9c8EWTaQ!awSJd90MFTNfyjGjywKr61CL6Dr_4XbAcTVgpUtL-ek

Procedimiento:

Copiamos la build del MPV en una carpeta. En mi caso queda C:\mpv\mpv.exe
En \mpv copiamos mpv-install y lo ejecutamos como administrador para definir temas de rutas y asociación de archivos.
Creamos las carpeta shaders y scripts en \mpv
Dentro de shaders metemos todos los archivos .hook del mpv-prescalers.zip y los noise_static_luma/chroma.hook
Dentro de scripts metemos los archivos .lua
Dentro de \mpv creamos los archivos input.conf y mpv.conf que editaremos con bloc de notas.


Y ya debería estar 100% funcional.
Para adaptarlo a vuestras necesidades solo tendríais que ir modificando los archivos .conf
Para el input.conf idos al segundo post.
mpv.conf a continuación:


Explicación de "mi configuración" como ejemplo:

#General
profile=gpu-hq
gpu-api=vulkan #Sustituir por "opengl" si problemas de compatibilidad.
gpu-context=winvk #Sustituir por "win" o "angle" si usas opengl
spirv-compiler=shaderc #podéis probar poniendo "nvidia" si tenéis gráfica nvidia. y borrad la linea si opengl

Para la api Vulkan necesitáis la 0.28.0
Para informarse de todas las apis y toda esa polla mirad aquí:
https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst


cursor-autohide=500 #milisegundos que tarda la interfaz y puntero del ratón en ocultarse.
save-position-on-quit #al abrir un vídeo reanuda el momento en el que lo habíamos cerrado.
keep-open=yes #no cierra el mpv al terminar un vídeo.

Pues eso.


#Screen
autofit-larger=1280
fullscreen

Con "fullscreen", al abrir un archivo de vídeo se pondrá directamente en modo pantalla completa.
Con autofit-larger=1280 nos abrirá la ventana con tamaño 1280x720, si la resolución del vídeo es mayor, y centrada en la pantalla. Nos sigue siendo útil incluso usando "fullscreen" por si nos salimos del modo pantalla completa.
Nos evitamos que la pantalla salga desencuadrada o con una resolución mayor que la propia pantalla.



#Priority
alang=jpn,ja,jp

Para releases que tienen Dual Audio con el inglés predefinido. Con esto, al abrir el archivo priorizará el audio japonés al inglés. Es muy útil.
También se puede aplicar a los subs con la línea slang=jpn



#Subs
demuxer-mkv-subtitle-preroll

Hace que se muestren siempre los subs al moverse por la barra de tiempo. En MPC cuando os desplazáis por la barra y clickáis justo en mitad de un sub, este no se muestra.


#Volume
volume=100
volume-max=200
#Screenshot
screenshot-format=png
screenshot-high-bit-depth=no
screenshot-png-compression=1
screenshot-directory="C:\Users\Xesu\Desktop"


No tiene mucha ciencia. Configuración de volumen y screenshots.
Para configurar las teclas que controlen el volumen y las capturas tenéis que ir al archivo input.conf.



#Deband
deband=no <- Desactivado, en el input.conf se define la tecla para activar y desactivar (y)
deband-iterations=1
deband-threshold=50
deband-range=16
deband-grain=40

Deband. Apropiado para Horriblesubs, no para otras releases. Más abajo configuramos su activado automático para los vídeos de horriblesubs.
Os dejo explicaciones al tema para quien esté interesado:
http://www.animefagos.com/foro/temas/tutorial-de-ojos-complementario-al-de-mpv.1605/


#Grain & Resizer
glsl-shader="C:\Users\User\Documents\mpv\shader\noise_static_luma.hook"
glsl-shader="C:\Users\User\Documents\mpv\shader\ravu-r4.hook"

Aquí acordaos de poner vuestras rutas al archivo, porque si no no sirve de nada.

El archivo nnedi3-nns16-win8x4-yuv.hook podéis cambiarlo por otro teniendo en cuenta:
nns son las neuronas. Más nns igual a más calidad. No sé que contras puede tener sin embargo.
El 8x4 dejadlo tal cual. No uséis el 8x6 que no son recomendables todavía.
Y el -yuv o -all es para que tire de chroma y luma.
Sin nada es luma, y -chroma pues es obvio.
Esto es cuestión de ir probando. Aunque se recomienda sin nada (con el luma)


Este apartado anterior, del nnedi3, era antes de usar Vulkan. Con Vulkan ahora tenemos Ravu, que es crema. La r significa radio y cuánto más mejor calidad.
Deberían estar los ravu .hook en el pack de prescalers, si no buscad vulkan en github o comentad en el hilo.



#Resizer
scale=ewa_lanczos
dscale=ewa_lanczos
cscale=sinc
cscale-window=blackman
cscale-radius=3

Información sobre resizer: https://en.wikipedia.org/wiki/Image_scaling


#Interpolation
blend-subtitles=yes
video-sync=display-resample
interpolation=yes
tscale=linear

Info sobre interpolación https://en.wikipedia.org/wiki/Motion_interpolation
El desentrelazado debería estar en la 'd' en el input config. Dudo que lo necesitéis. Dejadlo comentado.



[horriblesubs]
profile-desc=cond:string.match(p.filename, "HorribleSubs")~=nil
deband=yes
#sub-ass-force-style=fontname=Cabin Bold,Bold=1,fontsize=36,outline=1.4,shadow=0.4,primarycolour=&H00FFFFFF,outlinecolour=&H0B0C09&,shadowcolor=&H00000000,shadowoffset=1.2
[horriblesubs-revert]
profile-desc=cond:string.match(p.filename, "HorribleSubs")==nil
deband=no

Con esto, al reproducir archivos que contengan HorribleSubs en el filename se activará el deband.
La parte que tengo comentada de sub-ass-force-style lo que hace es sustituir esos parámetros en los subs del archivo. Es decir, en lugar de usar X fuente para los subs usará Cabin Bold, y esos colores y lo que quieras poner.
Incluso se podría poner sub-ass-force-style=Default.fontname=LTFinnegan para cambiar solo la del estilo default y que no afecte a los carteles.



v1R9M3T.png

w7lACXG.png




Aquí os dejo más información sobre manipular el mpv.conf https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst
Si os ponéis, podeís hacer maravillas con esto. En github tenéis todo lo que necesitáis.


Cualquier duda, preguntad.

profile=gpu-hq
gpu-api=opengl
#gpu-context=winvk
#spirv-compiler=shaderc
fbo-format=rgba16f

glsl-shader="C:\mpv\shader\noise_static_luma.hook"
glsl-shader="C:\mpv\shader\FSRCNNX_x2_r1_16-0-4-1.glsl"
scale=ewa_lanczos
dscale=ewa_lanczos
cscale=sinc
cscale-window=blackman
cscale-radius=3

cursor-autohide=500
save-position-on-quit
keep-open=yes
#fullscreen
#autofit-larger=1280
alang=jpn,ja,jp
demuxer-mkv-subtitle-preroll
sub-ass-vsfilter-blur-compat=no
sub-fix-timing=no

volume=100
volume-max=200

screenshot-format=png
screenshot-high-bit-depth=yes
screenshot-png-compression=1
screenshot-directory="C:\Users\Xesu\Desktop"

blend-subtitles=yes
video-sync=display-resample
interpolation=yes
tscale=linear

deband=no
deband-iterations=1
deband-threshold=60
deband-range=16
deband-grain=0


MkaSfg5.png
 
Última edición:
input.conf:

https://github.com/mpv-player/mpv/blob/master/etc/input.conf

Ahí tenéis un archivo input.conf con los atajos predeterminados comentados. Es decir, si queréis cambiar alguno solo tenéis que descomentar, editar y guardar.

Toda la información para ello la tenéis en https://github.com/mpv-player/mpv/blob/master/DOCS/man/input.rst

Scripts de interés:

Autoload: https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/autoload.lua

Escanea el directorio del archivo que se está reproduciendo para crear una lista de reproducción en orden alfabético. Es decir, si estamos reproduciendo OniChichi 01, al terminar reproducirá automáticamente Oni Chichi 02.


Bookmarker: https://github.com/nimatrueway/mpv-bookmark-lua-script

Nos permite guardar bookmarks pulsando ctrl+*número* y que podrán ser cargados al instante pulsando Alt+*dicho número*. Perfecto para tener guardadas tus escenas favoritas.


Easy-crop: https://github.com/aidanholm/mpv-easycrop/blob/master/easycrop.lua

Cropear durante la reproducción. No es muy útil ya que no puede usarse conjuntamente con webm.


Pausa al minimizar: https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/pause-when-minimize.lua

El reproductor pausará automáticamente el vídeo al minimizar y resumirá al desminizar. Muy útil sin duda.
Por ejemplo, yo tengo una macro en el ratón que es "win+down arrow" que se traduce, en la ventana del MPV como minimizar. Entonces, yo, pulsando en dicho botón del ratón minimizo el vídeo pausándolo, y al restaurar reanuda la reproducción él solito.


Skip chapters: https://github.com/haasn/gentoo-conf/blob/nanodesu/home/nand/.mpv/scripts/avail/skipchapters.lua

Salta automáticamente los capítulos con 'Opening' en el nombre. Puede definirse el nombre de los capítulos que se salta en el código.
Por defecto se salta cuando llevan Op, Ed, Opening, Ending y Preview.


Webm: https://github.com/ElegantMonkey/mpv-webm/blob/master/build/webm.lua

Permite hacer un vídeo.webm del archivo en reproducción. Se activa con mayus+w.
Entonces sale un menú para hacer un trim con las teclas '1' y '2' y encodear con 'e'.
Podéis elegir la resolución del encode entre otras opciones.
Recomiendo usar "," y "." -que están así por defecto- para desplazarse frame por frame en el mpv y ajustar a la perfección el trim.


Zones: https://github.com/wiiaboo/mpv-scripts/blob/master/zones.lua

Permite asignar comandos a la posición del ratón en la pantalla. Es decir, que el programa haga una función u otra simplemente moviendo el ratón. Ya me extenderé más sobre este cuando lo pruebe yo mismo.

Más scripts: https://github.com/mpv-player/mpv/wiki/User-Scripts

Tips:

Saltarse openings con una tecla.
En el archivo input.conf:

TECLA seek 90 #Sustituir TECLA por la tecla a la que queréis asignar la función.

Con esto, al pulsar dicho botón avanzaréis 1m30s hacia adelante en el vídeo. Ideal para saltarse openings fácilmente.


Reproducir un vídeo desde el punto en el cual lo habíamos cerrado:

save-position-on-quit

Copiando esta línea en el mpv.conf, al abrir un vídeo que ha sido cerrado con anterioridad, resumirá en el mismo momento en el que fue cerrado. Ideal para cuando tienes que irte y dejar un capítulo a medias.


Problemas en monitores de 144Hz:

En dichos monitores podría haber problemas de reproducción ya que requiere una GPU potente.
Si tenéis un monitor de estos y no os va bien, probad desactivando la interpolación.
Si sigue sin funcionar dejad un comentario con vuestra .conf y se mira.


Hacer un gif con MPV, script webm y FFMPEG:


Necesitamos antes de nada el ffmpeg: https://ffmpeg.org/download.html
El script webm lo podéis encontrar un poco más arriba.

Se trata de extraer un .webm con el script del trozo que queremos converir en gif. Para hacer un recorte preciso podemos usar "," y "." para desplazarnos frame por frame en el mpv.

Si ahora lo convirtiéramos a gif con un solo comando del ffmpeg nos saldría un gif de muy mala calidad puesto que es un encode de 8 bits solo hay 256 colores (2^8):
Por defecto vendrán estos colores:

RHqsLKz.png


Que con la primera linea haremos que el encode lo sustituya por estos (en mi caso):

nHQNRSA.png


De forma que esos 256 colores cubran mejor el rango de colores que hay en nuestro .webm

Nuestras líneas, entonces, son: (ponedlas en el cmd que ya os veo...)

ffmpeg -y -i tetas.webm -vf palettegen palette.png
ffmpeg -y -i tetas.webm -i palette.png -filter_complex paletteuse -r 10 tetas.gif

Diferencias usando este tipo de encode a otro con los 256 colores por defecto:

Método por defecto:
MaC5O4t.gif


Método que acabamos de ver:
yBYJvBg.gif


Eso sí, el gif va a pesar un poquito más.
Algo más avanzado:

ffmpeg -v warning -i tetas.webm -vf "fps=15,scale=500:-1:flags=lanczos,palettegen" -y palette.png
ffmpeg -v warning -i tetas.webm -i palette.png -lavfi "fps=15,scale=500:-1:flags=lanczos [x]; [x][1:v] paletteuse" -y tetas.gif

Con ellas ya podéis cambiar la resolución del gif y los frames.

Extraer el opening de un capítulo con FFMPEG:


Introducid la siguiente línea en el cmd:

ffmpeg -ss 00:00:00 -i capitulo.mkv -to 00:01:30 -c copy opening.mkv

después de -ss poned el tiempo donde empieza el opening (Ejemplo: 00:00:27)
después de -i poned el archivo del que queráis extraer el opening (Ejemplo: ShoujoShuumatsu02.mkv)
después de -to poned el tiempo donde termina el opening (Ejemplo: 00:01:57)
-c copy ponedlo siempre. Lo que hace es copiar ese trozo de vídeo, en lugar de reencodearlo.
y sustituid opening.mkv por el nombre del archivo y formato de salida. Este será vuestro opening/ending o lo que sea. (Ejemplo: OpeningShoujoShuumatsu.mkv

Nuestra línea del ejemplo sería:

ffmpeg -ss 00:00:27 -i ShoujoShuumatsu02.mkv -to 00:01:57 -c copy OpeningShoujoShuumatsu.mkv

Y no hay más.
 
Última edición:
Luego voy a buscar info y voy a intentar hacerme una build y si llega el caso (Que dudo bastante) lo publico por aquí
 
No conocía este reproductor y sí, por lo que has puesto se ve bastante adaptable. Creo que sería de gran ayuda para aquellos que continuamente tienen que trabajar con vídeos, como los fansubers, sin embargo para aquellos que le damos un uso normal, pues me imagino que la cosa quedará ya en cuestión de gustos.

Yo por ejemplo hace meses usaba el VLC, porque ma parecía bastante cómodo, sin embargo en cierto Discord de Anime Serio me aconsejaron que me pasara al MPC, cosa de la que estoy bastante agradecido, ya que se nota bastante y es mucho mas liviano, sin embargo no le doy un uso tan intensivo y personalizado para justificar el cambio al MPV, de todas formas como hay que estar abierto a otras cosas, veré como evoluciona el MPV y lo mismo en un futuro no muy lejano me sumo al cambio.

EDIT: se me olvidaba, pedazo post tutorial que te has marcado, muchas gracias shur :mola:.
 
Vamos que uno come RAM y otro CPU. Me he leído el segundo post y es impresionante lo altamente configurable que es el reproductor, casi se puede automatizar todo.
 
Viendo Aria the Origination a 1920x1080, la ventana al abrirla, sin fullscreen, quedaba una parte por debajo de la barra de tareas y era incómodo dada la alta resolución. No he tardado en encontrar la solución:

autofit-larger=80%x80%

Con esta linea limitas el tamaño máximo de la ventana, al abrirse el vídeo, a un 80% de ancho o bien un 80% de alto. Podéis cambiarle los valores a vuestro antojo.
También hay otras líneas para definir un tamaño exacto o un límite mínimo.
 
Lo vi en su día pero se me olvidó postear...

¡Gracias por el aportazo! Cuando pueda lo pruebo, a ver qué tal.
 
Pues me va como un jodido cohete y aparentemente no noto demasiada diferencia en la calidad, pero en el rendimiento/consumo de recursos esta absurdamente bien, ademas eso de poder poner scripts son como golosinas

gLtGuR1.jpg
 
Me pongo a actualizar el hilo, hay muchas cosas nuevas.

He editado un poco lo de al principio del mpv.conf y añadido unos tips.
Voy a editar en cuanto pueda cómo andar con el input.conf
 
Última edición:
Por lo que se ve la comunidad de este reproductor es muy activa.
 
Atrás
Arriba Pie