Lanzamiento de MAME 0.196

La versión 0.196 del emulador MAME ya está disponible para descargar desde la página oficial de mamedev. Los links de descarga de la página oficial incluyen sólo los ejecutables para Windows mientras que para Linux tienes que descargar el código fuente y compilar manualmente, lo que me lleva a considerar escribir un post explicando cómo compilar el MAME en Linux, ya lo he hecho antes y el proceso es relativamente sencillo pero un post al respecto podría ser de ayuda para otros usuarios.

Advertisements

En corto No. 9 – Filtros en FFmpeg

Acabo de pasar la última hora tratando de entender por qué mi script de FFmpeg no funcionaba para aplicar dos o más filtros simultáneamente. Resulta que estaba usando mal la línea de comandos al usar algo como:

monstruosoft@debian:~$ ffmpeg -i mi_video.mp4 -vf crop=640:480:115:225 -vf setdar=16/9 salida.mp4

La segunda versión del argumento -vf estaba sobreescribiendo el filtro definido anteriormente. Los filtros deben especificarse en una sola aparición del argumento -vf separados por comas. Así que la versión correcta del comando anterior es la siguiente:

monstruosoft@debian:~$ ffmpeg -i mi_video.mp4 -vf crop=640:480:115:225,setdar=16/9 salida.mp4

Hay que tener esto en mente cuando quieras aplicar múltiples filtros con FFmpeg, de lo contrario, este es el tipo de cosas sencillas que suelen hacerte perder horas 😛 .

 

Compilar waifu2x en Debian Stretch

[Advertencia:] Las instrucciones en este post no funcionan para tarjetas de video NVIDIA. Si tienes una tarjeta de video AMD, sigue leyendo.


Si la versión web de waifu2x no es suficiente para ti, puedes intentar compilar tu propia versión. En este post intentaré compilar uno de los forks de waifu2x para tarjetas de video AMD.

El repositorio oficial de waifu2x incluye código que está diseñado para funcionar usando la tecnología CUDA de NVIDIA, lo cual está indicado como un requisito, por lo que no puedo siquiera intentar compilar el código ya que tengo una vieja tarjeta de video AMD. Así que en lugar de usar el código original opté por uno de los forks que ofrecen soporte para tarjetas AMD, en particular el fork waifu2x-converter-cpp. Si eres usuario de Windows puedes bajar ejecutables precompilados desde la sección releases o puedes bajar waifu2x-caffe. En Linux, sin embargo, tenemos que compilar manualmente el código.

Read More

Ripear un DVD con FFmpeg usando named pipes, parte 2

En el post anterior usamos named pipes para ripear un DVD pero tal vez te estés preguntando por qué es necesario abrir dos ventanas de terminal. En realidad esa es sólo una forma de hacerlo. Verás, la consola de Linux es una caja de sorpresas. Si quieres ripear un DVD con el método descrito en los posts anteriores pero usando una sola ventana de terminal, puedes hacerlo de la siguiente manera.

Read More

Ripear un DVD con FFmpeg usando named pipes

En el post anterior escribí las instrucciones para ripear un DVD usando FFmpeg y este es el ejemplo perfecto para hablar sobre las named pipes de Linux. Las named pipes nos permiten enviar datos de una aplicación a otra. Muy probablemente has visto antes el carácter de pipe en Linux (‘|’) que cumple el mimso objetivo pero que en algunos casos puede ser difícil de usar si una de las aplicaciones no soporta entrada desde stdin, por ejemplo. Las named pipes pueden facilitar enviar datos de una aplicación a otra gracias a que las puedes usar simplemente como un archivo más, es decir, envías la salida de un programa a un archivo de tipo pipe y después usas ese archivo como la entrada para el otro programa.

Read More

Ripear un DVD con FFmpeg

Cuando se trata de ripear un DVD con Linux, la forma más sencilla es tal vez usando Handbrake, que se puede instalar desde el gestor de paquetes. Entonces, ¿por qué querrías ripear un DVD usando FFmpeg? Bueno, en realidad tal vez no haya ninguna razón; si Handbrake funciona bien, ¡úsalo!. En este caso en particular, encontré una imagen de DVD que tenía problemas para ripear con Handbrake -sigue leyendo para descubrir cuál era el problema- así que decidí hacerlo a la antigua y usar FFmpeg.

Read More

En corto No. 7 – Librería Java RXTX en Debian Stretch

Después de actualizar a Debian Stretch descubrí que mis programas Java que usaban la librería RXTX ya no detectaban ningún puerto serial. En una más de esas ocasiones en que algo que funcionaba antes en Debian deja de funcionar cuando actualizas, tuve problemas tratando de averiguar cual era la causa. La mayor parte del tiempo, es difícil encontrar una solución que no sea críptica o que no requiera conocimientos avanzados de Linux (algo que un usuario normal nunca podría hacer sin ayuda de Internet) o simplemente la solución es difícil de encontrar si no sabes los términos correctos para usar en una búsqueda en Google.

Por suerte, en esta ocasión, la solución fue relativamente simple aunque no resulta obvia al inicio a pesar de que ahora que la encontré veo que tiene sentido. Para que la librería RXTX detecte correctamente los puertos seriales de la PC, el usuario debe tener permisos para acceder a dichos puertos. Para agregar los permisos correspondientes debes usar la ventana de Usuarios y Grupos y habilitar los permisos de usuario para Usar modems. Como alternativa, también puedes agregar al usuario al grupo dialout.

Después de hacer esto, la librería RXTX debería encontrar los puertos sin problemas.

Instalar VirtualBox en Debian Stretch

VirtualBox ya no está disponible en el repositorio estable de Debian Stretch debido a que no cumple con las políticas de Debian, sin embargo aún es posible instalarlo desde el repositorio de backports o bien desde el propio repositorio de virtualbox.org. Para agregar el repositorio de virtualbox.org a la lista de repositorios de Debian debemos agregar la siguiente línea al archivo /etc/apt/sources.list.d o bien agregarlo a la lista de repositorios del gestor de paquetes:

deb http://download.virtualbox.org/virtualbox/debian stretch contrib

A continuación descarga y registra el archivo de firma digital que permitirá que apt-get use el repositorio de virtualbox.org:

monstruosoft@debian:~$ wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
--2017-12-15 19:39:16--  https://www.virtualbox.org/download/oracle_vbox_2016.asc
Resolving www.virtualbox.org (www.virtualbox.org)... 137.254.60.32
Connecting to www.virtualbox.org (www.virtualbox.org)|137.254.60.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3157 (3.1K) [text/plain]
Saving to: ‘oracle_vbox_2016.asc’

oracle_vbox_2016.as 100%[===================>]   3.08K  18.6KB/s    in 0.2s    

2017-12-15 19:39:19 (18.6 KB/s) - ‘oracle_vbox_2016.asc’ saved [3157/3157]

monstruosoft@debian:~$ sudo apt-key add oracle_vbox_2016.asc 
[sudo] password for monstruosoft: 
OK

Ahora podemos actualizar la lista de paquetes e instalar VirtualBox desde el gestor de paquetes o usando apt-get como se muestra a continuación:

monstruosoft@debian:~$ sudo apt-get update
Get:1 http://download.virtualbox.org/virtualbox/debian stretch InRelease [7,782 B]
Ign:2 http://ftp.us.debian.org/debian stretch InRelease                        
Hit:3 http://security.debian.org/debian-security stretch/updates InRelease     
Hit:4 http://ftp.us.debian.org/debian stretch-updates InRelease                
Get:5 http://download.virtualbox.org/virtualbox/debian stretch/contrib i386 Packages [1,722 B]
Hit:6 http://ftp.us.debian.org/debian stretch Release                
Get:8 http://download.virtualbox.org/virtualbox/debian stretch/contrib amd64 Packages [1,722 B]
Fetched 11.2 kB in 4s (2,666 B/s)   
Reading package lists... Done
monstruosoft@debian:~$ sudo apt-get install virtualbox-5.2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libqt5opengl5 libqt5printsupport5 linux-compiler-gcc-6-x86
  linux-headers-4.9.0-4-amd64 linux-headers-4.9.0-4-common linux-headers-amd64
  linux-kbuild-4.9
Recommended packages:
  linux-image
The following NEW packages will be installed:
  libqt5opengl5 libqt5printsupport5 linux-compiler-gcc-6-x86
  linux-headers-4.9.0-4-amd64 linux-headers-4.9.0-4-common linux-headers-amd64
  linux-kbuild-4.9 virtualbox-5.2
0 upgraded, 8 newly installed, 0 to remove and 52 not upgraded.
Need to get 79.1 MB of archives.
After this operation, 222 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
...

Montar una carpeta compartida de Windows

Si tienes una carpeta compartida en Windows y la quieres montar en Debian Stretch, la forma más fácil es instalar el paquete cifs-utils desde el gestor de paquetes. cifs-utils contiene las utilidades necesarias para montar facilmente recursos compartidos en una red. Una vez instalado, puedes montar una carpeta compartida de Windows usando el comando mount. Por ejemplo, suponiendo que 10.128.0.69 es la IP de la PC con Windows, y Documentos es el nombre de la carpeta compartida en Windows, podemos montar la carpeta en Linux usando el siguiente comando:

monstruosoft@debian:~$ sudo mount -t cifs "//10.128.0.69/Documentos" ~/destino/ -o username="nombre-de-usuario-de-windows"
Password for nombre-de-usuario-de-windows@//10.128.0.69/Documentos:  ******

En Debian, solamente se puede usar el comando mount como root o sudo, así que es probable que tengas que especificar tu id de usuario si quieres tener permisos de escritura en la carpeta compartida, por ejemplo:

monstruosoft@debian:~$ id
uid=1000(monstruosoft) gid=1000(monstruosoft) groups=1000(monstruosoft),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),114(lpadmin),118(scanner)
monstruosoft@debian:~$ sudo mount -t cifs "//10.128.0.69/Documentos" ~/destino/ -o username="nombre-de-usuario-de-windows",uid=1000,gid=1000
Password for nombre-de-usuario-de-windows@//10.128.0.69/Documentos:  ******

Para desmontar la carpeta compartida simplemente usamos el comando umount:

monstruosoft@debian:~$ sudo umount ~/destino

Instalar Allegro 4 y Allegro 5 en Debian Stretch

En posts anteriores explicaba la forma de compilar Allegro en Debian Jessie debido a que las versiones de Allegro en el repositorio estable de Debian Jessie eran considerablemente viejas pero ese ya no es el caso en Debian Stretch que cuenta en el repositorio estable con la versión 4.4 y 5.2 de Allegro por lo que podemos simplemente instalar los paquetes de Allegro, liballegro4-dev y liballegro5-dev, desde el gestor de paquetes. También puedes instalar desde el gestor de paquetes otros paquetes relacionados con Allegro como por ejemplo libloadpng4-dev, libjpgalleg4-dev, liballeggl4-dev, y los addons de Allegro 5, liballegro-*-dev.

Por supuesto, si quieres usar la versión más reciente de Allegro 5 aún puedes compilarlo manualmente usando las instrucciones publicadas anteriormente en el blog.