Servidor UPnP Media Server (DLNA) en Linux

Posted by The Editor

Streaming de audio y vídeo:
- Streaming por Internet:
    - Servidor streaming en directo
        - Servidor streaming en directo
        - Fuente de audio en directo
        - Fuente de vídeo en directo
    - Servidor streaming bajo demanda
    - Clientes de streaming
- Streaming en red local:
    - Servidor UPnP Media Server (DLNA)

Los protocolos de red UPnP (Universal Plug and Play), definidos por el UPnP Forum, garantizan la interoperatividad entre PCs conectados en red, y los UPnP AV (UPnP Audio and Video o UPnP multimedia), supervisados por el DLNA, establecen especificaciones para que los dispositivos digitales DLNA compatibles (ordenadores, cámaras de vídeo, televisores, etc.) puedan conectarse a una red y compartir sus datos con otros dispositivos.

El protocolo UPnP AV se implementa con arquitectura cliente-servidor, por lo que necesita:

  • un servidor UPnP AV (o media server), que exporta uno o más directorios que contienen archivos de imagen, música o vídeo. Además de compartir directorios el servidor UPnP AV puede realizar o no transcoding:
    • si el servidor UPnP AV no realiza transcoding sólo veremos los ficheros de vídeo que el cliente reproduzca de forma nativa.
    • si el servidor UPnP AV realiza transcoding se encargará de transformar on the fly la fuente original (por ejemplo DivX) a un formato que el cliente pueda reproducir (por ejemplo MPEG-2).
  • un cliente UPnP AV (o media player), que auto-detectará los servidores UPnP AV presentes en la red local, tendrá acceso a los directorios compartidos y podrá navegar por ellos y reproducir los archivos de imagen, música o vídeo. Probablemente los clientes UPnP AV más utilizados son las vídeo-consolas, como la Playstation 3. Al encenderla detectará automáticamente los servidores multimedia DLNA ubicados en la red local y los mostrará en Foto, Música y Vídeo.

    PS3 media server

Hay numerosos servidores UPnP AV en Linux:

Equivalencias en Windows: Nero Media Home, Windows Media Connect .

  • uShare (ushare.geexbox.org, paquete ushare): servidor UPnP AV desarrollado por la distribución GeeXboX. No realiza transcoding. Para instalarlo con APT añadiremos el repositorio de GeeXboX a /etc/apt/sources.list:
    # Repositorio GeeXboX
    deb http://www.geexbox.org/debian/ unstable main

    Para configurar uShare editaremos el archivo /etc/ushare.conf:

    # Directorio compartido
    USHARE_DIR=/home/francis/videos
    
    # Usar perfil DLNA (necesario para PlayStation3)
    ENABLE_DLNA=yes

    Para terminar, reiniciamos el daemon:

    # /etc/init.d/ushare restart
  • GMediaServer (gnu.org/software/gmediaserver/, paquete gmediaserver): servidor UPnP AV desarrollado por el GNU. No realiza transcoding. El archivo de configuración es /etc/default/gmediaserver:
    # Iniciar el daemon
    GMEDIASERVERRUN=yes
    
    # Argumentos
    # --profile=ps3 Perfil para la PlayStation 3
    # --file-types:unknown Compartir todo, incluso archivos de formato desconocido
    GMEDIASERVERARGS="--profile=ps3 --file-types=unknown"
    
    # Directorio compartido
    GMEDIASERVERDIR="/home/francis/videos"

    Una vez configurado reiniciamos el demonio:

    # /etc/init.d/gmediaserver restart
  • MediaTomb (mediatomb.cc, paquete mediatomb): servidor UPnP AV que sí realiza transcoding. El archivo de configuración con los parámetros para el script de inicio es /etc/default/mediatomb:
    # Iniciar el daemon
    NO_START="no"

    El archivo principal de configuración es /etc/mediatomb/config.xml. En este punto, sólo veremos los .mpg (el resto de archivos aparecerán como Datos no compatibles), de manera que habilitaremos el soporte para PS3 sustituyendo la línea:

    <protocolInfo extend="no"/><!-- For PS3 support change to "yes" -->

    por:

    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->

    y conseguiremos ver los .wmv.

    Activaremos el soporte para DivX para la PS3 sustituyendo la línea:

    <!-- <map from="avi" to="video/divx"/> -->

    por:

    <map from="avi" to="video/divx"/>

    Para ver los .avi habilitaremos el transcoding sustituyendo la línea:

    <transcoding enabled="no">

    por:

    <transcoding enabled="yes">

    Y añadiremos esto:

    <transcode mimetype="video/x-msvideo" using="ffmpeg-sh"/>

    Y esto:

    <profile name="ffmpeg-sh" enabled="yes" type="external">
        <mimetype>video/mpeg</mimetype>
        <accept-url>yes</accept-url>
        <first-resource>yes</first-resource>
        <agent command="ffmpeg-tr.sh" arguments="%in %out"/>
        <buffer size="10485760" chunk-size="131072" fill-size="5242880"/>
    </profile>

    Y además crearemos el archivo /bin/ffmpeg-tr.sh (y le daremos permisos de ejecución), cuyo contenido es:

    #!/bin/sh
    exec ffmpeg -i "$1" -b 2000k -me zero -f mpeg -ar 48000 -ac 2 - > "$2"

    Una vez configurado reiniciamos el demonio:

    # /etc/init.d/mediatomb restart

    MediaTomb dispone de una interfaz web con la que podremos configurar los directorios compartidos, a la que podemos acceder en la dirección http://127.0.0.1:49152 (MediaTomb utilizará el primer puerto libre comenzando por 49152), obteniendo:

    MediaTomb

Te puede interesar...

Streaming de audio y vídeo:
- Streaming por Internet:
    - Servidor streaming en directo
        - Servidor streaming en directo
        - Fuente de audio en directo
        - Fuente de vídeo en directo
    - Servidor streaming bajo demanda
    - Clientes de streaming
- Streaming en red local:
    - Servidor UPnP Media Server (DLNA)

3 Respuestas para “Servidor UPnP Media Server (DLNA) en Linux”
  1. Kr0n0 dice:

    Muy util, sobre todo la parte de la configuración del .xml, gracias

  2. Ver videos desde mi otra pc dice:

    Tengo mediatomb instalada en mi red PC A con la dirección http://192.168.1.2:49152

    Ahora quiero ver los videos desde mi PC B pero no me deja ver los videos en mi PC B
    porque es que no puedo ver los videos en mi PC B ?
    con la dirección http://192.168.1.2:49152 que debo hacer para que funcione?

  3. [...] La PS3 reproduce muchos tipos de archivos, pero tiene problemas con XVid y no reproduce MKV. Como soporta el protocolo UPnP, es posible acceder a servidores multimedia que soporten este protocolo, y en Linux existen varios que se describen con detalle en este post de Estréllate y Arde. [...]

  4.  
Deja una respuesta