Jahislove
Posts: 4
Joined: Thu Apr 18, 2013 11:55 am

Tuto RaspBerry + client DLNA audio

Thu Apr 18, 2013 5:02 pm

Bonjour

Le but de ce tuto est de configurer un Raspberry pour jouer de la musique streamée depuis un serveur DLNA et piloté avec n'importe quel Controleur DLNA (PC, telephone, tablette)

Tout d'abord je tiens à préciser que ce tuto n'est pas de moi mais de scphillips
http://blog.scphillips.com/2013/01/usin ... streaming/


Je me contente surtout de le traduire et de l'adapter à mon cas

dans mon cas le serveur DLNA est un NAS Synology avec Audio station activé
le réseau est filaire
la sortie audio est sur des enceintes amplifiées
les télécommandes sont:
iPhone avec l'appli synology DS Audio pour iOS
Samsung galaxy avec l'appli synology DS Audio pour android

de quoi avons nous besoin :
un Raspberry Pi fonctionnel
un serveur DLNA deja fonctionnel
un téléphone ou tablette
des haut parleurs ou chaine hifi

rappel fonctionnement DLNA : celui ci se divise en 3 parties logicielles :
-DLNA server = met a disposition votre musique sur le reseau ( un PC ou un NAS)
-DLNA renderer (ou client , player)= pour jouer la musique ( chaine hifi compatible,smart TV , logiciel PC)
-DLNA controler = pour servir de télécommande (tablette, telephone)
parfois le controleur fait aussi office de renderer

en gros le controleur permet de voir toute la musique disponible sur le serveur et de l'envoyer directement sur le renderer choisi.

étape 1 : installation de l'OS de base : Raspbian wheezy
disponible sur le site officiel Raspberry Pi site
Je ne vais pas m'attarder sur cette installation , c'est très simple et il y a déja des tonnes de tuto pour faire ça (ex http://elinux.org/RPi_Easy_SD_Card_Setup)

étape 2 : configuration du réseau
Réseau filaire :
si votre box/routeur est configuré en DHCP , rien de plus à configurer, la détection est automatique

WIFI:
n'utilisant pas le wifi , je n'ai pas testé cette partie et vous renvoi directement sur la page de l'auteur

étape 3 installer les logiciels

A ce niveau je suppose que
- votre Raspberry est opérationnel
- vous savez vous servir d'un terminal linux
- vous savez editer du texte avec un editeur linux (nano ou vi)

maintenant , vous pouvez au choix soit continuer à travailler dessus et je vous conseille d'ouvrir cette page sur le Raspberry afin de pouvoir faire les copier/coller
soit passer en SSH avec Putty depuis votre PC (login pi , password raspberry)

rappel copier/coller dans le monde linux :
dans le navigateur (midori) du desktop graphique du Raspberry :
copier / coller = CTRL-C / CTRL-V
dans un terminal (ou putty)
copier = selectionner simplement du texte
coller = bouton central (terminal) ou clic droit (putty)

c'est parti:

tout ce qui est en code est à taper dans un terminal
pour commencer nous allons faire une extension de l'espace disque pour utiliser tout l'espace de la carte SD sinon on va manquer de place pour les logiciels :

Code: Select all

sudo raspi-config
selectionner le menu
expand_rootfs Expand root partition to fill SD card

tant que vous êtes dans raspi-config , profitez en pour configurer le clavier francais, l'horloge... puis quitter le menu

mise a jour des packages :

Code: Select all

 sudo apt-get update
sudo apt-get upgrade
vous avez le temps de prendre un café

installation de gmrender-ressurect qui est un DLNA renderer, comme il n'est pas livré dans un package tout fait , nous allons le compiler manuellement avec tout ses prérequis.

Code: Select all

sudo apt-get install git automake libglib2.0-dev gstreamer0.10-alsa gstreamer0.10-tools libgstreamer0.10-dev libupnp-dev libxml2-dev gstreamer0.10-ffmpeg gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-fluendo-mp3 gstreamer0.10-pulseaudio pulseaudio
vous avez le temps de prendre une bière

Code: Select all

cd
git clone https://github.com/hzeller/gmrender-resurrect.git
cd gmrender-resurrect
 
./autogen.sh
./configure LIBS=-lm
make
sudo make install
gmrender utilise GStreamer pour jouer les sons qui utilise a son tour ALSA (carte son interne du raspberry) pour des raisons inconnues la qualité du son dans cette configuration est pourrie
gmrender => GStreamer =>ALSA

on va donc forcer le system a passer par Pulseaudio , ce qui améliore grandement les choses
gmrender => GStreamer => PulseAudio =>ALSA

Code: Select all

gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
notez que ces commandes sont executées avec l'utilisateur "pi", si plus tard vous utilisez gmrender avec un autre utilisateur alors la qualité sera pourrie de nouveau car on ne passera pas par PulseAudio

Pour que PulseAudio soit démarré au boot et pour autoriser l'utilisateur "pi" à l'utiliser il y a 2 petites manips a faire :
éditez le fichier /etc/default/pulseaudio avec nano ou vi

Code: Select all

sudo nano  /etc/default/pulseaudio
et remplacez
PULSEAUDIO_SYSTEM_START=0 par PULSEAUDIO_SYSTEM_START=1

et ajouter l'utilisateur "pi" au groupe pulseaudio

Code: Select all

sudo adduser pi pulse-access
nous allons aussi monter le son

Code: Select all

alsamixer
utilisez la touche fleche haut pour monter le son au maxi puis la touche echap pour quitter

pour sauvegarder la config au boot :

Code: Select all

sudo alsactl store

ce qui mettra a jour le fichier /var/lib/alsa/asound.state

pour demarrer gmrender automatiquement au boot :
créez un fichier /etc/init.d/gmediarenderer en tant que root

Code: Select all

suno nano /etc/init.d/gmediarenderer
et copier ceci dedans

Code: Select all

#!/bin/sh
 
### BEGIN INIT INFO
# Provides: gmediarender
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start GMediaRender at boot time
# Description: Start GMediaRender at boot time.
### END INIT INFO
 
USER=root
HOME=/root
export USER HOME
case "$1" in
start)
echo "Starting GMediaRender"
start-stop-daemon -x /usr/local/bin/gmediarender -c pi:audio -S -- -f "Raspberry" -d
;;
stop)
echo "Stopping GMediaRender"
start-stop-daemon -x /usr/local/bin/gmediarender -K
;;
*)
echo "Usage: /etc/init.d/gmediarender {start|stop}"
exit 1
;;
esac
exit 0
puis changez les droits

Code: Select all

sudo chmod 755 /etc/init.d/gmediarenderer
sudo update-rc.d gmediarenderer defaults
rebootez la machine

Code: Select all

sudo shutdown -r now
et voila vous avez une machine qui fonctionne et sera reconnu comme DLNA renderer sur votre réseau

si à ce stade vous avez des craquements audio à chaque changement de piste, il faut forcer pulseaudio à jouer des silences entre les pistes : tapez:

Code: Select all

pacat /dev/zero &
et pour que cette modification soit prise en compte au reboot , il faut modifier /etc/rc.local

Code: Select all

sudo vi /etc/rc.local
et ajouter cette ligne avant le "exit 0"

Code: Select all

su - pi -c 'sleep 10 ; pacat /dev/zero' &
il n'y a plus qu'a installer n'importe quel logiciel controleur DLNA sur votre téléphone pour piloter votre joujou

pour moi , possédant un NAS synology j'ai installé DS Audio de Synology
sur android si vous n'avez pas de NAS synology il existe BubbleUPnP
Last edited by Jahislove on Mon May 06, 2013 8:37 pm, edited 1 time in total.
Raspberry (Raspbian) for Audio with MPD
Rapsberry (Rasplex) for video with PLEX

LeSanglier
Posts: 226
Joined: Fri Jan 11, 2013 8:11 pm
Location: In Hell with God
Contact: Website

Re: Tuto RaspBerry + client DLNA audio

Fri Apr 19, 2013 5:44 am

Merci pour ce tuto très intéressant !! :D
Mon blog sur le Raspberry Pi : http://framboisepi.fr/
Pour avoir plus de chance d'avoir une réponse à votre question,
allez sur le forum français Rasberry Pi : http://forum.raspfr.org

muadeeb
Posts: 2
Joined: Tue May 21, 2013 7:08 am

Re: Tuto RaspBerry + client DLNA audio

Tue May 21, 2013 7:13 am

Bonjour,
pour moi gmediarenderer ne ce lancé pas au démarrage du raspberry.
J'ai juste changé les droits de /etc/init.d/gmediarenderer par un

Code: Select all

sudo chmod 777 /etc/init.d/gmediarenderer
et c'est ok.
Merci pour le tuto

azerty15
Posts: 1
Joined: Sun Jun 02, 2013 8:19 pm

Re: Tuto RaspBerry + client DLNA audio

Sun Jun 02, 2013 8:22 pm

Salut Jahislove,
Magnifique. Suivi tous les pas sans problème. Fonctionne parfaitement !
Tout est très clair.
Merci !

bricolodu13
Posts: 38
Joined: Tue Aug 07, 2012 2:05 pm

Re: Tuto RaspBerry + client DLNA audio

Wed Jul 02, 2014 4:13 pm

Bonjour,

Je n'arrive pas à le faire fonctionner en mode "headless".
Que faut-il modifier ?

Merci de votre aide

Jean

jeremy_fritz
Posts: 59
Joined: Tue Jul 17, 2012 7:04 pm

Re: Tuto RaspBerry + client DLNA audio

Thu Oct 30, 2014 9:18 pm

C'est parfait merci beaucoup !

J'utilisais Shairport avant ça mais curieusement depuis quelques temps, le client apparaissait puis finissait par disparaître Oo
J'espère qu'avec cette solution, j'aurai quelque chose de pérenne.

En tout cas, un tuto très bien amené avec des commandes bien expliquées (on sait pourquoi on les tape !).

edu
Posts: 1
Joined: Mon Nov 10, 2014 3:57 pm

Re: Tuto RaspBerry + client DLNA audio

Mon Nov 10, 2014 4:03 pm

Many thanks for this guide ! Now I got a working soundbox connected to my amp.

Few comments that could help next users :
- Pulseaudio doesn't seem to be necessary anymore. I didn't notice any difference in the sound quality with and without.
- pacat is probably a tricky command... It caused more problems on my system than it solved, because automatic track switching was not working with pacat running

my 2 cts
/edu

Return to “Français”