Sunday, January 23, 2011

Linux como servidor DLNA

Hace algunos meses compré un televisor Samsung LED UE37C6000. El televisor es una joya, la imágen excelente, la nitidez impresionante, es super delgado y liviano (muy apropiado para paredes de pladur) y el sonido, mejorable aunque bueno para propósitos generales.

Como todo televisor "moderno" tiene la opción de DLNA, conectores USB, HDMI, etc, etc, etc.

La primera prueba "importante" fue reproducir series y películas desde un penn drive. Bueno, eso es otra cosa, se ve impresionante y eso que están comprimidas en XviD.

Me faltaba probar la conexión a la red y la reproducción de contenido utilizando DLNA. Este televisor solo viene con un conector rj45, así que con un cable bastante largo lo conecté a un router linksys en la habitación contigua.

El televisor viene configurado de fábrica como cliente DHCP, así que se conectó sin problemas a la red. Comenzaba entonces mi aventura para conseguir un servidor DLNA para Linux.

El primero que utilicé fué mediatomb. Lo instalé en mandriva 2009.1 sin problemas (urpmi). Después de leer en varios foros, configuré el mediatomb. Es necesario agregar algunos encabezados especiales para que los videos puedan reproducirse en algunos dispositivos (como el mío). Aquí tengo un enlace si a alguien le interesa.

Que el media player el televisor viese los archivos compratidos por DLNA ya me parecía un milagro tecnológico pero cuando pude reproducir las películas fue el "non plus ultra".

Como todo en la vida, siempre hay un "plus ultra" y cuando no pude ver los subtítulos de las películas (archivos srt) me di cuenta de eso.

Volví a leer y a leer los foros, proponían una solución con mediatomb que no me gustó, consistía en hacer un "transcoding" del video adjuntándole los subtítulos al stream que se le manda al televisor, de esta manera, el cliente DLNA (el televisor) obtendría un stream con todo mezclado.

Esa solución no me gustó nada porque al hacer transcoding, el cpu estará trabajando casi al 100% todo el tiempo de reproducción lo que no es eficiente y podría afectarme en la fluidez del stream de video.

Seguí investigando y encontré MiniDLNA. Este es un pequeño servidor DLNA, muy simple, que las personas de los foros reportaban que funcionaba muy bien casi casi "out of the box". Desafortunadamente, mandriva 2009.1 no empaqueta MiniDLNA por lo que tuve que bajarlo de aquí. El programa viene en formato binario compilado estáticamente, con lo que solo necesité descomprimirlo, editar el archivo de configuración y ejecutarlo.

Eureka!!!, el MiniDLNA funciona correctamente, el televisor es capaz de reproducir una película con los subtítulos en un archivo aparte (archivo srt).

Coloco un resúmen de las cosas que se pueden hacer con MiniDLNA:

  • Reproducción de subtítulos contenidos en un archivo separado.
  • Funciones de pausa, stop, avance y retroceso rápido con las teclas de "cursor" del control remoto (las negras) no con las teclas de la sección de reproducción (las blancas).

A continuación coloco mi archivo minidlna.conf como ejemplo


port=8200

network_interface=eth0

media_dir=V,/peliculas

friendly_name=Linux DLNA Server

album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

inotify=yes

enable_tivo=no

notify_interval=900

serial=12345678

model_number=1