DLNA
Introduction
La Digital Living Network Alliance, abrégé sous le sigle DLNA, est une alliance de plus de 250 sociétés, fabricants d'appareils électroniques, de périphériques informatiques, d'ordinateurs personnels, de téléphones mobiles et opérateurs de services et de contenus.
DLNA définit un standard d'interopérabilité permettant la lecture, le partage et le contrôle d'appareils multimédia indépendamment de leur marque ou de leur nature. [1]
Les acteurs
Tous les intervenants DLNA sont appelés des acteurs. Ces acteurs, qui peuvent être sur le même équipement, sont regroupés en quatre familles :
- server;
- player;
- renderer;
- controller.
Digital Media Server (DMS)
Ces appareils fournissent les contenus numériques et leurs listes aux players (DMP) et aux renderers (DMR) (eg: un PC, un NAS, ...)
Digital Media Player (DMP)
Ces appareils peuvent trouver des contenus numériques sur le réseau (depuis les serveurs DMS), les lister et les jouer (eg: télévision compatible DLNA, système Home Cinema ou consoles de jeux)
Digital Media Renderer (DMR)
Ces appareils décodent et jouent des contenus numériques envoyés par des contrôleurs (DMC) (eg: télévision compatible DLNA, haut-parleur contrôlable à distance, ...)
Digital Media Controller (DMC)
Ces appareils permettent de parcourir les contenus proposés par les serveurs (DMS) et de les faire jouer par les renderers (eg : application mobile de télécommande pour smartphone).
Digital Media Printer (DMPr)
Ces appareils permettent généralement aux players (DMP) et aux contrôleurs (DMC) d'imprimer des contenus
Protocole
Découverte
Quand un périphérique est connecté au réseau, le protocole de découverte d'UPnP permet à ce dispositif de prévenir les points de contrôle du réseau de ses services. Parallèlement, quand un point de contrôle est connecté au réseau, le protocole de découverte permet à ce point de contrôle de rechercher les dispositifs intéressants sur le réseau. Les échanges fondamentaux dans ces deux cas, sont des messages contenants les informations spécifiques essentielles sur le dispositif et un de ses services, comme son type, son identifiant ou un pointeur vers des informations plus détaillées. Le protocole de découverte UPnP est basé sur SSDP qui utilise le port UDP 1900, en unicast ou multicast. L'adresse multicast utilisée en IPv4 est 239.255.255.250.
Contrôle
Après qu'un point de contrôle ait reçu une description du dispositif, celui-ci peut envoyer des actions au service d'un dispositif. Pour cela, un point de contrôle envoie un message de contrôle approprié à l'URL de contrôle du service (fournie par la description du dispositif). Les messages de contrôle sont également décrits en XML en utilisant SOAP. Comme tout appel de fonction, en réponse aux messages de contrôle, les services renvoient des valeurs spécifiques aux actions. Les effets de ces actions, le cas échéant, sont visibles par le changement des variables qui décrivent l'état d'exécution du service.
Plus d'informations ici
Installation d'un DMS avec MiniDLNA
Configuration du pare-feu
Tout d'abord il faut ouvrir les port suivants:
- UDP 1900
- TCP 8200
# iptables -I INPUT 2 -p tcp --dport 8200 -j ACCEPT # iptables -I INPUT 2 -p udp --dport 1900 -j ACCEPT # service iptables save
Installation des dépendances
Il faut installer le dépôt RepoForge.
Ensuite, il faut installer les librairies nécessaires à la compilation de minidlna:
yum install {flac,libogg,libid3tag,libexif,sqlite,ffmpeg,libvorbis,libjpeg}-devel gcc
Installation de MiniDLNA
# yum install http://repo.iotti.biz/CentOS/6/x86_64/minidlna-1.1.1-1.el6.lux.1.x86_64.rpm
Ajout de l'utilisateur à un groupe
Il ne faut pas oublier que minidlna doit pouvoir accéder au contenu. Pour cela, il faut l'ajouter à un groupe qui posséde les droits:
ls -l /opt drwxrwx---. 15 jcf locaux 4096 May 8 02:20 Films drwxrwx---. 15 jcf locaux 4096 May 8 02:20 Musique drwxrwx---. 15 jcf locaux 4096 May 8 02:20 Photos
Si on regarde l'utilisateur minidlna, il ne fait pas parti du groupe locaux
# id minidlna uid=495(minidlna) gid=495(minidlna) groups=495(minidlna)
Il faut donc le rajouter à ce groupe:
# usermod -G example_group minidlna # id minidlna uid=495(minidlna) gid=495(minidlna) groups=495(minidlna),500(locaux)
Configuration
#vi /etc/minidlna.conf user=minidlna media_dir=A,/opt/Musique media_dir=V,/opt/Films media_dir=P,/opt/Photos friendly_name=san db_dir=/opt/minidlna
Préparation des dossiers
Avant de démarrer minidlna, il faut préparer l'arborescence:
# mkdir /opt/minidlna # chmod 755 /var/log/minidlna /var/cache/minidlna /opt/minidlna
Premier démarrage
N'oublions pas de démarrer et d'enregistrer minidlnad dans le chargeur de démarrage:
- Pour SystemVInit:
service minidlnad start chkconfig minidlnad on
- Pour SystemD:
systemctl start minidlnad.service systemctl enable minidlnad.service
Vous devriez pouvoir accéder au contenu partagé depuis un périphérique Android grâce à l'application UPnPlay
Utilisation d'un DMP grâce à UPnPlay
Sous Android vous pouvez utiliser l'application UPnPlay pour parcourir le contenu d'un DMS Cette application va vous permettre de voir les DMS sur votre réseau:
Aperçu des bibliothèques
Lorsque votre DMS est correctement configuré, les bibliothèques sont correctement générées et peuvent être parcourues sur votre DMP:
→ |
Choix du DMR
Lorsque sur votre réseau vous avez plusieurs DMR (renderer), vous avez le choix de sélectionner sur quel périphérique vous souhaitez faire le rendu.
→ |