La tecnología DLNA o Digital Living Network Alliance está presente en los televisores, en dispositivos como el Roku, en PlayStations en Xbox One, etc... Además, gracias a las aplicaciones también funciona en tu portátil, en tus discos duros NAS e incluso en tu teléfono móvil. Se trata de un estándar cuyo objetivo es comunicar tus dispositivos de forma sencilla y directa para compartir archivos entre ellos.
Seguid leyendo y os enseñaré de forma rápida a configurar una Raspberry Pi para que funcione como un servidor DLNA ...
¿QUÉ ES UN SERVIDOR DLNA?
Un servidor de DLNA es un dispositivo que se utiliza para compartir contenido multimedia a través de una red doméstica. DLNA significa Digital Living Network Alliance, una organización que establece estándares para compartir medios digitales a través de redes. Un servidor DLNA puede almacenar imágenes, videos, música y otros archivos de medios y hacer que estén disponibles para otros dispositivos compatibles con DLNA en la red. Algunos ejemplos de dispositivos que pueden acceder a un servidor DLNA son TV, consolas de juegos, reproductores de Blu-ray y teléfonos inteligentes. Con un servidor DLNA, los usuarios pueden disfrutar de sus contenidos multimedia en diferentes dispositivos conectados a la red sin tener que transferir físicamente los archivos.
Con MiniDLNA puedes convcertir tu Raspberry Pi en un sdervidor DLNA
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Una Raspberry Pi con S.O. Raspbian, OSMC o similar
- Conexión a Internet
- Dispositivo cliente (PC/Smartphone/Smart TV) compatible con DLNA.
2.- INSTALAR EL SERVIDOR DLNA
Lo primero que debemos hacer es actualizar la lista de ficheros disponibles en el repositorio, para ello ejecutaremos el comando:
[osmc@osmc]$ sudo apt-get update
Una vez actualizada la lista, instalaremos el servidor de DLNA con el comando:
[osmc@osmc]$ sudo apt-get install minidlna
En la siguiente imagen se puede ver un esquema de la red local de mi casa y todo interconectado entre sí al DLN a través de una viaja Raspberry Pi 1 B+:
Esquema DLNA en mi casa
3.- CONFIGURAR MINIDLNA
Configurar el servidor MiniDLNA es muy sencillo si lo único que queremos es compartir archivos en nuestra red sin grandes y costosas configuraciones. El fichero /etc/minidlna.conf es el fichero de configuración que deberemos editar. La configuración básica es muy sencilla.
Primero debemos seleccionar los directorios/dispositivos donde tenemos los ficheros multimedia que queremos compartir. En mi caso tengo 2 USBs y el $HOME del usuario osmc, por tanto, añado 3 líneas, uno por cada recurso compartido y como solo tengo ficheros de video, el tipo de media_dir será V:
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
# * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
media_dir=V,/media/KINGSTON
media_dir=V,/media/USB128GB
media_dir=V,/home/osmc
Dejaremos por defecto el puerto donde podemos interactuar con MiniDLNA y ver las estadísticas de ficheros y usuarios:
# Port number for HTTP traffic (descriptions, SOAP, media transfer).
# This option is mandatory (or it must be specified on the command-line using
# "-p").
port=8200
La variable "friendly_name" sirve para ponerle el nombre del servidor DLNA, en mi caso lo dejo por defecto pero podéis cambiarlo:
# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=osmc
Activaremos inotify para que MiniDLNA añada/borre de forma automática los ficheros a la base de datos. No funciona muy bien y más adelante os mostraré un pequeño workaround:
# Automatic discovery of new files in the media_dir directory.
inotify=yes
Tras los cambios, debemos reiniciar el servicio de MiniDLNA con el siguiente comando:
[osmc@osmc]$ sudo systemctl restart minidlna
Comprobaremos que el servicio está Active y Running con el comando siguiente:
osmc@osmc:~$ systemctl status minidlna
* minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server
Loaded: loaded (/lib/systemd/system/minidlna.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-07-18 21:17:45 CEST; 1 weeks 0 days ago
Docs: man:minidlnad(1)
man:minidlna.conf(5)
Process: 335 ExecStart=/usr/sbin/minidlnad -f $CONFIGFILE -P /run/minidlna/minidlna.pid $DAEMON_OPTS (code=exited, status=0/SUCCESS)
Main PID: 472 (minidlnad)
Memory: 4.6M
CGroup: /system.slice/minidlna.service
`-472 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -r
4.- ESTADÍSTICAS DE FICHEROS Y CLIENTES CONECTADOS
Para acceder a las estadísticas de los ficheros compartidos y los clientes conectados recientemente y el número de conexiones debemos acceder desde el navegador web a la IP y al puerto 8200 del servidor MiniDLNA. En mi red, por ejemplo, la dirección URL es http://192.168.1.2:8200:

5.- WORKAROUND AL PROBLEMA DE INOTIFY
iNotify en RaspberryPi y MiniDLNA no funciona correctamente en muchas veces, por lo tanto, es necesario reiniciar el servicio de MiniDLNA, reiniciar la RaspberryPi o refrescar la base de datos de MiniDLNA, lo que a veces resulta muy molesto. Como workaround, podéis programar una tarea en crontab cada X minutos que refresque la base de datos. En mi caso, refresco la base de datos cada 15 minutos. Si no sabéis programar tareas en GNU/Linux os recomiendo leer primero mi tutorial: Cómo programar tareas en GNU/Linux.
Entonces, en la RaspberryPi, tenéis que programar la siguiente tarea:
# m h dom mon dow command
*/15 * * * * /usr/sbin/minidlnad -r
6.- UTILIZAR VLC COMO CLIENTE DLNA
Para reproducir contenido desde VLC de un servidor de la red local a través de DLNA, debemos ir a "Red Local" -> "Plug'n'Play Universal". En VLC aparecerá el servidor DLNA (osmc en nuestro caso) y podremos movernos a través de sus carpetas y reproducir su contenido como si estuviera en nuestro dispositivo:
DLNA y VLC
7.- UTILIZAR KODI COMO CLIENTE DLNA
Kodi lo podemos utilizar en Smart TVs, PCs, Smarthptones, Android TVs ... por tanto, es muy versátil al igual que VLC, aunque necesita más memoria/procesador para que funcione correctamente. Lo primero que debemos hacer es añadir una nueva fuente de videos, para ello iremos a "Add Video Source" (si lo tenemos en inglés) y hacer click en Browse:
Añadir fuente de videos
Seleccionamos el tipo de fuente, en nuestro caso "UPnP devices":
Añadir dispositivos UPnP
Tenemos 2 opciones, seleccionar el dispositivo encontrado, en este caso OSMC o dejar a Kodi que autodescubra TODOS los servidores DLNA de la red. En este ejemplo dejamos que Kodi busque siempre todos los servidores DLNA y para ello debemos seleccionar la primara carpeta y darla a OK:
Añadir todos los dispositivos UPnP
Como se puede ver, en el nombre asignado pone "Auto-Discover":
Auto-Discover para UPnP
Ahora desde la parte de Videos del menú principal podremos movernos a través del servidor DLNA y ver su contenido como se puede ver en la imagen siguiente:
Listado de ficheros de video
Y en la siguiente imagen se puede ver como se reproduce un video 4K reproduciéndose a través de Wifi, con Kodi y DLNA:
Reproducción 4K a través de la red Wifi DLNA
ENJOY!