Installation et parametrage d’un serveur @home sous linux ubuntu – partie 3

Salut, cet article est la suite de : Installation et paramétrage d’un serveur @home sous linux ubuntu – partie 1 et de :Installation et paramétrage d’un serveur @home sous linux ubuntu – partie 2

On continue :

Serveur de multimedia :

Pour le serveur multimedia, j’utilise mediatomb. Pourquoi mediatomb ? car il fonctionne automatiquement avec la freebox (V5) et la PS3. Il permet donc de lire les photos, la musique, et les videos presentes sur le pc. Mediatomb est directement dans les depots. Pour l’installer il suffit de faire :

sudo apt-get install mediatomb

on peut configurer 2 3 petits trucs :

nano /etc/mediatomb/config.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>LyRiX Serveur Multimedia</name>
    <udn>uuid:7d1840b7-5f01-44ae-bc4a-7e2a715a1099</udn>
    <home>/var/lib/mediatomb</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="yes"/><!-- 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>

En gros la j’ai juste changé le nom du serveur et decommenté deux lignes pour un bon support de la ps3

Voila on peut administrer notre serveur depuis une interface web : http://lyrix-serveur.local:49152/

Capture-MEDIATOMB

Capture-MEDIATOMB

Serveur de son

Serveur mpd

MPD est un lecteur utilisant une architecture client-serveur. Le serveur va agir en tant que daemon (ou service) et s’occuper de lire la musique et garder en mémoire la liste de lecture, le client est facultatif il ne sert qu’à la communication avec le serveur. Les avantages liés a un tel fonctionnement sont entre autre la légèreté du programme puisque seul le serveur doit être actif pour jouer la musique, la modularité des clients puisqu’ils sont indépendants, il en existe des graphiques ou textes dans beaucoup de langages différents. MPD utilise une base de données pour stocker les musiques disponibles.

D’après la doc d’ubuntufr

Donc pour l’intaller il suffit de faire :

sudo apt-get install mpd

J’ai décidé de faire un utilisateur « media » et de tout mettre dedans (son / vidéo / photos). Il faut donc ajouter cet utilisateur, puis on crés les dossiers pour la configuration de mpd :

adduser media
mkdir /home/media/
mkdir /home/media/.mpd/
mkdir /home/media/.mpd/playlists
touch /home/media/.mpd/mpd.db
touch /home/media/.mpd/mpd.log
touch /home/media/.mpd/mpd.error

Enfin on configure les variables :

gedit /etc/mpd.conf 
# MPD CONFIG FILE
# For a full description of all config parameters,
# Check the mpd man page, "man mpd".

##################### REQUIRED ###########################

# You can put symlinks in here, if you like.  Make sure
# user that mpd runs as (see the 'user' config parameter)
# can read the files in this directory

music_directory         "/home/media/"
playlist_directory      "/home/media/.mpd/playlists"
db_file                 "/home/media/.mpd/mpd.db"
log_file                "/home/media/.mpd/mpd.log"
error_file              "/home/media/.mpd/mpd.error"
pid_file		"/home/media/.mpd/pid"
##########################################################

##########################################################
# EVERYTHING ELSE IS OPTIONAL
##########################################################

################## AUDIO OUTPUT ##########################
#
# use this if you want to use OSS audio output
#audio_output {
#	type		"oss"
#	name		"my OSS sound card"
#	device		"/dev/dsp" # optional
#	format		"44100:16:2" #optional
#}
#
# use this if you want to use ALSA audio output
#audio_output {
#	type		"alsa"
#	name		"my ALSA device"
#	device		"hw:0,0" # optional
#	format		"44100:16:2" #optional
#}
#
# as a last resort, try using libao
#audio_output {
#	type		"ao"
#	name		"default ao output"
#}
audio_output {
        type                    "pulse"
        name                    "My MPD PulseAudio Output"
}

#
# Set this if you have problems
# playing audio files.
# This will resample your music so
# that it comes out at the set rate.
#
#audio_output_format	"44100:16:2"
#
##########################################################

################### VOLUME MIXER #########################
#
# Examples:
# ALSA Mixer
# mixer_type		"alsa"
# mixer_device		"default"
# mixer_control		"PCM"
#
# OSS Mixer
#mixer_type		"oss"
#mixer_device		"/dev/mixer"
#mixer_control		"PCM"
#
# Software Mixer
mixer_type		"software"
#
##########################################################

################# SHOUT STREAMING ########################
#
# Set this to allow mpd to stream its output to icecast2
# (i.e. mpd is a icecast2 source)
#
#audio_output {
#	type		"shout"
#	name		"LyRiX Web Radio"
#	host		"192.168.10.34"
#	port		"8000"
#	mount		"/mpd.ogg"
#	password	"lyrix"
#	quality		"5.0"
#	bitrate		"128"
#	format		"44100:16:1"
#
# Optional Paramters
#	user		"source"
#	description	"here's my long descriptiion"
#       genre		"jazz"
#} # end of audio_output
#
##########################################################

################# FILESYSTEM SETTINGS ####################
#
# If the names of files or directories are
# not correctly displayed then set the
# following to the filesystem coding.
#
#	Usually this is either:
#	ISO-8859-1 or UTF-8
#
# After changing the filesystem_charset
# you will need to recreate the db:
#	mpd --create-db
#
filesystem_charset "UTF-8"
#
##########################################################

#################### OPTIONAL FILES ######################
#
# The state file (if set) will be a file
# for storing all current information
# (playlist, playing/paused, etc...) from
# the last MPD session. This will be used
# to recreate your last MPD session after
# restart.
#
state_file         "/home/media/.mpd/state"

#
##########################################################

################# REPLAYGAIN #############################
#
# Use Replay Gain (album or title)
#	http://www.replaygain.org
#
#replaygain		"album"
#
# Sets the pre-amp used for files that have replaygain
# info.  Valid values are between -15 to 15 (in dB).
#
#replaygain_preamp	"0"
#
##########################################################

################ OUTPUT BUFFER SETTINGS ##################
#
# You should not need to mess with this
# unless you know what you're doing.
#
#audio_buffer_size	"2048"
#
# This means exactly what it says, it will
# buffer your file up to the percentage of
# the buffer before it begins playing.
#
#buffer_before_play	"25%"
#
##########################################################

################### HTTP PROXY ###########################
#
# http_proxy_host	"proxy.isp.com"
# http_proxy_port	"8080"
# http_proxy_user	"user"
# http_proxy_password	"password"
#
##########################################################

################# SECURITY SETTINGS ######################
#
# It is encouraged to run MPD as
# non-superuser.  If you start mpd as root
# (for example, in an init script), set
# this value, then  mpd will drop root priveleges
# and runs as the user specified.
#
user               "media"
#
# Set this value if you only have one
# address you want to allow connection to.
#
bind_to_address	"192.168.10.35"
#
# If you want to setup MPD to use
# passwords set them here
#
password		"lyrix@read,add,control,admin"
#password		"lyrix@read"
#
# Specify permissions used by default when no password is
# given by for a connection/client.
#
#default_permissions	"read,add,control,admin"
#
##########################################

################ MISCELLANEOUS OPTIONS ###################
#
port	"6600"
#
# This sets the metadata mpd will use, to disable all metadata, set to "none"
# NOTE: comments are disabled by default
#
#metadata_to_use "artist,album,title,genre,date,track,composer,performer,comment"
#
# This setting exists as precaution against attacks.
#
#max_playlist_length	"16384"
#
# Valid options are "default", "secure" or "verbose".
#log_level		"default"
#
#connection_timeout	"60"
#
# This should be fine for 2-3 people using clients
# at the same time.
#
#max_connections	"5"
#
# No need to change these unless you know better.
#
#max_command_list_size	"2048"
#max_output_buffer_size "8192"
#
# This will make playlists compatible with normal music
# players.
#
#save_absolute_paths_in_playlists "no"
#
##########################################################

Bon voila, on a notre petite station audio enfin prete. Sauf que pour l’instant, on a pas encore de musique. Pour se faire, il suffit d’en ajouter au dossier /home/media/music. J’utilise un client ftp (filezilla) pour me connecter a mon serveur et uploader de la musique. une fois que c’est finit, il faut relancer un scan de la bibliotheque :

mpd --create-db

et voila, ca roule, on peut maintenant se connecter a notre serveur grace a un client comme ario qui est dans les depots (depuis un autre poste bien sur):

apt-get install ario

et on le configure (en fait il le fait tout seul) :

mpd config

mpd config

      On clique sur edition puis préférence
      On clique sur dection automatique
      On selectionne notre serveur
      On rentre son mot de passe

Voila, notre pc et le serveur sont configurés. Deux Trois petits tips : on peut mettre a jour la base de donné depuis ario (Edition > Préférence > Serveur > Mettre a jour), on peut activer le sroble last.fm (Edition > Greffons > last.fm), on peut activer les raccourci clavier (Edition > Greffons > touches multimedias)
Enfin trucs très sympa, mpd suit automatiquement les liens symbolique sur votre serveur. Donc dans le dossier /home/media/music/ on peut crée un lien symbolique qui pointe vers un disque dur externe par exemple ;)

Allez pour finir un petit screenshot des stats de notre mpd :

mpd-stats

mpd-stats

Articles en rapport:

Comments are closed.