DLNA

De The Linux Craftsman
Aller à la navigation Aller à la recherche

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:

Minidlna libraries.png

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:

Minidlna browse.png
Minidlna browse 1.png

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.

Minidlna renderer choice.png
Minidlna renderer choice 1.png