• Streamez votre musique partout dans la maison avec pulseaudio-dlna !

    pulseaudio-dlna est un tout nouveau serveur DLNA parfaitement intégré à PulseAudio. Il vous permettra de streamer en quelques clics de l'audio sur tous vous périphériques compatibles connectés à votre réseau local : smartphone, console de jeu, télévision connectée… Testé et approuvé !

    DLNA : qu'est-ce que c'est ?


    DLNA (Digital Living Network Alliance) est une alliance de fabricants de matériel électronique qui propose un standard pour le partage et le contrôle d'appareils multimédia. Celui-ci est implémenté dans de nombreux appareils, notamment des téléviseurs, des consoles de jeux, des téléphones intelligents (moyennant éventuellement l'installation d'une application, comme BubbleUPnP)…


    DLNA permet de définir les rôles suivants pour vos différents appareils :
    • serveur (par exemple votre ordinateur) : fournit du contenu multimédia
    • lecteur (par exemple une télévision connectée) : parcourt et joue du contenu multimédia fourni par un serveur
    • renderer (par exemple une télévision connectée, un système hi-fi) : décode et joue du contenu multimédia fourni par un serveur mais en étant géré par un autre appareil (contrôleur)
    • contrôleur (par exemple votre ordinateur, votre smartphone) : parcourt le contenu multimédia fourni par un serveur, envoie ce contenu vers un renderer et contrôle sa lecture
    • (imprimante : permet aux contrôleurs et aux lecteurs d'imprimer du contenu)


    Le logiciel pulseaudio-dlna est un serveur très léger de contenu audio. Son intérêt est qu'il s'intègre bien au serveur de son PulseAudio et permet de streamer facilement vers des appareils connectés via pavucontrol, qui joue le rôle de contrôleur. Vous pourrez trouver sur le GitHub du projet une liste des appareils (renderers) avec lesquels pulseaudio-dlna a été testé.

    D'autres solutions DLNA existent sous GNU/Linux, permettant de gérer d'autres types de contenu multimédia que de l'audio :

    • Rygel, Mediatomb, Serviio, Kodi (nouveau nom de XBMC), Plex, … pour les serveurs/contôleurs
    • Kodi (il fait les deux), Vlc, … pour les lecteurs/renderers


    Installation

    Le paquet est disponible dans le dépôt Packman pour openSUSE 13.1, 13.2 et Tumbleweed. Si vous n'avez pas encore ajouté le dépôt à votre liste, voici ce 1-Click-Install qui le fera pour vous et installera le paquet avec :

    openSUSE 13.1 et 13.2

    Installez également le contrôleur de volume de PulseAudio pavucontrol pour pouvoir contrôler facilement la diffusion du stream.

    Lancer pulseaudio-dlna

    Tout simplement avec la commande… pulseaudio-dlna !

    Le programme va rechercher tous les périphériques compatibles DLNA sur le réseau local, pendant environ 5s. Si aucun appareil n'est trouvé, le programme s'arrête. Dans le cas contraire, il ajoute tous les systèmes trouvés à la liste des périphériques :




    Il n'y a plus qu'à sélectionner le périphérique désiré avec pavucontrol :



    Et voilà !

    Notez qu'il y a quelques options avec lesquelles vous pouvez jouez :
    • l'encodage avec l'option --encoder : par défaut mp3, mais sont également disponibles l'ogg, le flac, le wav et l'opus. Attention cependant, vos appareils ne lisent pas forcément tous ces formats. Chez moi, seul le mp3 fonctionne par exemple.
    • l'adresse du périphérique désiré avec l'option --renderer-urls : peut-être utile pour se passer de la découverte UPnP (voir plus bas) ou, si vous lancez pulseaudio-dlna au démarrage de votre machine, vous ne voulez pas que pulseaudio-dlna s'arrête s'il ne trouve aucun appareil DLNA connecté. Il vous faudra assigner un nom ou une adresse IP fixe à vos périphériques sur le réseau local.
    • l'adresse du serveur sur votre machine avec --port : si vous utilisez déjà le port 8080 pour autre chose :-)


    Des problèmes ?

    Les périphériques ne sont pas détectés

    Vous devrez peut-être régler votre pare-feu pour que pulseaudio-dlna puisse détecter les appareils connectés à votre réseau local. Le pare-feu d'openSUSE, SuSEfirewall, bloque pas mal de chose par défaut (quand on utilise wicked/ifup du moins), contrairement à Debian, Ubuntu, Linux Mint et compagnie qui n'ont aucune règle active à l'installation.

    La solution facile : désactiver le pare-feu

    Le plus simple est de désactiver SuSEfirewall en allant dans YaST → Pare-feu et en cliquant sur Arrêter le pare-feu. Si vous êtes dans le cas classique, c'est -à-dire derrière votre routeur domestique (box), lui-même équipé d'un pare-feu qui vous protège de l'extérieur, et que vous savez quelles machines se connectent à votre routeur, il n'y a pas grand risque. Sinon… n'utilisez pas pulseaudio-dlna sur un réseau non-sûr/que vous ne connaissez pas !



    La solution moins facile : régler le pare-feu (utilisateurs avancés)

    Si vous avez une bonne raison de vouloir garder en place le pare-feu openSUSE, il vous faudra ajouter des règles personnalisées. Le plus simple dans ce cas est d'autoriser toutes les demandes connexions entrantes des appareils vers lesquels vous voulez streamer.

    Si vous voulez être plus fins :

    • pour le serveur DLNA :
      • autorisez les connexions entrantes en TCP sur le port 8080
      • autorisez les connexions entrantes en UDP sur le port 5353 (pas sûr que ce soit universel, ça dépend peut-être de l'appareil vers lequel vous streamez)

    • pour la découverte des appareils sur le réseau :
      • pulseaudio-dlna utilise UPnP pour découvrir les périphériques DLNA. Configurer le pare-feu pour l'autoriser, c'est pas évident (si quelqu'un trouve une vraie solution avec iptables, qu'il n'hésite pas).
      • vous pouvez contourner ce problème en désactivant la recherche UPnP, c'est-à-dire en utilisant l'option --renderer-urls de pulseaudio-dlna pour spécifier l'adresse ip de votre appareil vers lequel vous voulez streamer. Bien sûr, cela suppose que vous connaissiez cette adresse IP (le plus pratique est de la fixer). Par exemple chez moi :
        Code:
        pulseaudio-dlna --renderer-urls http://192.168.1.2:1400/
        (mon appareil est un Raspberry Pi avec une adresse fixe 192.168.1.2 et tournant sur XBMC)



    Au final, chez moi, ça rend comme ça (j'utilise l'option renderer-urls) :




    Souci avec dbus et PulseAudio

    pulseaudio-dlna a besoin du module dbus de PulseAudio pour fonctionner correctement. Ce module devrait être activé automatiquement au lancement de pulseaudio-dlna et vous ne devriez rien avoir à faire.

    La commande :
    Code:
    pactl list short modules | grep dbus
    devrait retourner quelque chose si le module est actif et rien sinon.

    Si vous êtes du genre malchanceux et que l'activation automatique ne fonctionne pas chez vous, vous pouvez activer manuellement le module comme ça :
    Code:
    pacmd load-module module-dbus-protocol
    Pour ne pas avoir à retaper cette commande à chaque démarrage, vous pouvez ajouter les lignes suivantes au fichier ~/.config/pulse/default.pa (ou /etc/default.pa pour que le paramètre soit pris en compte par tous les utilisateurs du système) :
    Code:
    .ifexists module-dbus-protocol.so
    .nofail
    load-module module-dbus-protocol
    .fail
    .endif

    Have fun!




    Dernière mise à jour le 20 mars 2015

    Sources :

    Commentaires 2 Commentaires
    1. Avatar de Antoine
      Antoine -
      Nouvelle version de pulseaudio-dlna disponible : 0.3.2 !

      Au programme :

      • ajout de l'encodeur Opus (nouvelle dépendance : opus-tools)
      • correction d'un bug qui faisait crasher l'application quand un périphérique UPnP avait un nom vide
      • ajout d'une dépendance manquante (python-gobject)
    1. Avatar de Antoine
      Antoine -
      Petit projet décidément dynamique, passage à la 0.3.4 :

      • Ajout d'une option --filter-device pour filtrer les périphériques par leurs noms lors de la découverte UPnP
      • Une amélioration de la découverte des périphériques avec l'envoi de deux paquets SSDP par défaut
      • Diverses améliorations et corrections au niveau du Makefile
  • Dons / Adhésion


    Dons
    Si vous aimez notre site web et que vous voulez participer financièrement, vous pouvez nous faire un don grâce à PayPal.


    Choisissez votre somme, et cliquez sur le bouton "donate" ci-dessous.



    Adhésion
    Si vous désirez être membre de notre association, vous pouvez aussi adhérer grâce à PayPal.


    Cliquez sur le bouton "PayPal" ci-dessous.

  • SUSECon 2017

     
    SUSEcon 2017
     
     
  • Derniers commentaires d'articles

    pierrotbj

    Compte rendu du salon Paris OpenSource Summit

    Super, merci pour l'info, vous avez fais du bon boulot. Voir le dernier message

    pierrotbj le Hier 21h05