DLNA (Digital Living Network Alliance): https://es.wikipedia.org/wiki/Digital_Living_Network_Alliance
DLNA (Digital Living Network Alliance – Alianza para el estilo de vida digital), es una asociación de fabricantes de electrónica e informática sin ánimo de lucro fundada por Sony en junio de 2003. Su objetivo es definir directrices de interoperabilidad que permitan compartir medios digitales entre dispositivos de consumo como ordenadores, impresoras, cámaras, teléfonos móviles y otros dispositivos multimedia. Estas directrices toman como base estándares públicos ya existentes, pero sólo pueden obtenerse previo pago. DLNA especifica la forma de utilizar estos estándares con el fin de que los distintos dispositivos que pueda haber dentro de una misma red se interconecten entre ellos para compartir sus contenidos.
Utiliza Universal Plug and Play (UPnP) para la gestión, descubrimiento y control multimedia. UPnP define los tipos de dispositivos que DLNA soporta (“server”, “renderer”, “controller”) y los mecanismos para acceder a los medios a través de la red. Las directrices DLNA suponen una capa de restricciones acerca de los tipos de formatos de fichero multimedia, codificaciones y resoluciones que los dispositivos deben soportar. La ventaja que ofrece es una fácil configuración y gran versatilidad. Este sistema puede funcionar tanto en redes Wi-Fi como Ethernet. Las directrices de interoperabilidad DLNA permiten a los fabricantes participar en el creciente mercado de los dispositivos en red y se dividen en los siguientes componentes tecnológicos clave.
ReadyMedia (MiniDLNA): https://sourceforge.net/projects/minidlna/
ReadyMedia, anteriormente llamado MiniDLNA es un servidor DLNA ligero y simple de configurar. El demonio MiniDLNA sirve archivos multimedia (música, imágenes y vídeo) a clientes en una red. Los clientes pueden ser computadoras, smartphones, televisiones, programas de reproducción de música o cualquier otro dispositivo compatible con DLNA. Esto permite tener accesible desde cualquier punto de la casa u oficina, todos los ficheros multimedia como si de una memoria USB se tratara.
Fichero de configuración: /etc/minidlna.conf (Solo se muestran las opciones más interesantes.)
# Especifica una tarjeta de red si no se quiere usar 0.0.0.0. network_interface=eth2 # Puerto predeterminado. port=8200 # Directorio que se quiere compartir y de qué manera: Música, imágenes o Vídeo. # Facilita que un dispositivo que solo pueda reproducir música, encuentre la carpeta de audio ignorando las otras. # media_dir=A,/media/musica # media_dir=P,/media/fotos # media_dir=V,/media/videos # También es posible seleccionar una sola carpeta sin especificar el tipo de contenido. media_dir=/media # Directorio para la base de datos de archivos y caché (art_cache/ y files.db). db_dir=/var/lib/minidlna # Directorio donde se guardarán los logs de MiniDLNA log_dir=/var/log # Indicar que el directorio /media será el directorio raíz. Para nuestro ejemplo, si no se usa esta opción, # se mostrarán también unos directorios vacíos denominados "music", "picture" y "video". root_container=B,/media # Nombre con el que se anunciará el servidor. friendly_name=Servidor2 DLNA Casa. # Indica el modelo y serual del dispositivo a los clientes. serial=12345678 model_number=1 # Ficheros que se buscarán si se quiere mostrar alguna portada de álbum. 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 # Permite el uso de inotify para que minidlna actualice su base de datos de ficheros cuando se hagan cambios en el / los directorios que son servidos. No soporta "overlayfs". inotify=yes strict_dlna=no
Incrementar Inotify max_user_watches es siempre recomendable para evitar el típico error.
WARNING: Inotify max_user_watches [16384] is low or close to the number of used watches [151] and I do not have permission to increase this limit. Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.
echo fs.inotify.max_user_watches=594288 | sudo tee -a /etc/sysctl.conf sysctl -p
Permisos. Depende de cómo y en qué distro se instale y ejecute miniDLNA se usará un nombre de usuario diferente para lanzar el demonio, pudiendo muchas veces tener problemas referentes a los permisos. Se recomienda encarecidamente siempre ver el fichero de logs. Para modificar el usuario con el que corre el servicio / demonio MiniDLNA se edita “/etc/default/minidlna” o en otras distros “/etc/conf.d/minidlna”.
Si se va a modificar el usuario y/o grupo con el que miniDLNA corre, se tendrán que cambiar manualmente los permisos de su directorio de base de datos /var/lib/minidlna/ y debe tener también, como es lógico, acceso de lectura a los directorios que sirven contenido multimedia.
Base de datos.
La base de datos contiene un listado con todos los ficheros multimedia que MiniDLNA sirve, por eso es importante que el usuario tenga permisos de lectura sobre los directorios que queremos compartir. Si no puede leer un determinado directorio, este no aparecerá cuando listemos desde algunos de los dispositivos DLNA que usemos.
Con el comando “minidlna -R” obligamos a recorrer todo el árbol de ficheros especificado en “media_dir” y escribir dicho árbol en la base de datos de “db_dir”. Si el dispositivo donde corre MiniDLNA tiene muy pocos recursos y los directorios a compartir tienen muchos ficheros (ej. 1Tbyte de imágenes), es probable que el proceso tarde demasiadas horas. Se recomienda en estos casos ejecutar MiniDLNA en otro sistema (con el mismo valor “media_dir”) y después copiar la base de datos (files.db) resultante de nuevo al dispositivo de pocos recursos.
Compartir ficheros remotos.
Es perfectamente factible compartir directorios que ni siquiera están en el pc local, se puede definir en media_dir directorios montados mediante NFS, SAMBA, ssh-fs o cualquier otra cosa que se nos ocurra. Lógicamente la calidad del enlace con el servidor remoto juega un papel importante.
MiniDLNA no se ejecuta durante el arranque del sistema.
Siempre que haya un problema con MiniDLNA se deben revisar los logs. Si por algún motivo, pese a tener una buena configuración de los servicios de arranque, MiniDLNA no consiguiera ejecutarse, siempre se puede especificar un “sleep 15” dentro de /etc/init.d/miniDLNA para retrasar 15 segundos su arranque. Revisar /etc/init.d/.depend.start también puede ser recomendable.