Feeds:
Entradas
Comentarios

Posts Tagged ‘MKV en PS3’

Hace ya bastante tiempo que utilizo el servidor UPnP MediaTomb para reproducir contenido multimedia de mi ordenador desde la PS3. Sin embargo, ayer me percaté de que, desde que renové la anotación de metadatos de mi colección de música, la base de datos de MediaTomb se había quedado inconsistente. Por defecto, MediaTomb utiliza como backend SQLite, y almacena su base de datos en “/var/lib/mediatomb/mediatomb.db“. Al borrar dicha base de datos y reiniciar el servicio, descubrí que, por algún motivo, el almacenamiento con SQLite falla para determinados metadatos con caracteres rarunos (algunos UTF-8), aún haciendo explícito el set de caracteres en la configuración con la directiva “metadata-charset“.

Así pues, me dispuse a bucear por la configuración del programa (en “/etc/mediatomb/config.xml“) para cambiar el backend a MySQL, y descubrí que son muchas las nuevas opciones que incluye MediaTomb y que no conocía. Pero lo primero es lo primero, así que vamos a ver cómo cambiar el backend a MySQL. Lo primero, obviamente, será instalar el servidor, si es que no lo teníais ya instalado. Durante la instalación debéis configurar la contraseña del usuario root para el sistema gestor de bases de datos.

ramiro@cormanthor:~$ sudo apt-get install mysql-server

Para gestionar el servidor, instalaremos también un par de utilidades que nos facilitarán la vida (aunque siempre podemos tirar de línea de comandos, como los machotes :-P).

ramiro@cormanthor:~$ sudo apt-get install mysql-admin mysql-query-browser

Aunque no es imprescindible, sería buena idea continuar creando un usuario exclusivo para MediaTomb. En la sección User Administration de  MySQL Administrator podréis crear el nuevo usuario, así como otorgarle todos los privilegios sobre su propio esquema (que también debéis crear, y que yo he llamado “mediatomb”).

Privilegios del usuario mediatomb

Privilegios del usuario mediatomb

Ahora, en el fichero de configuración de MediaTomb, debemos deshabilitar el almacenamiento en SQLite…

<sqlite3 enabled=”no”>
<database-file>mediatomb.db</database-file>
</sqlite3>

… y habilitar el almacenamiento en MySQL.

<mysql enabled=”yes”>
<host>localhost</host>
<username>mediatomb</username>
<password>aquí_tu_contraseña</password>
<database>mediatomb</database>
</mysql>

Tras reiniciar el servicio, podemos acceder a la configuración web de MediaTomb como de costumbre, y añadir los directorios a vigilar. Yo recomiendo utilizar la opción “inotify“, y marcar el escaneo completo y recursivo. Ahora ya no habrá problemas con los caracteres rarunos. Además, y dado el tamaño de la base de datos generada, parece que utilizar SQLite no resultaba demasiado adecuado: la tabla “mt_cds_object” alcanza un tamaño de unos 34 Mb y 100K filas para música y vídeos, y crece hasta más de 50 Mb y 150K filas añadiendo las fotografías. Esos 12-17 Mb de índices se notan, pues ahora la información de la base de datos se obtiene de forma instantánea, mientras que antes tardaba un poco. Para colecciones de vídeos y/o música grandes, esta opción se antoja más adecuada.

MediaTomb en MySQL

MediaTomb en MySQL

Pero hay más opciones interesantes en MediaTomb que no están habilitadas por defecto. Una de ellas es la transcodificación al vuelo de vídeo, para poder ver en streaming desde la PS3 vídeos que, en principio, no utilizan un codec compatible con ésta, como sería el caso del contenedor Matroska. Para hacer esto mismo existe un servidor escrito en Java llamado PS3 Media Server, pero que tiene el inconveniente de tener que ser arrancado con la PS3 encendida. Para habilitar la transcodificación en MediaTomb, debemos especificarlo en la siguiente línea de la configuración:

<transcoding enabled=”yes”>

Si bien la configuración por defecto para los perfiles “oggflac2raw” y “vlcmpeg” así como para los mappings existentes, nos permiten convertir la mayoría de los ficheros de vídeo y audio no compatibles, es interesante ampliar esta información. Existe una guía muy útil para añadir soporte a mayor número de formatos en esta página, donde además nos propone un script de conversión de vídeo alternativo, utilizando como base ffmpeg. Funciona a las mil maravillas, y nos permite ver vídeos MKV en la PS3; aunque, eso sí, no esperéis poder ver una película a 1080p a través de una red inalámbrica, pues el ancho de banda simplemente no lo permite.

Otra opción interesante es la generación automática de thumbnails para los vídeos, para lo cual debemos instalar el paquete ffmpegthumbnailer

ramiro@cormanthor:~$ sudo apt-get install ffmpegthumbnailer

… y activar la opción en el fichero de configuración.

<ffmpegthumbnailer enabled=”yes”>
<thumbnail-size>128</thumbnail-size>
<seek-percentage>5</seek-percentage>
<filmstrip-overlay>yes</filmstrip-overlay>
<workaround-bugs>no</workaround-bugs>
</ffmpegthumbnailer>

Otra opción interesante (aunque para mí no demasiado) es el soporte para la visualización de vídeos de YouTube o los tráilers de Apple a través de la conexión a Internet del equipo servidor. En el enlace que he puesto anteriormente explican cómo habilitarlo, por si a alguien le interesa.

Por cierto, y en el caso de que alguien siga teniendo problemas con los metadatos a pesar de utilizar MySQL, o si, por cualquier motivo no quiere dejar de utilizar SQLite; la mejor manera de evitar el problema es desactivar la visualización de metadatos y la organización del layout virtual, cambiando la línea que reza…

<virtual-layout type=”builtin”>

… por lo siguiente:

<virtual-layout type=”disabled”>

De esta forma, sólo se podrá acceder al contenido a través del directorio “PC Directory” de MediaTomb. También puede modificar el script de análisis de metadatos (“/usr/share/mediatomb/js/import.js“) o escribirse uno personalizado, si bien esto ya es una tarea más compleja.

A la vista de la diferencia de rendimiento entre SQLite y MySQL, incluso para bases de datos pequeñas, no estaría de más que añadieran soporte para backend MySQL a Rhythmbox. De hecho, su contrapartida en KDE, AmaroK, dispone de soporte para sistemas gestores de bases de datos relacionales (MySQL y PostgreSQL) desde hace un tiempo.

Read Full Post »

A %d blogueros les gusta esto: