PulseAudio Raspberry RTP | multiroom

Principe

L’idée est de faire du multiroom avec des raspberry.
Serveur ~> RTP ~> Raspberry/Server
L’idée est d’envoyer le son dans un module spécifique, puis de le diffuser sur le réseau en RTP.

L’idée de pulseaudio est vraiment sympathique, dommage que la mise en place ressemble plus à du bricolage d’usine à gaz avec des effets aléatoires.
La configuration de pulseaudio en mode system (sur le raspberry) est dans /etc/pulse/system.pa.
Il y a quelques paramètres par défaut à changer dans /etc/pulse/daemon.conf pour avoir la diffusion du son (c’est le Tips qui ne se trouve pas facilement sur internet).

Pulseaudio

Pulseaudio on Raspberry

Ajout dans /etc/pulse/daemon.conf
[ccNli_bash]
resample-method = copy
default-sample-rate = 44100
default-sample-format = s16le
alternate-sample-rate = 44100
;default-fragments = 10
;default-fragment-size-msec = 10
high-priority = yes
[/ccNli_bash]

Ajout dans /etc/pulse/system.pa
[ccNli_bash]
load-module module-rtp-recv
[/ccNli_bash]

Ajout de pulseaudio au démarrage, dans /etc/default/pulseaudio
[ccNli_bash]
PULSEAUDIO_SYSTEM_START=1
[/ccNli_bash]

Attention si vous avez plusieurs cartes, je vous conseille d’ajouter la carte par défaut à la fin de /etc/pulse/system.pa

Note: Pour utiliser les commandes de pulseaudio, il faut placer votre utilisateur dans le groupe pulse-access
[ccNli_bash]
usermod dominique -a -G pulse-access
[/ccNli_bash]

Raspberry
Raspberry

Pulseaudio on server

Sur le serveur il faut créer un Sink pour accepter le son avec pacmd (vous pouvez activer cette configuration dans /etc/pulse/default.pa)
[ccNli_bash]
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties= »device.description=’RTP Multicast’ device.bus=’network’ device.icon_name=’network-server' »
[/ccNli_bash]

Choisissez votre player favori, et envoyez le son dans le sink rtp.
[ccNli_bash]
PULSE_SINK=rtp PULSE_SOURCE=rtp.monitor mocp
[/ccNli_bash]

La dernière étape est de d’activer l’envoie du sink via rtp.

[ccNli_bash]
load-module module-rtp-send source=rtp.monitor mtu=16000 loop=1 rate=44100 port=5555 ttl=2 channels=2
[/ccNli_bash]

fichiers sources: https://github.com/whoo/PulseAudioConf

Attention, activer le RTP provoque quelques ralentissements réseaux sur le wifi quand il n’y a pas de client … (je ne sais pas pourquoi).