Re: Problema configurazione mediatomb (non

fabio
2011-06-21
2013-05-30
  • fabio
    fabio
    2011-06-21

    Salve ho installato mediatomb du una debian lenny
    ma non riesco a capire la sintassi criptica della direttive contenute in /etc/mediatomb/config.xml conoscendo poco il linguaggio xml.
    In sostanza voglio far si che all' avvio di mediatomb
    quando metto il suo indirizzo e porta nel browser, il demone mi faccia vedere solo il contenuto della cartella /home/utente1 e non tutto il filesystem della debian in modo che sia possibile selezionare vedere ed ascoltare solo i file e le cartelle in essa contenuti.
    In secondo luogo non riesco a rendere avviabile automaticamente al boot mediatomb.
    Vorrei poi sapere se per ascoltare e vedere i file oltre ai driver audio e video ci vogliono applicazioni particolari, oppure basta il solito browser.
    Qualcuno mi puo' dare risposta a queste domande?

    Questo e' il contenuto del file /etc/mediatomb/conf.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <config version="1" xmlns="http://mediatomb.cc/config/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/1 http://mediatomb.cc/config/1.xsd">
      <server>
        <ui enabled="yes">
          <accounts enabled="no" session-timeout="30">
            <account user="mediatomb" password="mediatomb"/>
          </accounts>
        </ui>
        <name>MediaTomb</name>
        <udn>uuid:1f97a2b7-091e-4d28-aca7-8e69579dcba3</udn>
        <home>/home/fabio</home>
        <webroot>/usr/share/mediatomb/web</webroot>
        <storage>
          <sqlite3 enabled="yes">
            <database-file>sqlite3.db</database-file>
          </sqlite3>
          <mysql enabled="no">
            <host>localhost</host>
            <username>mediatomb</username>
            <database>mediatomb</database>
          </mysql>
        </storage>
        <protocolInfo extend="no"/><!-- For PS3 support change to "yes" -->
        <!--
           Uncomment the lines below to get rid of jerky avi playback on the
           DSM320 or to enable subtitles support on the DSM units
        -->
        <!--
        <custom-http-headers>
          <add header="X-User-Agent: redsonic"/>
        </custom-http-headers>
        <manufacturerURL>redsonic.com</manufacturerURL>
        <modelNumber>105</modelNumber>
        -->
        <!-- Uncomment the line below if you have a Telegent TG100 -->
        <!--
           <upnp-string-limit>101</upnp-string-limit>
        -->
      </server>
      <import hidden-files="no">
        <scripting script-charset="UTF-8">
          <common-script>/usr/share/mediatomb/js/common.js</common-script>
          <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>
          <virtual-layout type="builtin">
            <import-script>/usr/share/mediatomb/js/import.js</import-script>
          </virtual-layout>
        </scripting>
        <mappings>
          <extension-mimetype ignore-unknown="no">
            <map from="mp3" to="audio/mpeg"/>
            <map from="ogg" to="application/ogg"/>
            <map from="asf" to="video/x-ms-asf"/>
            <map from="asx" to="video/x-ms-asf"/>
            <map from="wma" to="audio/x-ms-wma"/>
            <map from="wax" to="audio/x-ms-wax"/>
            <map from="wmv" to="video/x-ms-wmv"/>
            <map from="wvx" to="video/x-ms-wvx"/>
            <map from="wm" to="video/x-ms-wm"/>
            <map from="wmx" to="video/x-ms-wmx"/>
            <map from="m3u" to="audio/x-mpegurl"/>
            <map from="pls" to="audio/x-scpls"/>
            <map from="flv" to="video/x-flv"/>
            <!-- Uncomment the line below for PS3 divx support -->
            <!-- <map from="avi" to="video/divx"/> -->
            <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
            <!-- <map from="avi" to="video/avi"/> -->
          </extension-mimetype>
          <mimetype-upnpclass>
            <map from="audio/*" to="object.item.audioItem.musicTrack"/>
            <map from="video/*" to="object.item.videoItem"/>
            <map from="image/*" to="object.item.imageItem"/>
          </mimetype-upnpclass>
          <mimetype-contenttype>
            <treat mimetype="audio/mpeg" as="mp3"/>
            <treat mimetype="application/ogg" as="ogg"/>
            <treat mimetype="audio/x-flac" as="flac"/>
            <treat mimetype="image/jpeg" as="jpg"/>
            <treat mimetype="audio/x-mpegurl" as="playlist"/>
            <treat mimetype="audio/x-scpls" as="playlist"/>
            <treat mimetype="audio/x-wav" as="pcm"/>
            <treat mimetype="video/x-msvideo" as="avi"/>
          </mimetype-contenttype>
        </mappings>
      </import>
      <transcoding enabled="no">
        <mimetype-profile-mappings>
          <transcode mimetype="video/x-flv" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="oggflac2raw"/>
          <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
        </mimetype-profile-mappings>
        <profiles>
          <profile name="oggflac2raw" enabled="no" type="external">
            <mimetype>audio/L16</mimetype>
            <accept-url>no</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>no</accept-ogg-theora>
            <agent command="ogg123" arguments="-d raw -f %out %in"/>
            <buffer size="1048576" chunk-size="131072" fill-size="262144"/>
          </profile>
          <profile name="vlcmpeg" enabled="no" type="external">
            <mimetype>video/mpeg</mimetype>
            <accept-url>yes</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>yes</accept-ogg-theora>
            <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>
            <buffer size="14400000" chunk-size="512000" fill-size="120000"/>
          </profile>
        </profiles>
      </transcoding>
    </config>
    

    Per quanto riguarda l' avvio al boot di mediatomb so' che ci sono varie modalita di avvio impostate dentro a /etc/rc.d/  oppure dentr a /etc/init.d  ma non so' dove andare a mettere di preciso tale voce.
    Fammi sapere.

     
  • Prima di tutto occorre dire che, scrivendo in italiano, escludi il 99,9% delle persone che visitano questo forum e potrebbero rispondere alle tue domande. In secondo luogo, devo precisare che non conosco Debian e quindi il mio contributo sarà forzatamente generico. In merito alle domande:
    .Qui è disponibile la descrizione del formato del file di configurazione e dei tag supportati. Secondo me, per limitare l'accesso a solo alcuni path del file system, bisogna agire sul SO. Forse sarebbe utile sapere esattamente qual è il risultato che ci si prefigge per fornire una risposta utile
    .Per quanto riguarda l'avviamento al boot del SO, non conoscendo Debian non posso dare una risposta definitiva, ma se usa il metodo da te descritto dovrebbe essere possibile utlizzare lo script in calce (fatte le opportune modifiche) e ultilizzare il comando chkconfig per installarlo (`man chkconfig' da un terminale dovrebbe offrire le informazioni necessarie)
    .In merito alla domanda relativa a quali applicazioni sono necessarie per vedere e ascoltare i file audio e video, il riferimento al browser in uso è inappropriato, in quanto la funzionalità principale di MediaTomb è quella di distribuire contenuti multimediali a una rete di dispositivi in grado di interpretare il protocollo di comunicazione usato (upnp). L'uso del browser è appropriato in questo contesto solo in quanto strumento che permette aggiunta/modifica/rimozione dei contenuti mutimediali che si vogliono rendere disponibili alla rete di dispositivi riproduttori tramite il server di MediaTomb. Ciò detto, occorre aggiungere che, per permettere la riproduzione dei contenuti multimediali, bisogna che il dispositivo di riproduzione (TV. renderer, etc.) sia opportunamente dotato dei codec per decodificarli; oppure si può agire su MediaTomb per trascodificare un formato non supportato in uno supportato, ma questo è tema per un'altra discussione…

    /etc/init.d/mediatomb:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #!/bin/sh
    #
    # mediatomb This script starts and stops the mediatomb daemon
    #
    # chkconfig: - 95 30
    # processname: mediatomb
    # description: mediatomb is a daemon process which provides a UPnP service
    # config: /etc/mediatomb
    # config: /etc/mediatomb/config.xml
    # pidfile: /var/run/mediatomb.pid
    # Source function library.
    . /etc/rc.d/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0
    # Set default mediatomb configuration.
    # either make an installation in /etc/mediatomb and leave this blank,
    # or specify an alternative config file location using the -c option
    # Note: be aware, that -i parameter is used to set the ip of the 
    # interface specified above
    . /etc/mediatomb.conf
    ###############################
    # make sure to run it as nobody
    MEDIATOMB="-d -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR -p $MT_PORT"
    [ -f /usr/bin/mediatomb ] || exit 0
    [ ${MT_INTERFACE} = "NOT_SET" ] && echo "Please edit /etc/mediatomb.conf and change \
    the MT_INTERFACE variable to your network device (eth0, eth1, etc.)" && exit 0
    PATH=$PATH:/usr/bin:/usr/local/bin
    # By default it's all good
    RETVAL=0
    # See how we were called.
    case "$1" in
      start)
        # Start daemon.
        echo -n "Applying multicast settings to $MT_INTERFACE... "
        # those settings are necessary for us to react to M-SEARCH requests
        route add -net 239.0.0.0 netmask 255.0.0.0 $MT_INTERFACE >/dev/null 2>&1
        ifconfig $MT_INTERFACE allmulti
        touch $MT_PIDFILE
        chown mediatomb $MT_PIDFILE
        mkdir -p "/$MT_HOME/$MT_CFGDIR"
        chown mediatomb "/$MT_HOME/$MT_CFGDIR"
        
        echo -n "Starting mediatomb: "
        
        daemon $NICELEVEL mediatomb $MEDIATOMB -e $MT_INTERFACE $MT_OPTIONS
        
        RETVAL=$?
            echo
            [ $RETVAL = 0 ] && touch /var/lock/subsys/mediatomb
            ;;
      stop)
            # Stop daemons.
            echo -n "Shutting down mediatomb: "
            killproc mediatomb
            RETVAL=$?
            echo
            [ $RETVAL = 0 ] && rm -f /var/lock/subsys/mediatomb
            ;;
      restart)
            $0 stop
            $0 start
            ;;
      condrestart)
           [ -e /var/lock/subsys/mediatomb ] && $0 restart
           ;;
      status)
        status mediatomb
        RETVAL=$?
        ;;
      *)
        echo "Usage: $0 {start|stop|restart|status|condrestart}"
        RETVAL=1
        ;;
    esac
    exit $RETVAL