Table des matières

, , , , , ,

uShare : Serveur de médias UPnP et DLNA

Développé par Geebox (en) pour GNU/Linux et distribué sous licence libre GNU (GPL), uShare a pour objectif d'utiliser un ordinateur comme serveur UPnP et DLNA pour lire musiques, vidéos et photos à partir de votre Freebox avec disque dur, Xbox 360, Playstation 3(*) ou encore Archos 605. De nombreux autres appareils peuvent aussi être utilisés pour la lecture, dont les streamers, ou d'autres ordinateurs du réseau.
uShare implémente le composant serveur qui fournit les appareils en informations sur les fichiers multimédias disponibles.

Aux utilisateurs de Xbox 360 : préférez utiliser Univesal Media Server. Ushare pose des problèmes pour l'instant avec certains fichiers avi.
Aux utilisateurs de PS3 : préférez utiliser Univesal Media Server ou mediatomb. Ushare pose des problèmes pour l'instant avec certains fichiers avi.

Installation

Installer le paquet ushare.

Configuration simplifiée

Ushare est très facile à configurer.

Dans un terminal on lance la commande suivante qui va permettre de configurer le partage via une interface graphique :

sudo dpkg-reconfigure ushare

et on suit les étapes suivantes :

La souris ne fonctionne pas dans ce type d'interface graphique. Le déplacement s'effectue avec la touche <tab>.

Le nom du partage

Nom du partage
Ici on inscrit le nom qu'on veut donner au partage. Exemple : Alphonse

L'interface réseau

Interface réseau utilisée
Ici on choisit l'interface réseau utilisée pour la connexion réseau.

Les dossiers médias

Dossiers à partager
Ici on indique le chemin du dossier ou sont stockés les fichiers multimédias. Exemple : /home/utilisateur/Images/.
On peut indiquer plusieurs dossiers se trouvant à des endroits différents. On séparera alors les chemins par une virgule ",". Exemple : /home/utilisateur/Images,/home/utilisateur/Vidéos,/home/utilisateur/Musique

Si un dossier d'un des chemins comporte un espace, encadrez l'ensemble avec des guillemets. Exemple : "/home/utilisateur/Images,/home/utilisateur/Vidéos,/home/utilisateur/Ma musique"

Une fois validé, le partage est réinitialisé et activé. Ensuite, uShare sera activé automatiquement en tant que service à chaque démarrage d'Ubuntu.
Si ce n'était pas le cas, réinitialisez et activez le depuis un terminal avec la commande suivante :

sudo /etc/init.d/ushare restart

Le Pare-feu d'Ubuntu n'est normalement pas activé par défaut. Si vous avez votre Pare-feu d'activé, il vous sera nécessaire d'y autoriser uShare. dans ce cas, voir chapitre Configuration du Pare-feu de la section suivante.

L'initialisation automatique au démarrage d'Ubuntu se fait sur la base d'une configuration simple des dossiers partagés. Si vos dossiers sont sur une unité distante ou si vous utilisez des noms de chemin entre guillemets, l'initialisation du service au démarrage d'Ubuntu risque de ne pas être complète. (Voir chapitre Problèmes connus → Initialisation au démarrage d'Ubuntu). Redémarrer alors le service avec la commande :
sudo /etc/init.d/ushare restart

Configuration avancée

Fichier de configuration

Le fichier de configuration de uShare se trouve dans le dossier /etc. On peut donc éditer ce fichier /etc/ushare.conf pour configurer plus précisément le(s) partage(s).

Une fois les modifications terminées, pour les rendre applicables, pensez à relancer le serveur uShare avec la commande suivante :
sudo /etc/init.d/ushare restart

Le fichier se présente comme suit :

# /etc/ushare.conf
# Edit this file with 'dpkg-reconfigure ushare'
# Configuration file for uShare

# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=Alphonse

# Interface to listen to (default is eth0).
# Ex : USHARE_IFACE=eth1
USHARE_IFACE=wlan0

# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=

# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=/home/utilisateur/Images,/home/utilisateur/Vidéos,/home/utilisateur/Musique

# Use to override what happens when iconv fails to parse a file name.
# The default uShare behaviour is to not add the entry in the media list
# This option overrides that behaviour and adds the non-iconv'ed string into
# the media list, with the assumption that the renderer will be able to
# handle it. Devices like Noxon 2 have no problem with strings being passed
# as is. (Umlauts for all!)
#
# Options are TRUE/YES/1 for override and anything else for default behaviour
USHARE_OVERRIDE_ICONV_ERR=

# Enable Web interface (yes/no)
USHARE_ENABLE_WEB=

# Enable Telnet control interface (yes/no)
USHARE_ENABLE_TELNET=

# Use XboX 360 compatibility mode (yes/no)
USHARE_ENABLE_XBOX=

# Use DLNA profile (yes/no)
# This is needed for PlayStation3 to work (among other devices)
USHARE_ENABLE_DLNA=

Activer les caractères spéciaux

La gestion des caractères accentués est activée par défaut. Si certains caractères spéciaux ne seraient pas actifs, il suffit de modifier le fichier de configuration /etc/ushare.conf afin que l'option "USHARE_OVERRIDE_ICONV_ERR" soit activée.
Ou bien dans un terminal saisir les commandes suivantes :

sudo sed 's/USHARE_OVERRIDE_ICONV_ERR=\
/USHARE_OVERRIDE_ICONV_ERR=YES\
/' -i /etc/ushare.conf

Paramétrer les dossiers via l'interface web

Si vous faites le choix :

 # Enable Web interface (yes/no) USHARE_ENABLE_WEB=yes 

vous pouvez paramétrer les dossiers à partager via uShare UPnP Media Server par le biais de son interface Web. Cela permet de définir de nouveaux emplacements de contenus lors de l'exécution ou mettre à jour un nouveau média.

# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=49200

Ou bien dans un terminal saisir les commandes suivantes :

sudo sed 's/USHARE_PORT=\
/USHARE_PORT=49200\
/' -i /etc/ushare.conf

(Le port est celui défini dans USHARE_PORT. Généralement 49200).

Configuration du Pare-feu

Le pare-feu d'Ubuntu n'est normalement pas activé par défaut. Si vous avez votre pare-feu d'activé, il vous sera nécessaire d'autoriser le service uShare. (Port par défaut : 49200)

# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=49200

Ou bien dans un terminal saisir les commandes suivantes :

sudo sed 's/USHARE_PORT=\
/USHARE_PORT=49200\
/' -i /etc/ushare.conf
sudo /etc/init.d/ushare restart

Avec Gufw qui est une interface graphique du gestionnaire de configuration UFW du pare-feu d'Ubuntu, on ajoute une règle du genre Allow Entrée TCP 192.168.1.15

Particularités selon le périphérique uPnP

Freebox

Rien d'autre à faire de plus que d'avoir activé le routeur et la fonction uPnP de la Freebox .(voir l'interface "gestion de votre compte" sur le site de Free.)

Freebox V5 et Crystal

Les dossiers partagés sont dans le menu de "gestion disque dur".

Pare-feu

Si vous avez votre Pare-feu d'activé, il vous sera nécessaire d'y autoriser uShare. dans ce cas, voir chapitre Configuration du Pare-feu.

Freebox Revolution

L'accès aux dossiers partagés se fait via le menu "Disques → Mes Disques"

Pare-feu

Si votre pare-feu est activé, ajouter la règle de pare-feu en saisissant dans un terminal la commande suivante :

sudo ufw allow proto tcp from 192.168.1.29 to any

Ou directement avec iptables :

sudo iptables -A INPUT -p tcp -i eth0 --dport 49200 -j ACCEPT 
sudo iptables -A INPUT -p udp -i eth0 --dport 49200 -j ACCEPT  
sudo iptables -A INPUT -s 239.255.255.250 -p udp -i eth0 --dport 1900 -j ACCEPT 

eth0 doit être adapté à votre réseau (cela peut-être wlan0, eth1, …)

Playstation 3

Si lors de l'accès à vos fichiers, ceux-ci sont annoncés comme « Données Non compatibles », c'est que l'option USHARE_ENABLE_DLNA dans le fichier de configuration est sur « No ». Il faut donc la modifier en « Yes ». Lors du lancement de uShare, celui-ci répertorie alors les fichiers en conséquence.

Démarrage du Service

L'initialisation automatique au démarrage d'Ubuntu se fait sur la base d'une configuration simple mais pour la Playstation 3, uShare doit être démarré avec les options :

Vous devez donc lancer uShare depuis un terminal avec la commande suivante :

ushare -d -D

Vous pouvez aussi vouloir rendre uShare actif au démarrage, Dans ce cas, depuis le menu de l'indicateur système dans la zone de notification de la barre supérieure du bureau :

  1. Choisir "Applications au démarrage…" puis cliquer sur "ajouter"
  2. Dans "nom", saisir ushare
  3. et dans "commande", saisir ushare -d -D
  4. Valider en cliquant sur "Ajouter".
Si on lance uniquement
ushare -d

Voici l'exemple d'un résultat qui s'affiche dans le terminal :

uShare (version 1.0), un serveur mutlimédia UPnP léger.
Benjamin Zores (C) 2005-2007, pour l'équipe GeeXboX.
Voir https://ushare.geexbox.org/ pour les mises à jour.
Initialisation du système UPnP ...
Démarre en mode compatibilité DLNA ...
Serveur Multimédia UPnP en écoute sur 192.168.2.13:49200
Envoi des informations UPnP du périphérique ...
Attente de connexions ...
Création de la liste de données
Recherche des fichiers dans le répertoire de contenus : /media/media/musique/
Recherche des fichiers dans le répertoire de contenus : /media/media/videos/
Recherche des fichiers dans le répertoire de contenus : /media/media/
27345 fichiers et sous-répertoires trouvés.

La commande reste "ouverte" dans le terminal, c'est pour cela qu'en rajoutant l'option -D (démon) la commande se lance sous forme de processus et on revient à l'invite du Terminal

On doit donc retrouver le contenu de nos partages sur les serveurs Multimédia : Photo, Musique et Vidéo.

Règle du pare-feu

Ajouter une nouvelle règle à votre pare-feu pour autoriser le service uShare (port 49200 par défaut) quand la source est l'adresse IP de votre Playstation 3 (exemple : 192.168.2.40)

Formats vidéos supportés par la PS3

La PS3 peut lire les DivX, reste à voir quelles sont les contraintes de la lecture DivX.

Attention, suite à la mise en place du système de protection de droits Cinavia avec le logiciel système 3.41, il est possible que la console refuse de lire le son de certaines vidéos (y compris DivX) si celles-ci n'ont pas de DRM associé.

Xbox 360

1er tutoriel

Avec les mises à jour de la Xbox 360 sur le live et celles de uShare, il est de plus en plus facile de visionner des vidéos sur sa télé en se servant de la Xbox.

Pour cela, suivez la paragraphe "Configuration basique en mode graphique" situé un peu plus haut. Il n'est pas nécessaire, pour votre premier test, de modifier les règles de votre pare-feu. Cela fonctionne très bien sans.

Une fois la configuration terminée, uShare est bien actif et il suffit, sur votre Xbox d'aller dans l'onglet "multimédia" puis "Vidéos". La dernière ligne est maintenant disponible et s'appelle Ushare (ou tout autre nom que vous avez donné lors de la configuration). Si votre Xbox vous met directement dans le répertoire "console", la touche X vous permet de changer de source afin de sélectionner le partage Ushare.

Si vous avez un problème à utiliser uShare en "tache de fond(daemon)", utilisez le via le terminal:
ushare -x

Cela activera uShare avec l'option -x qui permet d'activer la prise en charge de la Xbox.
Fermez le terminal quand vous n'aurez plus besoin d'uShare.

2ème tutoriel

(A tester si des problèmes surviennent avec le 1er tutoriel)
La Xbox 360 peut également utiliser les partages uShare. Le support de cette console n'est cependant pas parfait à l'heure actuelle : en effet, non seulement le fait de paramétrer "USHARE_ENABLE_XBOX=yes" dans le fichier "/etc/ushare.conf" ne fonctionne pas (aussi bien avec le démon qu'avec l'application), mais cela désactive la possibilité de l'activer manuellement en lançant le programme avec le paramètre "-x".

La solution est la suivante :

  1. Commenter (mettre un # devant la ligne) le paramètre "USHARE_ENABLE_XBOX" dans le fichier /etc/ushare.conf
  2. Éditer le fichier /etc/init.d/ushare, en ajoutant USHARE_OPTIONS="-x" dans la liste des variables. Le début du fichier devrait alors ressembler à ceci :
#!/bin/sh -e
#
# uShare init script
#
### BEGIN INIT INFO
# Provides:          ushare
# Required-Start:    $local_fs $syslog $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: uShare
# Description:       uShare UPnP (TM) A/V & DLNA Media Server
#                    You should edit configuration in /etc/ushare.conf file
#                    See http://ushare.geexbox.org for details
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/ushare
NAME=ushare
DESC="uShare UPnP A/V & DLNA Media Server"
PIDFILE=/var/run/ushare.pid
CONFIGFILE=/etc/ushare.conf
# On ajoute ici le paramètre de compatibilité Xbox 360
USHARE_OPTIONS="-x"

# abort if no executable exists
[ -x $DAEMON ] || exit 0

[...]

Le support Xbox 360 sera désormais activé (et fonctionnel !) à chaque démarrage du démon.

Si cela ne fonctionne toujours pas, suivez le troisième tutoriel de ce post post Traduction cî-dessous

3ème tutoriel

(A tester si des problèmes surviennent avec le 2ème tutoriel.)

  1. Mettez votre Xbox 360 à jour en la connectant au "xBox Live".
  2. Installer les bibliothèques requises libupnp-dev libdlna-dev. Puis dans un terminal, avec les commandes suivantes :
  3. Téléchargez et décompressez les sources de uShare
    wget https://ushare.geexbox.org/releases/ushare-1.1a.tar.bz2
    tar -xvf ushare-1.1a.tar.bz2
  4. Changez le fichier mime.c . Cela force à présenter les fichiers .avi comme des fichiers jouables sur la Xbox :
    cd ushare-1.1a/
    gedit src/mime.c
  5. Changez cette ligne :
    { "avi",   UPNP_VIDEO, "http-get:*:video/x-msvideo:"},

    Comme ça :

    { "avi",   UPNP_VIDEO, "http-get:*:video/x-ms-wmv:"},
  6. Maintenant configure, make, et install :
    ./configure --log --prefix=/usr --sysconfdir=/etc –disable-dlna
    make
    sudo make install
  7. Changez le fichier "/etc/ushare.conf" selon vos besoins. Vous devez indiquer le dossier de partage :
    sudo gedit /etc/ushare.conf
  8. Démarrez Ushare avec la compatibilité Xbox :
    ushare -x

    Et pour finir :

  9. Sur votre Xbox, allez à "media", puis sélectionnez "video", appuyez sur le bouton "X" pour sélectionner votre source de media. La Xbox devrait trouver votre serveur uShare.

Archos 605 Wifi

Le Archos 605 Wifi est lui aussi capable d'accéder à un réseau UPnP via sa connexion Wifi : une fois uShare correctement installé (cf Installation) et configuré (cf configuration), on le lance en tâche de fond :

 ushare -D 

(le mode DLNA (option -d) conseillé pour la PS3 ne semble pas nécessaire pour l'Archos)

Ensuite dans la section Photo, Vidéo ou Musique de l'Archos on sélectionne "Réseaux UPnP" et le partage devrait apparaître, donnant accès à tous les contenus du (des) répertoire(s) sélectionné(s) lors de la configuration.

NB : j'ai rajouté uShare dans le gestionnaire de session pour le lancer au démarrage et l'option -D ne semble alors pas nécessaire

Lecteur LG BD390

Une fois uShare correctement installé (cf Installation) et configuré (cf configuration), on le lance en tâche de fond en activant le mode de compatibilité DLNA avec l'option -d

 ushare -d -D 

Vous pouvez aussi vouloir rendre uShare actif au démarrage, Dans ce cas, depuis le menu de l'indicateur système dans la zone de notification de la barre supérieure du bureau :

  1. Choisir "Applications au démarrage…" puis cliquer sur "ajouter"
  2. Dans "nom", saisir ushare
  3. et dans "commande", saisir ushare -d -D
  4. Valider en cliquant sur "Ajouter".

Pour accéder à vos dossiers partagés lors de la configuration sélectionner Mes Medias dans l'interface du lecteur.

La lecture des fichiers .mkv est impossible en wifi

Tablette Acer Iconia Tab A500

Une fois uShare correctement installé (cf Installation) et configuré (cf configuration), on le lance en tâche de fond

 ushare -D 

Vous pouvez aussi vouloir rendre uShare actif au démarrage, Dans ce cas, depuis le menu de l'indicateur système dans la zone de notification de la barre supérieure du bureau :

  1. Choisir "Applications au démarrage…" puis cliquer sur "ajouter"
  2. Dans "nom", saisir ushare
  3. et dans "commande", saisir ushare -D
  4. Valider en cliquant sur "Ajouter".

Par contre sur la tablette en question, seul Skifta fonctionne correctement.

Questions fréquentes

Encodage à la volée

Existe-t-il des logiciels comme le logiciel Nero Media Home de Windows qui encodent à la volée?

–Elisa doit le permettre, mais cela ne fonctionne pas encore aujourd'hui (bug)

Vlc permet l'encodage à la volée, il est utilisé par Free pour le freeplayer (envoi de flux vidéo vers la Freebox)

Mediatomb supporte l'encodage a la volée…

Problèmes connus

Initialisation au démarrage d'Ubuntu

uShare est lancé automatiquement comme service au démarrage d'Ubuntu via le protocole des scripts system V. Il se fait sur la base d'une configuration simple, sans option. Voilà pourquoi certains appareils uPnP demandant des options ne pourront pas fonctionner correctement au démarrage.

Il semblerait qu'il y ait deux soucis avec le paquet installé:

  1. le nom du script /etc/init.d/ushare qui entre en conflit avec l’exécutable
  2. la priorité de démarrage (20 quand networking a une priorité de 40)

Une solution validée par l'auteur de cette section est:

sudo update-rc.d -f ushare remove
sudo mv /etc/init.d/ushare /etc/init.d/ushare.sh
sudo update-rc.d ushare.sh defaults 80

Dans le cas ou cela ne marche toujours pas, notamment si la connexion se fait par wifi et n'est pas immédiate, il peut être utile d'insérer une commande sleep 20 (pour attendre 20 secondes) dans le script /etc/init.d/ushare.sh juste avant la ligne :

start-stop-daemon --start --quiet --background --oknodo \

Solution pour faire fonctionner uShare en wifi avec Network Manager en évitant les sleeps aléatoires

Le service uShare tel qu'il est fourni en tant que package ne marche que lorsque on n'utilise pas de wifi et que le réseau est disponible au démarrage du service uShare.
Ci-dessous une solution :

  1. Installer le paquet standard à l'aide d'un terminal en saisissant la commande suivante :
    sudo apt-get   install -y ushare
  2. Supprimer le service en démarrage automatique pour le pas rentrer en conflit avec le démarrage automatique de session (voir ci-dessous)
    sudo update-rc.d -f ushare remove
  3. Configurer le fichier /etc/ushare.conf en partageant les dossiers Vidéos, Images et Musique de l'utilisateur principal
    sudo sed -i "s/^USHARE_NAME=.*/USHARE_NAME=$(hostname)/g"  /etc/ushare.conf
    sudo  sed -i  "s|^USHARE_DIR=.*|USHARE_DIR=$(echo $HOME)\/Vidéos,$(echo $HOME)\/Images,$(echo $HOME)\/Musique|g" /etc/ushare.conf
    sudo sed -i "s|^USHARE_IFACE=.*|USHARE_IFACE=$(ip a |grep "inet " |awk '{print $NF}'|egrep -v "lo|vir"|head -1)|g" /etc/ushare.conf
  4. Créer un tache de démarrage automatique sur la session de l'utilisateur principal
cat << EOF > ~/.config/autostart/ushare.desktop 

[Desktop Entry]
Type=Application
Exec=ushare -D
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[fr]=ushare
Name=ushare
Comment[fr]=
Comment=
EOF

Liens


Contributeurs: incoming, yvanxxx, Drekky, Mocto, cafecho.