A la découverte de la suite dleyna

62 %
38 %
Information about A la découverte de la suite dleyna
Technology

Published on March 11, 2014

Author: thierryg35

Source: slideshare.net

Description

A la découverte des composants upnp / dlna de la suite dleyna

A la découverte de la suite dleyna Thierry GAYET http://www.nextinnovation.org Upnp/dlna, voilà deux protocoles qui deviennent de plus en plus dans le monde du multimedia. Il y a quelque temps Intel avait publié un ensemble de composants offrant une suite complète à la gestion de contenu et c'est ce que je propose de découvrir. 1. L'universal Plug&Play pour l'audio et la vidéo (aka upnp av) L’Universal Plug and Play (UPnP) est un protocole réseau promulgué par l'UPnP Forum. Le but de l'UPnP est de permettre à des périphériques de se connecter aisément et de simplifier la mise en œuvre de réseaux à la maison (partages de fichiers, communications, divertissements) mais aussi pour les entreprises. UPnP le permet en définissant et en publiant les protocoles de commande UPnP au-dessus des standards de communication de l'Internet. Le terme UPnP est dérivé de Plug and Play, une technologie pour attacher dynamiquement les périphériques à l'ordinateur. La compatibilité de matériels avec l'UPnP s'est développée durant la fin des années 2000. Par exemple en France, chez le fournisseur d'accès à internet Orange c'est à partir de la Livebox 2, sortie en 2009, que la box de ce FAI a inclus la fonction UPnP1. 1.1 Architecture L'architecture UPnP2 permet une mise en réseau poste à poste d'ordinateurs personnels, d'appareils réseaux et de périphériques sans fil. C'est une architecture ouverte, distribuée, basée sur les protocoles TCP/IP, UDP et HTTP. UPnP permet la communication entre deux dispositifs quelconques sur le réseau local. Parmi ses possibilités il offre une indépendance vis-à-vis des médias et des périphériques : UPnP peut être utilisé sur plusieurs supports dont le courant porteur en ligne, l'Ethernet, l'IrDA, les radiofréquences (Wi-Fi, Bluetooth), FireWire, MoCA. Aucun pilote spécifique n'est utilisé, des protocoles communs leur sont préférés : • Contrôle par interface utilisateur (UI Control). L'architecture d'UPnP permet le contrôle des dispositifs par une interface utilisateur visible depuis un navigateur web. • Indépendance vis-à-vis du système d'exploitation et du langage de programmation. Tout système d'exploitation et tout langage de programmation peut être utilisé pour créer des produits UPnP. UPnP ne spécifie ni ne contraint d'API pour les applications exécutées sur des points de contrôle ; les fournisseurs de systèmes d'exploitation peuvent créer les API dont les clients ont besoin. • Basé sur les technologies internet : entre autres IP, TCP, UDP, HTTP et XML. • Contrôle applicatif. L'architecture d'UPnP permet également un contrôle par des applications conventionnelles, des programmes.

• Extensibilité. Chaque produit UPnP peut implémenter des services spécifiques à ses périphériques au-dessus de l'architecture de base. L'architecture UPnP supporte la zéro configuration, le « réseau invisible » et la découverte automatique pour plusieurs catégories de périphériques. Chaque périphérique peut joindre dynamiquement un réseau, obtenir une adresse IP, annoncer son nom, préciser ses possibilités sur simple demande et interroger les autres périphériques sur leur présence et leurs capacités. Les serveurs DHCP et DNS sont facultatifs et ne sont utilisés que s'ils sont présents sur le réseau. Les périphériques peuvent se déconnecter du réseau automatiquement sans laisser d'informations erronées. La base du réseau UPnP est l'adressage IP. Chaque périphérique doit avoir un client DHCP et rechercher un serveur DHCP quand il est connecté pour la première fois au réseau. Si aucun serveur DHCP n'est disponible, c'est-à-dire que le réseau n'est pas géré, le périphérique s'assigne lui-même une adresse. Si, durant les transactions DHCP, le périphérique obtient un nom de domaine, par exemple, par un serveur DNS ou via le DNS forwarding, le périphérique devrait utiliser ce nom pour chaque opération réseau sinon il doit utiliser son adresse IP. 1.2 Le protocole 1.2.1 Découverte (« Discovery ») Pour une adresse IP donnée, la première étape de la gestion d'un réseau UPnP est la découverte de services. 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, par exemple, son type, son identifiant ou un pointeur vers des informations plus détaillées. Le protocole de découverte UPnP est basé sur SSDP. 1.2.2 Description L'étape suivante dans un réseau UPnP est la description. Quand un point de contrôle a découvert un dispositif, il ne lui connaît que peu d'informations. Pour qu'un point de contrôle puisse en apprendre davantage sur le dispositif et ses possibilités, ou pour interagir avec celui-ci, il doit récupérer la description du dispositif depuis l'URL fournie par celui-ci dans le message de découverte. La description UPnP d'un dispositif est exprimée en XML et comprend des informations spécifiques au fournisseur du dispositif comme le nom du modèle, le numéro de série ou le nom du fournisseur, des URL vers les sites web des fournisseurs. Ces descriptions incluent également une liste des dispositifs embarqués ou services ainsi que les URL pour les commandes, les contrôles ou les présentations. Pour chaque service, la description inclut une liste de commandes ou d'actions auxquelles le service répond et les paramètres ou arguments pour chacune de ces actions. La description de service inclut également la liste des variables décrivant l'état de ce service pendant son exécution en termes de types de données, de plage de valeurs ou de caractéristiques d'évènements. 1.2.3 Contrôle (« Control ») L'étape suivante est le contrôle. Après qu'un point de contrôle ai 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. 1.2.4 Notification d'événements (« Event notification ») Après le contrôle vient la notification d'évènement. Une description de service UPnP inclut une liste d'actions auxquelles le service répond et une liste des variables qui caractérisent le service à l'exécution. Quand ses variables changent, le service publie des mises à jour. Les mises à jour sont des messages XML de type GENA contenant le nom des variables et leurs valeurs. Les points de contrôles peuvent s'abonner pour les recevoir : un message initial particulier est envoyé quand un point de contrôle s'inscrit, ce message contient les noms et les valeurs de toutes les variables pour permettre à l'abonné de s'initialiser. Pour supporter les scénarios de réseaux à plusieurs points de contrôle, la notification est prévue pour que tous les points de contrôles soient informés uniformément des effets de chaque action. En conséquence, tout abonné reçoit des messages d'évènements pour toutes les variables « notifiantes » qui ont changé et des messages d'événements sont envoyés, quelle que soit la raison pour laquelle l'état de la variable a changé (que le changement soit le résultat d'une action ou parce que l'état du service a changé). La dernière étape d'un réseau UPnP est la présentation. Si un dispositif a une URL de présentation, un point de contrôle peut recevoir une page depuis cette URL, charger la page dans un navigateur web et, selon les capacités de la page, permettre à un utilisateur de contrôler le dispositif et/ou de voir l'état d'un dispositif. Les possibilités d'une telle page peuvent changer en fonction des capacités du périphérique qui présente la page à l'utilisateur. 1.2.5 Standards audio et vidéo (« UPnP AV standards ») UPnP AV (pour UPnP Audio and Video) est un groupe à l'intérieur du standard UPnP supervisé par la DLNA (anciennement : Digital Home Working Group), qui est un regroupement de constructeurs et vendeurs de l'industrie du divertissement à la maison (home entertainment) proposant le label « DLNA CERTIFIED™ » (« Certifié DLNA ») pour les produits qui respectent leur guide d'interopérabilité pour périphériques réseau. Les membres du forum DLNA « partagent une vision de l'interopérabilité sur les réseaux câblés et sans-fils des ordinateurs personnels (PC), des matériels électroniques (Consumers Electronics - CE) et des périphériques mobiles à la maison permettant un environnement transparent (pour l'utilisateur) de partage et d'extension des nouveaux médias et des services de contenu » et « DLNA est attaché à fournir un cadre d'interopérabilité des guides de conception basés sur les standards ouverts de l'industrie pour compléter la convergence numérique. » Le 12 juillet 2006, le Forum UPnP a annoncé la disponibilité des « Spécifications étendues AV », cette réalisation est la version 2 des spécifications Audio et Vidéo3, avec de nouvelles classes MediaServer version 2.0 et un MediaRenderer version 2.0. Ces perfectionnements sont créés par l'ajout de possibilités aux classes de dispositifs MediaServer et MediaRenderer permettant un meilleur niveau d'interopérabilité entre les MediaServers et MediaRenderers de différents constructeurs. Les composants audio et vidéo d'UPnP AV : • UPnP MediaServer DCP : le serveur UPnP (un dispositif « esclave ») qui partage ses médias (comme l'audio, la vidéo, des images) avec les clients UPnP du réseau. • UPnP MediaServer ControlPoint : le client UPnP (un dispositif « maitre ») qui peut détecter automatiquement les serveurs UPnP du réseau pour rechercher et visionner leurs fichiers. • UPnP MediaRenderer DMR : dispositif « esclave » pouvant afficher du contenu. • UPnP MediaRenderer DMP : dispositif pouvant afficher du contenu, mais pas en mode esclave.

• UPnP RenderingControl DCP : dispositif permettant de contrôler les paramètres de rendu d'un contenu : volume, brillance ... • UPnP Remote User Interface (RUI) client/server : clients et serveurs UPnP qui peuvent envoyer des commandes sur le réseau (comme enregistrer, programmer, lecture, pause, stop, etc.). • QoS (Quality of Service) : la QoS est un service important (mais non obligatoire) pour l'utilisation d'UPnP AV. QoS se réfère au contrôle des mécanismes proposant différentes priorités aux différents utilisateurs des flux de données, ou garantit un certain niveau de performance à un flux de données en accord avec les requêtes des applications. Étant donné que l'UPnP AV est généralement utilisé pour délivrer des médias en lecture en continu, les garanties QoS sont spécialement importantes si le réseau a une capacité limitée comme, par exemple, les réseaux publics comme l'Internet. 1.2.6 Traduction des adresses UPnP utilise Internet Gateway Device (IGD) pour la traduction des adresses réseaux (NAT traversal). Cette traduction permet aux paquets UPnP de passer à travers un routeur ou un pare- feu sans problèmes et sans interaction de l'utilisateur (si le routeur ou le pare-feu supporte NAT). 2. La Digital Living Network Alliance (aka DLNA) 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. Samsung a surnommé ce système All Share. Le premier brevet faisant référence à un téléviseur relié à un réseau date de 19943. Il fut étendu l'année suivante à l'Europe puis aux États Unis4. 2.1 Standards et dispositifs techniques Bien que les cas d'utilisation les plus répandus de DLNA (2011) ressemblent à du client/serveur la norme fait de tous des « acteurs », certains pouvant être sur le même équipement du réseau : server, player, renderer et controller. Explication de cette terminologie : • Digital Media Server (DMS) : Ces appareils fournissent les contenus numériques et leur liste aux players (DMP) et aux renderers (DMR) (ex: un PC, un NAS; voir plus loin) ; Un serveur de médias UPnP propose principalement 2 services: • Service d'annuaire contenu (CDS) à la liste de son contenu ;

• Service Connection Manager (CMS) ; • 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 (ex: télévision compatible DLNA, système Home Cinema ou consoles de jeux) ; Un DMP permet de rechercher le(s) DMS sur le réseau local, parcourir leur contenu et les jouer. C'est pourquoi il met en œuvre une PPSM, qui va interagir avec le DMS, un composant de décodage audio et vidéo et un client HTTP à demander et écouter les médias. • Digital Media Renderer (DMR) : Ces appareils décodent et jouent des contenus numériques envoyés par des contrôleurs (DMC) (ex: télévision compatible DLNA, haut- parleur contrôlable à distance (remote speaker)…) Un DMR peut être contrôlé par un dispositif qui met en oeuvre un MRCP (Media Render Control Point). Un moteur de rendu multimédia UPnP offre trois services: • Service Connection Manager (CMS) ; • A / V Service de transport (AVT) ; • Rendu service de contrôle (RCS) pour contrôler le DMR ; • 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 (ex : application mobile de télécommande pour smartphone).

Un DMC est composé de deux composants principaux: • une PPSM UPnP pour contrôler un DMS • un CPRM UPnP pour contrôler un DMR Un M-DMC (Mobile-DMC) a une spécificité supplémentaire: il pourrait être mis en œuvre sur le bluetooth. • Digital Media Printer (DMPr) : Ces appareils permettent généralement aux players (DMP) et aux contrôleurs (DMC) d'imprimer des contenus (ex : imprimante réseau). • Upload : Certains appareils ont la capacité supplémentaire à télécharger leurs médias (photo, vidéo) sur un DMS. Mais chaque DMS n'a pas permis à cette fonctionnalité. • Download :

Comme dans le cas de téléchargement, un certain dispositif ont la capacité de télécharger du contenu à partir de la DMS. Mais les DMS doivent implémenter cette fonctionnalité. 2.2 Protocoles utilisés DLNA s'appuie sur plusieurs standards depuis WiFi, Ethernet et MoCA (en) pour la couche physique, UPnP Device Architecture pour la découverte et le contrôle, UPnP AV pour la gestion des média, IP pour la couche réseau, HTTP pour la couche transport, XML pour la couche présentation, une gamme étendue de standards sur les formats audio, vidéo et images fixes, et enfin DTCP-IP pour la protection des médias lors du transport. 2.3 Entreprises et produits AwoX, Broadcom, Intel, Microsoft, Nokia, Samsung, Sony, et Technicolor5 forment le conseil d'administration de DLNA, avec 250 autres membres. DLNA certifie des PC, des smartphones, des tablettes, des téléviseurs, depuis 2005. Plus de 19'000 modèles de base ont été certifiés, soit près d'un milliard d'appareils vendus dans le monde. DLNA est notamment utilisé par la console Xbox360 et PlayStation 3, par la plupart des téléviseurs Philips, Sony, Samsung, LG, Panasonic et Toshiba, pour se connecter à des serveurs multimédia sur le réseau local comme les PCs Acer, LG, Nec, Sony, les disques durs Buffalo, Promise, Seagate, Synology, ou les téléphones LG, Nokia, Samsung et Sony Ericsson. Le son haute-fidélité devient également compatible DLNA. De nombreux fabricants ont lancé à partir de 2012, des enceintes HIFI lisant directement les flux audio DLNA, Airplay et webradio tels que Bang et Olufsen, Bose, Cabasse, etc. 3. Les logiciels disponibles 3.1 Serveurs Parmis les serveur UPNP av on peut citer en version libre ou gratuit : • Plex Media Server ce serveur multimédia basé sur une architecture client/serveur, disponible pour de nombreuses plateformes, a ajouté depuis la version v0.9.6.1 (mai 2012) un serveur UPnP/DLNA. Il fonctionne sous Windows, Mac et Linux ; • FreeMi UPnP Media Server ce serveur UPnP est un serveur très simple, très léger pour la FreeBox. Il fonctionne sous Windows, Mac et Linux. Développé avec le Framework 2.0 .Net (Mono pour Linux) ; • Xbox Media Center (XBMC), un lecteur multimédia/Media Center libre et gratuit pour la console de jeux Xbox de Microsoft, ainsi que sur MAC OS X, Windows et Linux. (Suppression de la fonction server UPnP AV depuis la version 9.11). Le code des clients et serveurs UPnP de la XBMC est extrait de Platinum UPnP C++ SDK (libre sous Licence publique générale GNU) ; • Home Player un logiciel gratuit, facile d'installation et qui intègre en même temps la technologie Freeplayer de Free ; • FreeNAS un système d'exploitation libre permettant de transformer un ordinateur (basé sur x86) en périphérique de stockage réseau (NAS). Le code du serveur UPnP est tiré du projet Portable Universal Plug and Play (UPnP) SDK ; • MythTV, un HTPC et PVR pour Linux avec un serveur de médias incorporé ; • PyMedS un serveur de médias libre en Python pour Windows/Mac OS X/Linux/UNIX • GeeXboX un media center léger libre pour Linux ; • MediaTomb un serveur de médias libre et gratuit pour Linux, Mac OS X, FreeBSD et

Cygwin qui peut aussi lancer des services NAS ; • MiniDLNA un serveur de médias libre et gratuit pour Linux intégré dans certains NAS et aux Samsung LE40B650, Sony Bravia 46W4500, compatible PS3 ; • Fuppes serveur de médias libre et gratuit, supporte l'encodage de divers formats audio en mp3 ; • SimpleCenter est un serveur de médias en Java ; • Coherence un framework python UPnP/DLNA offrant également un serveur de médias libre. Disponible pour BSD/Linux/Windows ; • Opera Unite un serveur web gratuit inclus dans le navigateur web Opera. Disponible pour BSD/Linux/Solaris/Windows/Mac OS X/… ; • Media Server est un serveur UPnP/DLNA (sous licence GNU) écrit en Java et originalement dédié à la console de jeux PS3. Il intègre des possibilité de transcodage permettant de lire tous types de médias sur un renderer DLNA (TV, console de jeux, …) ; • Serviio est un serveur UPnP/DLNA écrit en Java. Il est disponible pour Linux, Windows et Mac Os X. Il permet le transcodage de tous types de médias sur un renderer DLNA (TV, console de jeux, …) ; • Dleyna, une suite développé en open source par Intel 3.2 Control point Parmis les points de contrôle UPNP av on peut citer en version libre ou gratuit : • VLC media player lecteur multimédia libre issu du projet VideoLAN. • Totem (avec le greffon approprié « Client DLNA »), lecteur multimédia libre pour Linux, Solaris, BSD et Unix. • XBMC client libre et gratuit, lecteur multimédia/Media center pour la Xbox de Microsoft. Le clients et serveurs UPnP de XBMC sont construits autour de Sharing Platinum UPnP C++ SDK (bibliothèque à code ouvert - GPL). • GeeXboX, un media center sur liveCD léger et libre. • Dleyna, une suite développé en open source par Intel 4. Dleyna dLeyna est un projet cadre proposé en OpenSource par Intel. Il accueille un certain nombre de composants middleware conçus pour facilité l'intégration des fonctionnalités DLNA dans des applications. Actuellement, il comporte déjà six modules : • dLeyna-serveur ; • dLeyna-rendu ; • dLeyna-core ; • dLeyna-connecteur-dbus ; • nuage dLeyna ; • dLeyna-contrôle 4.1 Les services de dLeyna dLeyna-serveur fournit des API pour découvrir les serveurs de médias numériques et de navigation et la recherche de leur contenu. Il peut être aussi utilisé en conjonction avec un framework multimédia, comme GStreamer pour mettre en œuvre un lecteur de média numérique.

dLeyna-renderer fournit des API pour la découverte et la manipulation des médias numériques. Il peut être utilisé pour mettre en œuvre deux boîtes en mode PUSH. Ensemble, ces deux composants peuvent être utilisés pour créer un Digital Media Controller ou DMC. Ces deux composants dLeyna mentionnés ci-dessus ont un socle communvia la librairie dLeyna- core. 4.2 L'API D-Bus Comme mentionné précédemment, dLeyna-serveur et dLeyna-renderer fournissent des API de haut niveau pour la création d'applications compatibles DLNA. Ces deux composants sont mises en œuvre en tant que services plutôt que des bibliothèques ce qui est une approche assez particulière ; leurs API sont donc accessible en IPC plutôt que par les appels direct de fonctions. Les services dLeyna sont conçus pour soutenir plusieurs mécanismes d'IPC différents. En interne, ils utilisent une API abstraite pour effectuer des tâches, telle que la publication d'un objet ou l'envoi d'une notification ; ces tâches sont déléguées via cette API par une librairie dynamique chargée dynamiquement, appelé aussi connecteur. Actuellement, le projet dLeyna ne contient qu'un seul module de connexion, dLeyna-connecteur- dbus. Comme son nom l'indique, dLeyna-connecteur-dbus peut être utilisé pour fournir une API D- Bus pour les services dLeyna. 4.3 L'API HTML 5 L'un des principaux objectifs du projet est de fournir une API à dLeyna qui peuvent être utilisé soit par des applications natives ou bien HTML5. À cette fin, l'API HTML5 est garantie pour la découverte et la manipulation des DMR et DMS. Ces API sont mises en œuvre sur le dessus d'un morceau de middleware appelé cloudeebus. Cloudeebus peut être utilisé pour créer automatiquement des proxis pour les objets javascript D- Bus. Il utilise l'introspection D-Bus pour les remplir avec un équivalent javascript des méthodes, des propriétés et des signaux, qui sont exposées par les objets D-Bus sous-jacents. Cloudeebus se compose d'une couche JS et un serveur de python. Le serveur de python expose un serveur de sockets permettant à la partie javascript d'inspecter et de manipuler les objets de D-Bus en envoyant des données à une WebSocket. En interne, cloudeebus utilise un composant appelé « autobahn » utilisé aider à gérer la RPC sur les websockets. Bien que possible, il n'est pas recommandé que les application javascript utilisent cloudeebus directement pour accéder à un DMS ou bien un DMR. Ils devraient plutôt utiliser un composant appelé cloud-dLeyna. Cloud-dLeyna est une petite bibliothèque de wrapping sur cloudeebus visant à simplifier la tâche de création des applications DLNA en javascript et isole les clients javascript des couches sous-jacentes cloudeebus et l'API dLeyna. À l'avenir, il est prévu de créer un nouveaux connecteurs permettant aux services de dLeyna d'exposer une interface web socket. cloud-dLeyna serait alors en mesure de communiquer directement avec les services dLeyna sans passer par cloudeebus ce qui éliminerait une couche d'IPC ainsi qu'un certain nombre de dépendances. 4.4 dLeyna-contrôle dLeyna-contrôle est un lecteur DMP écrit à l'aide de l'API D-BUS de dLeyna-serveurs. Il utilise GStreamer pour rendre le contenu des médias et est principalement utilisé comme un outil de démonstration et de tests.

4.5 Résumé de l' inter-connexion des modules 5. Installation Bien que le support UPNP/DLNA soit présent dans les repo officiel, ce n'est pas le cas de la suite dleyna d'Intel. Les repos sont néanmoins bien fournis au niveau UPNP sous Ubuntu : $ apt-cache search upnp | wc -l 77 Il en va de même pour DLNA: $ apt-cache search dlna | wc -l 18 5.1 Prérequis Avant d'installer les composants de dleyna pour la distribution ubuntu 12.04.4 LTS, installons au préalable, les dépendances déjà présentes dans les repos. Certain packages liés à gstreamer sont encore rattachés à la version 0.10. Les paquets liés à la version 1.0 étant disponible mais nécessitant l'ajout d'un nouveau repository de paquets : $ sudo add-apt-repository ppa:gstreamer-developers/ppa You are about to add the following PPA to your system: More info: https://launchpad.net/~gstreamer-developers/+archive/ppa Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: le porte-clefs « /tmp/tmpXjFT5U/secring.gpg » a été créé gpg: le porte-clefs « /tmp/tmpXjFT5U/pubring.gpg » a été créé gpg: demande de la clef 051D8B58 sur le serveur hkp keyserver.ubuntu.com gpg: /tmp/tmpXjFT5U/trustdb.gpg : base de confiance créée gpg: clef 051D8B58 : clef publique « Launchpad PPA for GStreamer developers » importée gpg: aucune clef de confiance ultime n'a été trouvée gpg: Quantité totale traitée : 1 gpg: importées : 1 (RSA: 1) OK $ sudo apt-get update Nous pouvons donc désormais installer les paquets : $ sudo apt-get install python-gi python3-gi gstreamer1.0-tools gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base- 1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-libav python-dateutil libdbus-1-dev gnome-common gtk-doc-tools uuid-dev openjade xsltproc dblatex gnome- common docbook-xml docbook-xsl libsoup2.4-dev python-dev python-setuptools libbz2-dev libpython2.7 apache2 Installons également les dépendances liés à GNOME/gtk qui ne sont pas packagés ou alors pas dans la bonne version ce qui nécessite une installation manuelle : • gtk-doc : $ wget http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.18/gtk-doc-1.18.tar.xz $ tar xvf gtk-doc-1.18.tar.xz && cd gtk-doc-1.18/ $ autoconf -i $ ./configure $ make -j8 $ sudo make install • gssdp : $ cd .. $ wget http://ftp.gnome.org/pub/GNOME/sources/gssdp/0.14/gssdp-0.14.2.tar.xz $ tar xfv gssdp-0.14.2.tar.xz && cd gssdp-0.14.2 $ ./configure $ make -j8 $ sudo make install • gupnp : $ cd .. $ git clone git://git.gnome.org/gupnp && cd gupnp $ ./autogen.sh $ make -j8 $ sudo make install • gunpn-av : $ cd .. $ wget http://ftp.gnome.org/pub/GNOME/sources/gupnp-av/0.12/gupnp-av-0.12.1.tar.xz $ tar xfv gupnp-av-0.12.1.tar.xz && cd gupnp-av-0.12.1/ $ ./configure $ make -j8 $ sudo make install

• gupnp-dlna : $ cd .. $ wget http://ftp.gnome.org/pub/GNOME/sources/gupnp-dlna/0.10/gupnp-dlna-0.10.1.tar.xz $ tar xfv gupnp-dlna-0.10.1.tar.xz && cd gupnp-dlna-0.10.1/ $ ./configure $ make -j8 $ sudo make install 5.2 Dleyna Passons désormais aux composant dleyna eux même : • dleyna-core : $ cd .. $ git clone https://github.com/01org/dleyna-core.git && cd dleyna-core $ ./autogen.sh $ make -j8 $ sudo make install • dleyna-connector-dbus : $ cd .. $ git clone https://github.com/01org/dleyna-connector-dbus.git && cd dleyna-connector-dbus $ ./autogen.sh $ make -j8 $ sudo make install • dleyna-server $ cd .. $ git clone https://github.com/01org/dleyna-server.git && cd dleyna-server $ ./bootstrap-configure $ make -j8 $ sudo make install • dleyna-renderer : $ cd .. $ git clone https://github.com/01org/dleyna-renderer.git && cd dleyna-renderer $ ./bootstrap-configure $ make -j8 $ sudo make install • dleyna-control : $ cd .. $ git clone https://github.com/01org/dleyna-control.git && cd dleyna-control $ sudo ./setup.py install • cloudeebus : $ cd .. $ git clone https://github.com/01org/cloudeebus && cd cloudeebus $ sudo python setup.py install • cloud-dleyna :

$ cd .. $ su $ cd /var/www $ git clone https://github.com/01org/cloud-dleyna.git Ce dernier composant web servira d'interface de control à titre d'exemple pour la gestion des autres composants de dleyna. Après l'installation, il est fortement recommandé de mettre à jour le cache de recherche des librairies dynamiques : $ sudo ldconfig Hé voilà tout est installé et prêt à l'emploi. 6. Utilisation 6.1 Modes d'utilisation L'exemple d'utilisation le plus simple fait intervenir 2 équipements : • Le « serveur », installé sur un ordinateur ou sur un NAS ; • Le « player », installé sur un périphérique compatible, type télévision compatible DLNA ou lecteur Bluray ; Autre exemple d'utilisation, faisant intervenir trois équipements : • « Serveur » installé sur un ordinateur, un téléphone mobile ou un boîtier autonome à disque dur, par exemple une box Internet ; • « Renderer » sur un téléviseur connecté au réseau local, reliée avec ou sans fil à des enceintes ; • « Contrôleur » installé en tant qu'application sur un téléphone mobile ou une tablette accédant au réseau des deux précédents ; 6.1.1 Le modèle PULL à deux équipements Dans ce premier cas d'utilisation, l'utilisateur d'utiliser le lecteur de parcourir le contenu du serveur et puis jouer un média : 6.1.2 Le modèle PUSH à deux équipements Dans ce second cas d'utilisation, l'utilisateur est sur le DMS (appelé contrôleur Push) et choisir les médias à jouer sur le DMR : 6.1.3 Le modèle à trois équipements Dans ce troisième cas d'utilisation, l'utilisateur utilise un troisième dispositif: le DMC de choisir les médias sur la DMS et de contrôler le rendu (lecture, pause, arrêt) sur le DMS :

6.2 Lancement manuel des modules de dleyna Chaque module peut être lancé séparément via les binaires suivants : Nom du module Lancement dleyna-server /usr/local/libexec/dleyna-server-service dleyna-renderer /usr/local/libexec/dleyna-renderer-service dleyna-control /usr/local/bin/dleyna-control.py cloud-dleyna cd cloud-dleyna/js/lib/config/ && ./cloudeebus.sh Ouvrir ensuite le fichier index.html des fichiers de cloud dlna depuis un navigateur web. 6.2.1 Lancement Tout d'abord, lançons le serveur et le renderer en tâche de fond : $ /usr/local/libexec/dleyna-server-service & $ /usr/local/libexec/dleyna-renderer-service & Avant de lancer vérifions que le port 9000 du serveur de sockets est bien libre : $ netstat -plnt | grep ':9000' (Tous les processus ne peuvent être identifiés, les infos sur les processus non possédés ne seront pas affichées, vous devez être root pour les voir toutes.) Lançons ensuite le serveur python cloudeebus : $ cd /var/www/cloud-dleyna/js/lib/config/ $ ./cloudeebus.sh 2014-03-10 22:18:49+0100 [-] Log opened. 2014-03-10 22:18:49+0100 [-] WampServerFactory starting on 90010 2014-03-10 22:18:49+0100 [-] Starting factory <autobahn.wamp.WampServerFactory instance at 0x17f1878> 2014-03-10 22:18:49+0100 [-] WampServerFactory starting Après le serveur doit être en écoute : $ netstat -plnt | grep ':9000' (Tous les processus ne peuvent être identifiés, les infos sur les processus non possédés ne seront pas affichées, vous devez être root pour les voir toutes.) tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN 23113/python Si le port est déjà utilisé, il faudra change le port à deux endroits : • /var/www/cloud-dleyna/js/main.js (changer la valeur de cloudeebusPort)

• /usr/local/lib/python2.7/dist-packages/cloudeebus-0.6.0-py2.7.egg/EGG-INFO/scripts/cloudeebus.py (changer la valeur du port par défaut) De plus, pour un usage local ou le serveur web est sur la même machine (localhost) cela fonctionne bien mais dans le cas où cloud-dleyna est distante, il faudra modifier la variable « cloudeebusHost » avec l'adresse IP du serveur. 6.2.2 Interface dleyna-control Cette interface locale est intéressante et donne l'illustration dee ce qui est possible de faire localement avec l'utilisation des API dleyna. Cette interface se lance de la façon suivante : $ /usr/local/bin/dleyna-control.py & Je lui préfère la version web. 6.2.3 L'interface web cloud-dleyna Depuis l'adresse « http://localhost », l'interface peut se connecter sur le serveur de soket pour interroger les « serveurs » et les « renderers ». Il est aussi possible de naviguer dans l'arborescence proposé par le serveur (en bas) : 8. Conclusion Vous voilà avec les clefs pour intégrer ou utilise le protocole UPNP DNLA dans vos projets. Les idées ne manquent pas et c'est justement ce qui est intéressant à la vue des équipements compatibles de plus en plus nombreux quelque soit la marque.

9. Liens • http://www.dlna.org/ • http://www.upnp.org/ • http://www.upnp.org/resources/upnpresources.zip • http://mediapilot.access-company.com/use-cases.html • http://fr.wikipedia.org/wiki/Protocole_UPnP • http://jan.newmarch.name/internetdevices/upnp/upnp.html • http://pupnp.sourceforge.net/ • http://upnp.sourceforge.net/ • http://upnp.org/download/upnpsummitslides/Intel%20PDK%20-%20Preston%20Hunt.ppt • http://opentools.homeip.net/dev-tools-for-upnp • https://01.org/dleyna/overview • https://github.com/01org/dleyna-linux • https://github.com/01org/cloud-dleyna • https://github.com/01org/dleyna-renderer • https://github.com/01org/dleyna-core • https://github.com/01org/dleyna-diagnostics • https://github.com/01org/dleyna-server • https://github.com/01org/dleyna-connector-dbus • https://github.com/01org/dleyna-control • http://fr.wikipedia.org/wiki/Digital_Living_Network_Alliance • http://html5.cablelabs.com/upnp/html5-upnp-integration.html • http://fr.wikipedia.org/wiki/Universal_Plug_and_Play#Standards_audio_et_vid.C3.A9o_.28 UPnP_AV_standards.29 • https://pypi.python.org/pypi/autobahn/0.5.14

Add a comment

Related presentations

Related pages

Conversion suite à la découverte des miracles du Coran ...

" Assalam alaykoum wa Ramathoullahi Allah wa barakatouhou J'ai regardé avec un grand intérêt votre vidéo suite ... suite à la découverte ...
Read more

Des chercheurs scientifique converti a l'islam suite a la ...

Des chercheurs scientifique converti a l'islam suite a la découverte de la momie du faraon Arrahma1. ... Standard YouTube License; Loading ...
Read more

La Suite, La Rochelle - Restaurant Bewertungen ...

La Suite, La Rochelle. BEITRETEN; EINLOGGEN $ La Rochelle. Tourismus in La Rochelle Hotels La Rochelle La Rochelle Pensionen La Rochelle Ferienwohnungen
Read more

A la Decouverte B&B | Bed and Breakfast accommodations Old ...

Location in the Suite ... A cosy B&B centrally located in old Quebec A la Decouverte is a cosy B&B located in Old Quebec city and it has been in business ...
Read more

Découverte de la suite 601 Kure Bazaar - Debymagazine

La suite 601 Kure Bazaar se trouve au Park Hyatt Vendôme. RDV pour une manucure dans ce magnifique palace Parisien. La décoration est incroyable.
Read more

À la suite – Wikipedia

À la suite ist ein Begriff aus dem Militärwesen, der Personen bezeichnete, die zum Tragen einer Regimentsuniform berechtigt, aber ansonsten ohne ...
Read more

Mon joli petit bureau: Découverte de la banquise (suite)

Découverte de la banquise (suite) ... Emmy m'a tout de suite reparlé du "glaçon" qu'elle avait manipulée dans le bac sensoriel et elle a ajouté que ...
Read more

la suite - Deutsch-Übersetzung - bab.la Französisch ...

Zusammenfassung. Unser Team wurde informiert, dass die Übersetzung von "la suite" fehlt.
Read more

Apartments bei Baden-Baden im Schwarzwald – La-Suite

La-Suite, Ihr Traumziel bei Baden-Baden im Schwarzwald. La-Suite Apartments Baden-Baden. Willkommen! Unsere Leistungen! Hochwertig und geschmackvoll ...
Read more