Cómo configurar MiniDLNA en Linux para compartir archivos

MiniDLNA, llamado ReadyMedia en su proyecto original, es un servidor ligero que permite compartir vídeos, música e imágenes con televisores, consolas, móviles y otros dispositivos compatibles con DLNA. Todo funciona dentro de nuestra red local, por lo que no es necesario subir los archivos a internet.

En este tutorial vamos a instalarlo en Debian, Ubuntu y sus distribuciones derivadas, seleccionar las carpetas que queremos compartir y configurar sus permisos sin abrirlas a todos los usuarios.

Logotipo de DLNA

Instalar MiniDLNA en Linux

Abrimos una terminal y actualizamos la lista de paquetes antes de instalar el servidor:

sudo apt update
sudo apt install minidlna

El servicio puede arrancar durante la instalación, pero todavía no conocerá las carpetas que queremos compartir. La configuración principal se encuentra en /etc/minidlna.conf.

Crear las carpetas multimedia

Podemos compartir una carpeta existente, aunque resulta más sencillo utilizar una ruta situada fuera de nuestra carpeta personal. Así evitamos problemas cuando /home/usuario solo permite el acceso a su propietario.

El siguiente ejemplo crea tres carpetas dentro de /srv/multimedia:

sudo mkdir -p /srv/multimedia/videos
sudo mkdir -p /srv/multimedia/musica
sudo mkdir -p /srv/multimedia/fotos

Para que nuestro usuario pueda copiar archivos y MiniDLNA pueda leerlos, asignamos la carpeta al usuario actual y al grupo del servicio:

sudo chown -R "$USER":minidlna /srv/multimedia
sudo find /srv/multimedia -type d -exec chmod 2750 {} \;
sudo find /srv/multimedia -type f -exec chmod 0640 {} \;

El primer comando permite que nuestro usuario escriba en las carpetas y que el grupo minidlna las lea. El permiso 2750 hace que las nuevas subcarpetas conserven ese grupo. No debemos utilizar chmod -R 777: concedería permisos de lectura y escritura a todos los usuarios del equipo y no es necesario para servir los archivos.

Carpeta compartida con MiniDLNA
También podemos utilizar una única carpeta compartida si no necesitamos separar los tipos de contenido.

Configurar MiniDLNA

Abrimos el archivo con nano o con nuestro editor habitual:

sudo nano /etc/minidlna.conf

Buscamos las líneas que empiezan por media_dir y las sustituimos o añadimos estas al final:

media_dir=V,/srv/multimedia/videos
media_dir=A,/srv/multimedia/musica
media_dir=P,/srv/multimedia/fotos

friendly_name=Servidor multimedia
inotify=yes
port=8200

La letra V limita una carpeta a vídeos, A a archivos de audio y P a imágenes. Si queremos mezclar todos los tipos, podemos escribir simplemente media_dir=/ruta/de/la/carpeta. La opción inotify=yes permite detectar los archivos nuevos sin reconstruir constantemente toda la base de datos.

En la documentación de minidlna.conf podemos consultar otras opciones, como limitar el servidor a una interfaz de red mediante network_interface. No es necesario modificar db_dir ni log_dir para una instalación normal.

Iniciar y comprobar el servicio

Guardamos el archivo, salimos del editor y activamos MiniDLNA para que se inicie ahora y en los próximos arranques:

sudo systemctl enable --now minidlna

Después de cambiar la configuración utilizaremos:

sudo systemctl restart minidlna
sudo systemctl status minidlna --no-pager

Si el estado aparece como active (running), el servicio está funcionando. Puede tardar un poco en mostrar todo el contenido durante el primer análisis, especialmente si la colección contiene miles de archivos.

Comprobar MiniDLNA desde el navegador

Desde el mismo ordenador podemos abrir la página de estado mediante HTTP:

http://localhost:8200/

Para verla desde otro dispositivo de la red debemos sustituir localhost por la dirección IP del servidor, por ejemplo http://192.168.1.50:8200/. Podemos consultar las direcciones del equipo con:

hostname -I
Página de estado de MiniDLNA en el navegador
La página de estado muestra los archivos indexados y los clientes conocidos por el servidor.

Solucionar problemas de MiniDLNA

El televisor no encuentra el servidor

El servidor y el cliente deben estar en la misma red local. Algunas redes WiFi para invitados impiden que los dispositivos se comuniquen entre ellos. También debemos comprobar que el cortafuegos no esté bloqueando el puerto TCP 8200 ni el tráfico de descubrimiento SSDP, que utiliza UDP 1900.

No debemos abrir estos puertos hacia internet en el router. MiniDLNA está pensado para utilizarse dentro de la red local.

Las carpetas aparecen vacías

Primero comprobamos la ruta de media_dir y los permisos. Después reiniciamos el servicio y consultamos sus últimos mensajes:

sudo journalctl -u minidlna -n 50 --no-pager

MiniDLNA dispone además de las opciones -r, para volver a analizar los archivos sin destruir la base de datos, y -R, para reconstruirla por completo. Esta última elimina la información guardada y los marcadores, por lo que solo conviene utilizarla cuando el índice esté dañado. Podemos consultar los detalles en el manual de minidlnad.

El archivo aparece pero no se reproduce

MiniDLNA comparte los archivos, pero no convierte el vídeo o el audio a otro formato. Si un televisor no admite el códec utilizado, puede mostrar el nombre y aun así negarse a reproducirlo. En ese caso tendremos que convertir el archivo a un formato compatible o utilizar un servidor con transcodificación.

Conclusión

MiniDLNA sigue siendo una solución sencilla para compartir una colección multimedia en la red local. Una vez definidas las carpetas, establecidos unos permisos de lectura seguros y activado el servicio, los dispositivos compatibles deberían detectarlo automáticamente.

Si algo falla, el estado de systemd, el registro del servicio y la página del puerto 8200 permiten distinguir rápidamente entre un problema de permisos, de indexación o de red.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →

13 comentarios en «Cómo configurar MiniDLNA en Linux para compartir archivos»

  1. Todo genial, pero me pasa algo un poco antiestético.
    Cuando abro en cualquier cliente el servidor de contenidos, me muestra las carpetas: «Examinar carpetas», «Fotos», «M?sica» y «V?deo». ¿Alguno sabe como puedo arreglar el tema de las tildes para que aparezca correctamente «Música» y «Vídeo»?
    Gracias.

  2. Perfecto, funciona de maravilla en Ubuntu 14 y un Receptor de AV (Yamaha RX-A1040). ¡Toma 3 minutos hacerlo!, jajajajaja claro me pase media noche leyendo sobre DLNA, MDA, HTTP, DAAP, Port forwading, etc, etc, etc y por alguna extraña razón de entendimiento instale Ampache, con todo y Apache, PHP, MySQL, SAMBA hasta el punto de no saber como seguir con la configuración UPnP / DLNA API, eso si ahora escucho música hasta por internet, lo bueno es que entre tantas se aprende mucho y gracias a personas como las que escriben y mantienen esta clase de páginas.

  3. Hola, muchas gracias por la info, muy bueno el aporte.

    Tengo una pregunta:
    ¿Me prodrian decir si saben de que manera puedo trasmitir streaming directamente desde internet (desde el navegador), sin necesidad de descargar archivos y/o guardarlos en una carpeta determinada en mi PC ?
    Es que desde mi telefono movil lo puedo hacer usando una aplicacion llamada Tubio que me sirve para conectar el telefono via wifi DLNA con un proyector, pero no encuentro como hacerlo desde el PC donde uso Ubuntu 16.04.2
    Desde ya muchas gracias.

    1. Hola, lo cierto es que también estuve mirando y la verdad es que no he encontrado ninguna opción. Si encuentro algo haré un tutorial.

      Saludos!

  4. Buenas, a lo mejor pueden ayudarme. He tenido 2 problemas muy diferentes.
    1 – El nombre de las carpetas de DLNA aparecen en Ingles. En lugar de Música aparece Music (por dar un ejemplo)
    2 – Los subtitulo con Acentos o Tildes, y algunos caracteres no salen correctamente en la pantalla. (Aclaro: Es la primera vez que me pasa antes me los mostraba bien. Tuve que instalar de vuelta el sistema por un cambio de PC)
    El primero lo solucione (cuando cambie de PC) el Segundo no le encuentro la vuelta y no quiero reinstalar el SO.

    Gracias.

  5. hola me puede decir que tengo que hacer para que lea mis discos externos ? solo me lee los de discos internos, pero mi disco duro externo no lo lee, ayúdenme por favor.

    1. Hola Leo, te recomiendo hacer lo siguiente:

      Montar el disco duro externo:
      Primero, conecta el disco duro externo a tu ordenador.
      Abre una terminal y ejecuta el siguiente comando para ver si el sistema detecta el disco:
      lsblk

      Si aparece en la lista, puedes montarlo manualmente usando el comando mount.

      Asegúrate de que MiniDLNA esté configurado correctamente para compartir archivos desde el disco duro externo.
      Editar el archivo de configuración de MiniDLNA:
      Abre el archivo de configuración de MiniDLNA como se menciona en el post con un editor de texto.
      Busca la línea que comienza con media_dir y asegúrate de que incluya la ruta a tu disco duro externo. Por ejemplo:
      media_dir=/ruta/a/tu/disco/externo

      Guarda los cambios y reinicia el servicio MiniDLNA.

      Reinicia MiniDLNA para aplicar los cambios:
      sudo systemctl restart minidlna

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *