{{tag>Noble Focal partage UPnP DLNA}} ====== ReadyMedia (anciennement MiniDLNA) ====== **[[https://minidlna.sourceforge.net/|ReadyMedia]]** (anciennement **MiniDLNA**) est un serveur [[:DLNA]] ([[wpfr>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 [[:distributions#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. Sur Ubuntu (variante principale, [[:GNOME]]), un serveur DLNA/UPnP est déjà installé par défaut : **[[:Rygel]]**. On peut accéder à sa configuration depuis [[:gnome-control-center|GNOME Paramètres]] -> //[[:Partage]]// -> //Partage de médias//. ===== Installation ===== Le paquet étant disponible dans les [[:dépôts]], il suffit d'[[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>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. ===== Utilisation ===== ==== Principes simplifiés ==== - Installer **ReadyMedia** sur votre PC, qui doit être relié à votre réseau local (votre box internet). - Configurer l'outil pour définir à quoi le serveur DLNA peut accéder (par exemple votre répertoire de films, ou de musiques). - Le PC doit être allumé et **ReadyMedia** lancé. Le PC ne doit pas se mettre en veille pendant la diffusion. - Allez sur le périphérique qui doit afficher le film ou la musique. Il doit être relié à votre réseau local (votre box internet). - S'il est compatible DLNA et relié au réseau, il détecte automatiquement le serveur. Une télévision, par exemple, affichera la liste des films du répertoire PC que vous avez indiqué (côté télévision, c'est souvent via le menu "//sources//" qu'on peut accéder au serveur **ReadyMedia** / **MiniDLNA**). - Il reste à lancer le flux multimédia (photos, films, musiques, ...) choisi. - Un téléviseur va être normalement le contrôleur de diffusion (il la lance ou l'arrête), mais il peut être nécessaire d'avoir un appareil additionnel (une télécommande) pour certains matériels. - Si l'appareil client (télévision ou autre) n'implémente pas DLNA, il est parfois possible d'y installer une application proposant cette fonctionnalité. ==== Lancement de l'application ==== **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 ===== Configuration ===== 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 : ==== Ajouter ReadyMedia au groupe utilisateur ==== Cette méthode est déconseillée. Le serveur a ainsi accès à toutes les données de l'utilisateur, ce qui compromet sa sécurité. 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/Musique'' * ''media_dir=/home/VOUS/Vidéos'' où ''VOUS'' est à remplacer par votre nom d'utilisateur. ==== Utiliser le répertoire /var/lib/minidlna pour monter le ou les répertoires médias ==== 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 [[:montage|monte]] le répertoire à partager dans le répertoire de montage qu'on vient de créer : * **Montage ponctuel** (sera perdu au redémarrage du PC) :sudo mount --bind /home/$USER/Vidéos/ /var/lib/minidlna/Vidéos/ * **Montage permanent** en éditant le fichier ''[[:fstab|/etc/fstab]]''sudo nano /etc/fstabet 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 0où ''VOUS'' est à remplacer par votre nom d'utilisateur (''[[:variables_d_environnement|$USER]]'' fonctionne dans un montage ponctuel, pas dans un montage ''[[:fstab]]''). **ReadyMedia** a par défaut les droits sur ''/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''. ==== Finalisation ==== //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//). ==== Astuces ==== 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 ==== Fichier minidlna.conf ==== Le contenu original du fichier ''[[https://sourceforge.net/p/minidlna/git/ci/master/tree/minidlna.conf|/etc/minidlna.conf]]'' est consultable dans les [[https://sourceforge.net/p/minidlna/git/ci/master/tree/minidlna.conf|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. ===== Autre options ===== ==== Configuration de l'utilisateur et groupe ==== 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 [[:arborescence#répertoire personnel]] ''[[:arborescence#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 [[:permissions|autoriser]] au moins la lecture à l'utilisateur ''minidlna''. === Modifier les droits des fichiers eux-mêmes === 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 : === 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 à ''[[:arborescence#repertoire_personnel|/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 ==== Pochettes de films ==== === Pour TV Samsung === Pour afficher la pochette d'un film, créer un fichier JPEG correspondant. Exemple : ''mon_film_en_HD.avi'' avec sa pochette nommée ''mon_film_en_HD.jpg''. === Pour la PS3 === Comme pour les TV Samsung, pour afficher la pochette d'un film, créer un fichier JPEG correspondant. Exemple : ''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. ==== Vidéos avec pistes de sous-titre ==== 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 [[wpfr>matroska|MKV]]). Pour bénéficier des sous-titres, il suffit d'extraire cette piste (par exemple avec [[:mkv_extractor_gui_v4|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. Les sous-titres fonctionnent comme testés sur une TV Panasonic TX-PF50G30 mais ne sont pas supportés par la Freebox Revolution (v6) sur le même serveur et le même film. ===== Problèmes connus ===== ==== Le PC n'apparaît pas sur la télévision ==== 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 ==== Configuration du Pare-feu ==== 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 ===== Matériel client testé ===== 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 : * Décodeur TV UHD86 à travers LiveBox mini 2 * Décodeur TV UHD87 avec livebox play 3 * BBox Fibre TV * Cambridge Audio Streamer 6 * Freebox HD * Freebox Revolution * IPHONE 3G * IPAD (divers logiciels dont Airplay) * LG DP1B (mise à jour nécessaire : juillet 2011) * Lecteur Blu Ray disc3D LG BX580 lecture de tous ce que j'ai pu tester (image video, music, MKV, MP4, MP3 DivX6 H.264/MPEG4 ,MPEG ,JPEG) aucune restriction pour le moment. * LiveBox (décodeur TV4) * Neuf Box SFR (NB4-MAIN-R3.1.10) * Netbox * Numericable LaBox (sauf .srt, ou alors [[http://ehc.ac/p/minidlna/patches/129/|via un patch]]) * Orange Liveradio Vintage (poste de radio FM/Wifi webradio + dlna) * Onkyo TX-8050 amplificateur / lecteur réseau * Onkyo CR-N765 amplificateur / lecteur CD et réseau * Oppo BDP-93EU * Philips NetTV 40FLH7605H (Play/Pause/FW/RW OK, musique et photos OK, Video sans sous-titres) * Samsung Galaxy'S GT-I9000 (Lecture Xvid,Divx,Mkv) * Samsung TV LCD LE32D550 * Samsung TV LCD LE40B651 * Samsung TV LCD LE40C630 * Samsung TV LED UE40D5000 et UE46D5700 * Samsung TV LED UE40JU6400 * Samsung TV LED Série 6 (UE32C6000) * Samsung TV LED Série 6 (UE40H6400) * Samsung TV LED Série 6 (UE46ES6300) * Samsung TV LED Série 6 (UE50ES6900) * Samsung TV LED Série 7 (UE40B7000) * Samsung TV LED Série 7 (UE46F7000) * Samsung TV LED Série 7 (UE65MU7055) * Samsung TV LED 3D UE40C7700 * Samsung TV LED 3D 40UE6030 * Samsung Home cinéma HT C5500 * Sony Bravia kdl (limitations aux formats reconnus par la TV) * Sony BDV E370 3D Ready (Home cinema Bluray, DVD, Xvid, Divx, etc) * Sony BDP-S370 (MKV, MPEG4, XViD, DiVX5 et VIDEO_TS/MPEG2 Firmware version M03.R.769) * Sony Playstation 3, Sony Playstation 4 * Panasonic TX-P42ST50E * Panasonic 58-DX730 * TELEFUNKEN 41,9" Wide Screen LED DIGI TV(téléviseur 3D LED entrée de gamme) * TABBEE * XBOX 360 (Différentiation des Vidéos, Musique et Image et lecture du MPEG4) * Application Android HouseMedia * Awox StriimLINK * chaine DENON CEOL * Ampli Denon AVR-3313 * Yamaha R-N602 * Yamaha WXC-50 * Google Chromecast (v1) * Google Chromecast Audio home cinema : * Samsung HT D5100 * Samsung HT D7100 * Samsung HT F5200 * LG HB806SH casque VR : * Oculus GO ---- //[[:Contributeurs]] : [[:utilisateurs:McPeter]], ned.net, bruno, [[:utilisateurs:krodelabestiole]].//