Afin de pouvoir diffuser le contenu du disque dur de mon Raspberry Pi en streaming DLNA sur mon réseau local, j’ai décidé d’installer MiniDLNA (qui s’appelle maintenant Ready Media).
Grâce au DLNA, tous les appareils multimédia connectés sur le réseau local (SmartTV, PlayStation, X-Box, iPad, Mac, PC, …) ont facilement accès aux médias (sons, photos, vidéos) partagés par le Raspberry Pi.
Tout ça sans aucune configuration complexe sur les clients puisque ceux-ci découvrent la source grâce au protocole UPnP. Il suffit par exemple de posséder une TV compatible DLNA, de sélectionner le film à regarder dans le menu et … zou… la soirée popcorn ! 😉
Pour l’installation, rien de plus simple :
On commence avec une petite mise à jour du Pi :
$ sudo apt-get update && sudo apt-get upgrade
Et on installe MiniDLNA avec cette commande :
$ sudo apt-get install minidlna
Et l’installation commence :
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libavcodec53 libavformat53 libavutil51 libdirac-encoder0 libgsm1 libmp3lame0 libschroedinger-1.0-0 libtheora0 libva1 libx264-123 libxvidcore4 Les NOUVEAUX paquets suivants seront installés : libavcodec53 libavformat53 libavutil51 libdirac-encoder0 libgsm1 libmp3lame0 libschroedinger-1.0-0 libtheora0 libva1 libx264-123 libxvidcore4 minidlna 0 mis à jour, 12 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 5 184 ko dans les archives. Après cette opération, 12,2 Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ?
Une fois l’installation terminée, on va éditer le fichier de configuration de MiniDLNA :
$ sudo nano /etc/minidlna.conf
Dans le fichier, on va rechercher, décommenter et modifier les lignes suivantes afin de donner le chemin menant aux médias :
media_dir=A,/repertoire/musique media_dir=P,/repertoire/photos media_dir=V,/repertoire/video
Où A = Audio, P = Photos et V = Vidéos. Il est possible de mettre plusieurs lignes V (par exemple) si vos vidéos sont dispersées à plusieurs endroits. Les sous-répertoires sont automatiquement pris en compte.
Par défaut, un minuscule serveur web est accessible par le port 8200 à l’adresse IP du Raspberry Pi :
# Port number for HTTP traffic (descriptions, SOAP, media transfer). port=8200
Il est possible de personnaliser le nom du serveur qui s’affichera sur le client :
# Name that the DLNA server presents to clients. friendly_name=RPi DLNA Server
Enfin, il est possible de définir quels types de médias seront présents à la racine de l’arborescence. Ceci permet de ne présenter que le dossier Vidéo par exemple :
# Use a different container as the root of the directory tree presented to # clients. The possible values are: # * "." - standard container # * "B" - "Browse Directory" # * "M" - "Music" # * "P" - "Pictures" # * "V" - "Video" # if you specify "B" and client device is audio-only then "Music/Folders" will be used as root #root_container=. root_container=V
Par défaut, MiniDLNA s’exécute avec en tant que minidlna:minidlna
. On peut le vérifier avec cette commande :
$ groups minidlna
Retournera :
minidlna : minidlna
Si vos dossiers médias appartiennent à l’utilisateur pi
et au groupe pi
, on peut ajouter l’utilisateur minidlna
au groupe pi
avec cette commande :
sudo usermod -a -G pi minidlna
Attention ! : Ne pas oublier « -a » sinon, l’utilisateur sera SUPPRIMÉ de ses anciens groupes pour l’ajouter au nouveau !
Et si vous voulez lire les fichiers stockés dans le dossier torrents de transmission-daemon, vous devrez ajouter l’utilisateur minidlna
au groupe debian-transmission
:
sudo usermod -a -G debian-transmission minidlna
Maintenant, la commande :
$ groups minidlna
Retournera :
minidlna : minidlna pi debian-transmission
En effet, l’utilisateur minidlna
appartient maintenant à 3 groupes : minidlna
(son groupe de base), pi
et debian-transmission
Pour prendre en compte toutes les modifications, il va falloir redémarrer le serveur et reconstruire la base de données :
$ sudo service minidlna restart $ sudo service minidlna force-reload
Et en mémo, voici les commandes proposées par MiniDLNA :
Pour redémarrer / arrêter / voir l’état :
sudo service minidlna restart sudo service minidlna stop sudo service minidlna status
Pour reconstruire la base de données :
sudo service minidlna force-reload
Et enfin, pour ne pas être obligé de reconstruire la base de données à chaque fois que vous ajoutez des médias :
# Automatic discovery of new files in the media_dir directory. inotify=yes
Références :