From 6c2c092c38a6089cc4e2b8bff157abe3b8c08c6a Mon Sep 17 00:00:00 2001 From: santisoler Date: Thu, 15 Apr 2021 22:08:12 -0300 Subject: Add blog post about mpv --- _posts/2021-04-15-mpv.md | 229 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 _posts/2021-04-15-mpv.md diff --git a/_posts/2021-04-15-mpv.md b/_posts/2021-04-15-mpv.md new file mode 100644 index 0000000..479b0b1 --- /dev/null +++ b/_posts/2021-04-15-mpv.md @@ -0,0 +1,229 @@ +--- +title: ¿Cuál es el mejor reproductor de videos y por qué mpv? +layout: post +excerpt: +--- + +Desde que las computadoras nos permitieron reproducir videos, debemos haber +experimentado con una larga lista de reproductores de video. +Personalmente, [VLC](https://www.videolan.org/vlc/) fue amor a primera vista, +mi reproductor de videos predilecto por años. +Es Software Libre, te reproduce cualquier video, sin importar si tenés los +codecs instalados para poder verlo, es multiplataforma, hasta lo pude instalar +en mi primer Android (un LG hermoso que corría Android 2.2 y le entraba +CyanogenMod como anillo al dedo, pero esa historia es para otro post). + +Los últimos años mi atracción se volcó +a [SMPlayer](https://www.smplayer.info/), un reproductor basado en librerías Qt +que ofrece una interfaz gráfica para el poderoso MPlayer. +SMPlayer traía algo que me generó adicción: poder decargar los subtítulos sin +abandonar la interfaz del reproductor. +Además siempre lo sentí más estable que el VLC. + +Sin embargo, en este último tiempo apareció en mi vida el que considero el +mejor reproductor de videos... (tambores de suspenso) [`mpv`](https://mpv.io/), +un reproductor minimalista, que consume muy pocos recursos, con una interfaz +super simple donde el protagonista es el video. No tiene menús, pero podés +acceder a muchas funcionalidades a través de accesos de teclado. Al igual que +SMPlayer, `mpv` está basado en MPlayer, pero también en FFmpeg, la suite de +programas de audio y video que [comprime los videos que llegan de +Marte](https://en.wikipedia.org/wiki/FFmpeg#Projects_using_FFmpeg). Al ser tan +minimalista, `mpv` está diseñado para poder ser embebido en otras aplicaciones. +Por ejemplo, Stremio lo utiliza para poder reproducir los videos que +_streamea_. + +Las bondades de `mpv` no terminan ahí. Este reproductor está pensado para que +podamos agregarle funcionalidades a través de scripts, sin necesidad de +modificar el código fuente y recompilarlo. Es decir, cualquier usuarie puede +escribir (con algo de conocimiento) unas pocas líneas para manipular el +reproductor a su antojo. Y si no te sentís capaz de escribir un script vos +solx, podés descargar alguno de [esta larga +lista](https://github.com/mpv-player/mpv/wiki/User-Scripts). + +Y por si no fuera poco, `mpv` nos permite ver videos de YouTube, Vimeo, +Peertube, etc. haciendo uso de [`youtube-dl`](https://youtube-dl.org/) (agachen +sus cabezas ante semejante deidad). Gracias a esta funcionalidad, no solo +podemos ver videos que estén colgados en la red sin necesidad de abrir nuestro +navegador, sino que también podemos ver streamings de YouTube Live, Twitch +y cuanta plataforma se te ocurra. Me saco el sombrero. + +Esto abre la puerta a que un hardware no muy poderoso (una netbook con un Atom, +por ejemplo) nos reproduzca videos de estas plataformas sin necesidad de cargar +una tonelada de JavaScript con nuestro navegador solo para darnos cuenta que +a nuestro CPU no le queda nafta para reproducir el video sin perder frames en +el camino. + + +## Cómo instalar mpv + +mpv está disponible en los repositorios de la mayoría de las distribuciones. +En Debian, Ubuntu y derivadas podemos instalarlo con: + +``` +sudo apt install mpv +``` + +Y en Arch, Manjaro y derivadas: + +``` +sudo pacman -S mpv +``` + +Podemos abrir un video desde nuestro navegador de archivos y elegir `mpv` como +la aplicación por defecto. O bien podemos abrirlo desde la terminal: + +``` +mpv mi-video.mkv +``` + +En el [manual de `mpv`](https://mpv.io/manual/master/) podemos hallar una lista +de los accesos de teclados que podemos usar. Por ejemplo la `f` para poner en +pantalla completa. + + +## Ahora quiero ver videos online! + +Para que podamos disfrutar de cualquier video online desde `mpv`, primero +necesitamos instalar `youtube-dl`. En muchas distros, `youtube-dl` es una +dependencia (obligatoria u opcional) de `mpv` y es probable que ya lo tengas +instalado. Podemos disfrutar cualquier video de la web ejecutando `mpv` seguido +de la url del mismo, por ejemplo: + +``` +mpv https://www.youtube.com/watch?v=WhWc3b3KhnY +``` + +Alternativamente, podemos abrir `mpv` desde nuestro menú de aplicaciones +y _arrastrar_ la url del video a la ventana del reproductor. + +Es probable que estos pasos no nos funcionen a la primera. +Nuestros (ene)amigos de las plataformas no les gusta mucho que podamos ver videos +sin pasar por sus páginas web, es por eso que cambiar algunas cositas de vez en +cuando para que nuestro `youtube-dl` deje de funcionar correctamente. +Obvio que les desarrolladores de `youtube-dl` son más rápides y le encuentran +la vuelta, pero esto hace necesario que tengamos instalada una versión +moderadamente nueva de `youtube-dl`. + +En los sistemas basados en Arch es moneda corriente tener las últimas versiones +de los programas, pero el panorama es distinto en Debian y Ubuntu, donde se +suele priorizar la estabilidad del sistema por encima de la novedad de los +paquetes. + +### Actualizar youtube-dl en Debian 10 + +Si estás corriendo Debian stable sabrás que los paquetes que usas no son de lo +más nuevos, pero Debian nos suele ofrecer un conjunto de repositorios que nos +permiten acceder fácilmente a paquetes casi recién sacados del horno sin +comprometer nuestro sistema: los `backports`. + +Para poder acceder a ellos necesitamos agregar los `backports` a nuestra lista +de repositorios. Vamos a editar el archivo `/etc/apt/sources.list` y agregar +las siguiente línea al final: + +``` +deb http://deb.debian.org/debian buster-backports main +``` + +Luego vamos a actualizar la lista de paquetes: + +``` +sudo apt update +``` + +Y ahora podemos instalar una de las últimas versiones de `youtube-dl`, +especificandole a `apt` que queremos descargar la versión en los backports: + +``` +sudo apt install -t buster-backports youtube-dl +``` + +Para más detalles, podés leer la [documentación +oficial](https://backports.debian.org/Instructions/). + +### Actualizar youtube-dl en Ubuntu + +A diferencia de Debian, Ubuntu no nos ofrece un repositorio con una versión más +nueva de `youtube-dl`, así que vamos a tener que instalarlo de forma manual. + +Lo primero que vamos a tener que hacer es desinstalar la versión de +`youtube-dl` que nos instaló `mpv`. Para eso vamos a correr: + +``` +sudo apt remove youtube-dl +``` + +Luego vamos a proceder a descargar el último release de `youtube-dl` +e instalarlo de forma manual en `/usr/local/bin`. Todo este proceso lo podemos +ejecutar en una sola línea, solo tenemos que copiar y pegar: + +``` +sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl +``` + +Finalmente le damos permisos para poder ejecutarlo: + +``` +sudo chmod a+rx /usr/local/bin/youtube-dl +``` + +Y ya lo tenemos instalado. +Si querés ver otras formas de instalarlo, podés leer la [documentación de +youtube-dl](https://ytdl-org.github.io/youtube-dl/download.html). + + +## Mi maquina no se banca un video en 1080p + +Como comenté antes, estas funcionalidades de `mpv` nos permiten disfrutar de +videos en hardware no muy poderoso, pero por defecto `mpv` descarga el video en +la más alta resolución que encuentra arruinándonos todos los planes. +Obviamente podemos cambiar esto, diciéndole a `youtube-dl` que descargue una +versión del video en menor resolución. +Por ejemplo, si queremos reproducir el video en no más de 480p, podemos +ejecutar `mpv` con la siguiente opción: + +``` +mpv --ytdl-format="bestvideo[height<=480]+bestaudio" https://www.youtube.com/watch?v=WhWc3b3KhnY +``` + +Como es cantando que no nos vamos a acordar de escribir todo eso cada vez que +queremos reproducir un video, podemos agregarlo al archivo de configuración de +`mpv` y nos olvidamos. Además, si hacemos esto vamos a poder ver en 480p +aquellos videos que los reproduzcamos _arrastrando_ la url a la ventana de +`mpv`. +Para eso vamos a editar el archivo `~/.config/mpv/config`. Si no existe, vamos +a crearlo y luego agregarle la siguiente línea: + +``` +ytdl-format="bestvideo[height<=480]+bestaudio" +``` + +Una vez que guardemos el archivo, vamos a poder disfrutar cualquier video de la +web en nuestro hardware para nada obsoleto. + + +## Buscar videos de YouTube desde la terminal + +De yapa les dejo el enlace a [`ytfzf`](https://github.com/pystardust/ytfzf), un +script que nos permite buscar videos en YouTube desde la terminal +y reproducirlos desde `mpv` sin necesidad de abrir el navegador. + +En Arch y derivadas podemos instalarlo desde AUR: + +``` +yay -S ytfzf +``` + +Mientras que en Debian y Ubuntu lo vamos a descargar a mano e instalar algunas +dependencias: + +``` +sudo apt install jq fzf +curl -sL "https://raw.githubusercontent.com/pystardust/ytfzf/master/ytfzf" | sudo tee /usr/bin/ytfzf >/dev/null && sudo chmod 755 /usr/bin/ytfzf +``` + + +## Comentarios + +Si encontraste algún error, creés que se puede mejorar algo del texto o que +vale la pena agregar algo, no dudes en escribirme a santisoler arroba +texto-plano.xyz -- cgit v1.2.3