- Estréllate y Arde - https://www.estrellateyarde.org -

Servidor UPnP Media Server (DLNA) en Linux

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


Article printed from Estréllate y Arde: https://www.estrellateyarde.org

URL to article: https://www.estrellateyarde.org/discover/servidor-upnp-media-server-dlna-en-linux

Copyright © 2010 Estrellate y Arde