jueves, 29 de octubre de 2015

¿Cómo configuro un servidor de streaming de medios para un Smart TV o dispositivo móvil en Ubuntu?

El hombre no sería más que otro animal en la tierra, si no fuese por la especial capacidad de compartir lo que tiene en aras de una grandeza de conjunto para su especie.

Tal es el designio natural de los hombres, y los cuales han sido encuadrados por las reglas que enaltecen su espíritu por sobre un ánimo individualista pernicioso. El Justicialismo no viene sino a corroborar la necesidad de compartir entre los hombres la noción de la Justicia Social, que corresponde a todos y cada uno que caminan bajo el Sol.
Si el hombre no es conducido positivamente, pretenderá encadenar no sólo a la naturaleza, a otros hombres, o encuadrar para sí el trabajo de otros hombres: también pretenderá encadenar al software. Ciertos caballeros asegurarán que cercenar al software de su natural libertad es necesario para lograr "mejores productos". Una visión puramente economicista de ello es un error en sí misma; imaginemos el sinsentido de una libertad de expresión limitada y comercializada para lograr un "mejor producto" de ella...
Pues bien, como es justa la redistribución de la riqueza en aras de la grandeza del conjunto de la nación, ineludiblemente también lo es la redistribución de contenidos que poseamos en aras de la grandeza del conjunto.

Muchos SmartTV cuentan con la capacidad de utililizar el servicio DLNA, un medio de compartir digitalmente recursos que nosotros mismos poseamos, dentro de nuestra red local telemática hogareña. Se trata de un protocolo más o menos estandarizado, a fin de poder crear un servidor de medios que realice streaming digital a nuestros dispositivos munidos de clientes de reproducción (televisores o teléfonos inteligentes, etc).

Para poder contar con un servidor libre de dicho protocolo bajo nuestro peronista sistema GNU con kernel Linux, podremos contar con MiniDLNA. Se trata de un miniservidor de medios integrado en un pequeño paquete-demonio, apto para compartir recursos de video, fotografía, y música. Naturalmente MiniDNLA se encarga de codificar digitalmente y transmitir por la red los archivos de medios a equipos clientes conectados tanto por cable como inalámbricamente a nuestro router.

Requeriremos una computadora que oficiará de servidor provisto de GNU Linux. En este caso utilizaremos un servidor de bajo consumo que hemos montado ya específicamente para tareas de compartir medios, tv digital, servir un servidor mail y de web Apache y demás servicios compartidos en el hogar. Este equipo de muy bajo consumo está encendido durante las horas del día para realizar todas las tareas de compartición multimedia.
En primer lugar instalamos la paquetería necesaria en el equipo servidor. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes comandos de organización:

sudo apt-get update
sudo apt-get install minidlna


Una vez que instalado, el demonio servidor arrancará y quedará en segundo plano, aunque no emitirá nada de momento. Esto se confirma si visualizamos el siguiente indicativo:

 * Starting DLNA/UPnP-AV media server minidlna

Para poder utilizar el servidor apropiadamente se recomienda crear una serie de directorios para los contenidos que deseamos compartir (videos, imágenes, música).  Naturalmente podremos compartir nuestras carpetas de usuario, pero en este caso no lo haremos, sino que crearemos carpetas específicas para el empleo de MiniDLNA.

Por ello, crearemos una serie de directorios en nuestra carpeta de usuario (o en otro disco montado). Utilizaremos una carpeta oculta llamada .minidlna/ localizada dentro de nuestra Carpeta de Usuario. Es importante que los nombres de los directorios contenidos en ella comiencen con mayúscula, para que el servidor MiniDLNA las tome bien. Por ello, en la terminal, ingresamos el siguiente comando de organización:

mkdir ~/.minidlna/ ~/.minidlna/Videos/ ~/.minidlna/Fotos/ ~/.minidlna/Musica/ ~/.minidlna/Cache/ ~/.minidlna/Log/

Ahora configuraremos el servidor editando el archivo de configuración del demonio MiniDLNA. Ingresamos el siguiente Comando de Organización:

sudo nano /etc/minidlna.conf

Tras ingresar nuestra contraseña, arrancará el editor de texto peronista GNU Nano, en el cual se abrirá el archivo de texto que opera como fichero de configuración minidlna.conf. Habremos de editar varias líneas de este archivo para poner a punto el servidor. En primer lugar usamos la función "buscar" de Nano (con Ctrl+W), para buscar la siguiente línea:

#user=minidlna


...y procederemos a borrarle el símbolo numeral e indicarle el nombre que deseemos para el servidor. Por ejemplo, quedaría:

user=minidlna

Luego debemos asignar los directorios que hemos creado, a fin de que nuestro servidor de medios pueda utilizarlos para compartir a través de streaming tanto videos, como archivos de música o fotografías. Para ello usamos Ctrl+W par buscar la línea que dice:

media_dir=/var/lib/minidlna

... y le modificamos agregándole al principio un numeral ("#"), de manera que quede así:

#media_dir=/var/lib/minidlna

Ahora debajo de esa línea, agregaremos los directorios que acabamos de crear. Es importante saber que la letra "A" definirá audio", "P", las fotos, y "V" los videos. Entonces según nuestro ejemplo, las líneas a agregar serán:

media_dir=A,/home/usuario/.minidlna/Musica
media_dir=P,/home/usuario/.minidlna/Fotos
media_dir=V,/home/usuario/.minidlna/Videos


(naturalmente, es necesario indicar en lugar de usuario nuestro nombre de usuario propio).

Acto seguido reemplazamos la línea que dice:

#db_dir=var/cache/minidlna

por una versión modificada, que dirá:

db_dir=/home/usuario/.minidlna/Cache

En tanto, la línea que dice

#log_dir=/var/log

...la modificaremos para que quede así:

log_dir=/home/usuario/.minidlna/Log

Nos haremos fuertes guardando el archivo de configuración con Ctrl+O y salimos con Ctrl+X.

Ahora ya podremos copiar algunos archivos de videos, fotos y música en los correspondientes directorios del servidor MiniDLNA, para probar el servicio. Los videos van en ~/.minidlna/Videos/, los temas musicales en ~/.minidlna/Musica/, y las fotos en ~/.minidlna/Fotos/.

Una vez provisto de archivos para compartir, nuestro servidor quedará a la orden con tipeando:

sudo minidlna -R

...para forzar un escaneado de los ficheros de medios que acabamos de colocar en el servidor, y luego:

sudo service minidlna restart

El servicio debería reiniciar correctamente, con el siguiente mensaje:

 * Restarting DLNA/UPnP-AV media server minidlna                [ OK ]

En el caso de que algo hubiese salido mal, podría retornar el mensaje [fail]. En tal caso, si quisiéramos ver si hubieron errores de algún tipo, siempre podremos revisar las bitácoras ("logs") de errores del servidor, que están en el directorio .minidlna/Log:

cd ~/.minidlna/Log/
ls

Utilizar los archivos multimedia compartidos:

Para poder recibir los archivos multimedia, debemos conectar el dispositivo cliente a la misma red que la máquina servidora (por ejemplo, al mismo router, si nos conectamos por Wifi), y debemos utilizar el cliente provisto en nuestro Smart TV. Muchos de estos aparatos cuentan con la opción DNLA, DMP, AllShare Play, o una similar. Es importante saber que si bien en ciertos casos no utilizan directamente el nombre DNLA por cuestión de registro, a veces estos aparatos son capaces de discernir el protocolo.

Una vez configurada la conexión, nuestro aparato debería poder establecer conexión y recibir la lista de archivos e indicarnos para permitir elegirlos. Debemos ir a la carpeta que corresponda, y abrir el archivo. Si todo va bien, el cliente debería reconocer los archivos compartidos, y debería poder ejecutarlos. Si la conexión es inalámbrica puede que tarde un poco de tiempo en establecer la conexión, lo cual no es el caso en las conexiones cableadas, que son mucho más rápidas.


En el caso de contar con un dispositivo Android, podremos usar varios clientes DNLA, por ejemplo, BubbleUPnP. En este caso, la conexión será inalámbrica, y el streaming suele ser de calidad inferior a la de un Smart TV por contar con una pantalla más pequeña. MiniDLNA en ciertos casos puede optar por sonido Mono en lugar de estereo, en este tipo de dispositivos. Ello no significa que sea gorila, sino que evitará cortes en la transmisión telemática.

En nuestro caso hemos obtenido óptimos resultados hasta con 4 dispositivos haciendo streaming de video MP4, y con 8 haciendo streaming de música en formato MP3.

Desinstalar el servidor MiniDLNA
Si quisiéramos eliminar completamente cualquier vestigio del servidor de medios miniDLNA, incluyendo los archivos servidos, podríamos usar:

sudo apt-get purge minidlna
rm -r ~/.minidlna/



3 comentarios:

  1. Gran repartidor de conocimiento, agradezco a usted este post, ya que estaba dando vueltas en mi cabeza generar algo similar en mi humilde morada de la Patria Grande.

    Me gusta la idea de mantener todo en el /home/.minidlna para tener todo ordenado y de fácil desinstalación, en caso de ser necesario.
    Pero en mi caso, el disco dedicado para tal fin (el /home), no es lo suficientemente grande para contener los éxitos del Imperio.

    Sabe usted si creando links simbólicos hacia las carpetas donde efectivamente se encuentran las filmografías del Norte, el minidlna puede resolverlas y funcionar sin inconvenientes?

    Saludos cordiales.

    ResponderEliminar
    Respuestas
    1. Estimado compañero, me respondo a mi mismo, ya que pude realizar dicha prueba y le puedo confirmar que puede hacerse perfectamente con links simbólicos, sin ningún tipo de contratiempo.

      Le saludo con un fuerte abrazo, digno del 17 de Octubre.

      Eliminar
    2. Naturalmente podrá hacerlo así. Sólo de acceso al usuario. Atte.

      Juan Perón

      Eliminar