Mi Blog
👉 Cómo montar un servidor DLNA en Raspberry Pi

Cómo montar un servidor DLNA en Raspberry Pi

 
(6 votos)

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 ...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿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+:

Servidor DLNA Raspberry PiEsquema 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:

Servidor DLNA Raspberry Pi

 

 

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:

Servidor DLNA Raspberry PiDLNA 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:

Servidor DLNA Raspberry PiAñadir fuente de videos

 

 

Seleccionamos el tipo de fuente, en nuestro caso "UPnP devices":

Servidor DLNA Raspberry PiAñ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:

Servidor DLNA Raspberry PiAñadir todos los dispositivos UPnP

 

 

Como se puede ver, en el nombre asignado pone "Auto-Discover":

Servidor DLNA Raspberry PiAuto-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:

Servidor DLNA Raspberry PiListado 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:

Servidor DLNA Raspberry PiReproducción 4K a través de la red Wifi DLNA

 

 

ENJOY!