ReadyMedia (anciennement MiniDLNA) est un serveur DLNA (UPnP) pour Linux, simple d'utilisation.
ReadyMedia permet de partager vos vidéos, votre musique, vos images… entre votre PC et votre console de jeux, votre téléphone portable ou votre télévision (la plupart sont compatibles).
Ce serveur DLNA a la réputation d'être très stable sous Debian et Ubuntu, contrairement à uShare qui peut dysfonctionner lors du passage d'une musique à l'autre, ou à mediatomb qui ne gère pas automatiquement les arborescences.
Le paquet étant disponible dans les dépôts, il suffit d'installer le paquet minidlna.
Le PC sur lequel vous installez ReadyMedia sera le serveur de fichiers : c'est lui qui les rendra disponibles sur votre réseau local, c'est à dire sur les PC et smartphones connectés à votre box internet. Si vous éteignez ce serveur, les fichiers ne seront plus accessibles.
Pour éviter une consommation d'énergie inutile, mieux vaut donc soit éteindre le serveur hors utilisation, soit avoir un PC à très faible consommation, par exemple un Raspberry Pi.
ReadyMedia est installé comme un service et sera lancé automatiquement quand votre ordinateur sera démarré. À priori, vous n'avez donc jamais à utiliser de commandes pour (re)lancer / stopper ce programme (surtout si vous avez laissé l'option de recherche automatique de nouveaux fichiers), cependant si besoin, voici les commandes à utiliser.
Pour redémarrer / arrêter / connâitre l'état de ReadyMedia :
sudo systemctl restart minidlna sudo systemctl stop minidlna sudo systemctl status minidlna
Pour reconstruire la base de données :
sudo systemctl restart minidlna
Par défaut, ReadyMedia (lorsqu'il a été installé depuis les dépôts) est exécuté automatiquement au démarrage de l'ordinateur en tant que service. L'utilisateur et le groupe par défaut du logiciel sont : minidlna.
Les répertoires situés dans /home/VOUS ne sont pas accessibles par défaut car le paramètre ProtectHome du service a la valeur on. Par contre, ReadyMedia accède naturellement au répertoire /var/lib/minidlna.
Pour pouvoir faire fonctionner ReadyMedia, il faut donc lui donner accès aux ressources souhaitées. Il existe plusieurs méthodes, en voici certaines :
Cette opération donne à ReadyMedia accès aux même fichiers que vous. Ceci présente un risque de sécurité : si un pirate prend le contrôle de l'utilisateur minidlna, il accède à toutes vos données.
sudo gpasswd -a minidlna $USER
Puis modifier le fichier de configuration :
sudo nano /etc/minidlna.conf
et insérez la / les ligne(s) du / des répertoire(s) que vous voulez rendre accessible(s). Par exemple :
media_dir=/home/VOUS/Musiquemedia_dir=/home/VOUS/Vidéos
où VOUS est à remplacer par votre nom d'utilisateur.
Cette méthode a l'avantage de ne donner aucun droit additionnel à ReadyMedia, ce qui est plus sûr. Elle utilise le répertoire /var/lib/minidlna (initialement vide), sur lequel ReadyMedia a tous les droits.
Créer un répertoire de montage par répertoire qu'on souhaite partager. Par exemple :
sudo mkdir /var/lib/minidlna/Vidéos
Rien à modifier dans /etc/minidlna.conf.
On monte le répertoire à partager dans le répertoire de montage qu'on vient de créer :
sudo mount --bind /home/$USER/Vidéos/ /var/lib/minidlna/Vidéos/
/etc/fstabsudo nano /etc/fstab
et en ajoutant à la fin une ligne par répertoire à partager – par exemple :
/home/VOUS/Vidéos /var/lib/minidlna/Vidéos none nofail,bind 0 0
où VOUS est à remplacer par votre nom d'utilisateur ($USER fonctionne dans un montage ponctuel, pas dans un montage fstab).
/var/lib/minidlna. Il ne les a pas sur /media ou /mnt. Si vous faites un montage dans ces répertoires, il faudra donc donner à ReadyMedia des droits additionnels.
Renouvelez cette opération avec d'autres répertoires que vous souhaiteriez partager. Par exemple /home/VOUS/Musiques ou /home/VOUS/Images.
Une fois les chemins à partager définis, et les droits d'accès donnés, vous pouvez redémarrer le service minidlna :
sudo systemctl restart minidlna.service
et tester son bon fonctionnement :
sudo systemctl --no-pager status minidlna.service
→ il ne doit pas y avoir de message d'erreur.
Reste à vérifier côté client (télévision ou autre) que vous accédez bien aux partages (souvent via le menu sources).
Dans le fichier /etc/minidlna.conf, la ligne media_dir=/home/VOUS/répertoire_partagé peut avoir une option. La lettre (P pour Photo, V pour Vidéo, ou A pour Audio) limite le type de fichier à afficher. Si le type de fichier n'est pas spécifié, tous les fichiers du répertoire sont listés. Un exemple avec les options :
# Path to the directory you want scanned for media files. media_dir=A,/home/toto/musique media_dir=V,/home/toto/videos
Ces options servent si des types de fichiers différents sont mélangés, sinon elles sont inutiles.
Toujours dans le fichier /etc/minidlna.conf on peut optionnellement personnaliser le nom (friendly_name) qui s'affichera côté client (sur la télévision, par ex.) :
friendly_name=Serveur DLNA de Toto
/etc/minidlna.conf est consultable dans les sources de l'application.
Voir le chapitre suivant pour changer l'utilisateur et le groupe avec lequel est exécuté ReadyMedia.
Selon la quantité de média que vous partagez, leur disponibilité pour vos appareils clients ne sera pas immédiate. On peut facilement croire à tort que seuls quelques premiers dossiers sont partagés, simplement parce que ReadyMedia n'a pas fini de tout analyser.
Par défaut, ReadyMedia (lorsqu'il a été installé depuis les dépôts) est exécuté automatiquement au démarrage de l'ordinateur comme un service.
L'utilisateur et le groupe par défaut utilisés sont : minidlna.
Les répertoires situés dans le répertoire personnel /home/$USER ne sont pas accessibles par défaut car le paramètre ProtectHome du service a la valeur on.
Cela bloque l'accès à vos fichiers de média s'ils sont dans votre /home.
S'ils sont ailleurs, cela les bloquera aussi s'ils ne sont pas accessibles en lecture pour tout le monde.
Il faut donc non seulement définir un ou des répertoires à diffuser dans /etc/minidlna.conf (par exemple avec des lignes comme media_dir=/home/votre_user/videos), mais il faut aussi en autoriser au moins la lecture à l'utilisateur minidlna.
Vous pouvez donner l'accès en lecture à tout le monde pour vos fichiers, par exemple :
sudo chmod a+rX /chemin/dossier/vidéos/
A ne jamais faire sur le /home/ dans son ensemble, ce serait un vrai danger en termes de sécurité. Sur un répertoire unique sans données confidentielles, ce peut être plus acceptable. Voir plutôt la méthode suivante avec systemd :
Pour ne pas modifier le fichier /usr/lib/systemd/system/minidlna.service, on crée un fichier complémentaire pour y changer l'utilisateur, le groupe et autoriser l'accès à /home/$USER.
D'abord créer le répertoire qui contiendra le fichier :
sudo mkdir /etc/systemd/system/minidlna.service.d
ensuite le fichier
sudo nano /etc/systemd/system/minidlna.service.d/run-as-user.conf
et y coller ce contenu:
[Service] User=mon_user Group=mon_user ProtectHome=off DynamicUser=no
en remplaçant mon_user par son nom d'utilisateur.
recharger la configuration de systemd :
sudo systemctl daemon-reload
et relancer le service :
sudo systemctl restart minidlna.service
Pour afficher la pochette d'un film, créer un fichier JPEG correspondant.
mon_film_en_HD.avi avec sa pochette nommée mon_film_en_HD.jpg.
Comme pour les TV Samsung, pour afficher la pochette d'un film, créer un fichier JPEG correspondant.
mon_film_en_HD.avi avec sa pochette nommée mon_film_en_HD.jpg.
L'image doit être au format 320 x 240 pixels pour un rendu correct.
Il conviendra de convertir le fichier png au format jpg (avec GIMP par exemple) pour que le serveur ReadyMedia les accepte.
Certains types de conteneurs vidéo embarquent une piste pour les sous-titres, qui ne s'affichent pas sur l'écran de télé (exemple : fichiers MKV).
Pour bénéficier des sous-titres, il suffit d'extraire cette piste (par exemple avec MKV Extractor GUI ) dans un fichier du même nom que le fichier vidéo (testé avec l'extension .srt), et de le placer dans le même dossier.
Si le serveur n'apparaît pas sur le client, il est possible de baisser la valeur de la ligne notify interval, par exemple à 60, c'est a dire qu'il va attendre 60 secondes pour lancer une recherche de media ajouté. Ceci peut régler le problème. Si cela ne fonctionne toujours pas, essayez avec 5 secondes. Exemple de ligne :
notify_interval=60
Si vous utilisez un pare-feu, il faudra le configurer pour que tout fonctionne correctement.
Avec gufw il vous suffit d'ajouter une nouvelle règle pour autoriser le service uPnP (port 8200 dans l'exemple) quand la source est l'adresse IP de vos équipements.
Exemple de mise en application pour un réseau sous Livebox
sudo ufw allow from 192.168.1.0/24 to any port 8200
DLNA fonctionne avec du matériel relativement récent. Sa documentation indique généralement sa compatibilité.
La liste suivante n'est pas exhaustive, mais ces périphériques sont compatibles :
home cinema :
casque VR :
Contributeurs : McPeter, ned.net, bruno, krodelabestiole.