studio-rpi-emetteur

OpenOB – Liaison IP par Raspberry Pi

On a régulièrement besoin de pouvoir transmettre du son d’un point A à un point B, lorsque l’on fait un plateau extérieur ou pour relier le studio au site de l’émetteur, le tout avec un temps de délais le plus faible possible. Pour cela vous pouvez utiliser deux Raspberry Pi avec des cartes sons externes et le logiciel OpenOB.

Pour ce tutoriel, j’ai utilisé le matériel suivant :

OpenOB – Open Audio over IP for Broadcasters

OpenOB est un logiciel audio sur IP conçu pour les broadcasters, les techniciens radio et les intégrateurs systèmes. Le logiciel a été conçu et développé par James Harrison.

Le but du projet est de fournir un cadre simple pour configurer et gérer des liaisons à faible délai audio entre les appareils sur des réseaux IP standard, avec une API de programmation conviviale pour une intégration facile dans d’autres projets.

Source :

Je tenais avant tout à remercier Clod Y-Us pour avoir partager en commentaire sur la page facebook le fait de pouvoir réaliser des liaisons via OpenOB ainsi que Casa36 pour son tuto sur radios-fr.com et ses échanges en messages privés.

J’ai tout d’abord souhaité suivre le tutoriel « officiel » pour installer OpenOB sur le Raspberry Pi 3 mais j’ai rapidement été bloqué et en particulier sur l’installation de gstreamer0.10-ffmpeg

Package gstreamer0.10-ffmpeg is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Après quelques recherches sur internet, j’ai suivi les informations de ces deux liens :

http://lists.talkunafraid.co.uk/pipermail/openob-users/2016-May/000384.html

http://www.radios-fr.com/topic/18621-tuto-liaison-studio-%C3%A9metteur-avec-des-raspberrypi/

Il ne semble pas nécessaire d’installer « gstreamer0.10-ffmpeg » pour obtenir un bon fonctionnement d’OpenOB.

Installation :

Nous commençons par mettre à jour le RPI :

$ sudo apt-get update
$ sudo apt-get upgrade

Puis on installe toute une série de paquets nécessaires pour OpenOB :

$ sudo apt-get install python-gst0.10 python-setuptools gstreamer0.10-plugins-base gstreamer0.10-plugins-bad gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-tools python-gobject python-gobject-2 gstreamer0.10-alsa htop iperf iftop mtr opus-tools redis-server alsa-utils screen build-essential

Il faut maintenant configurer le serveur Redis :

$ sudo nano /etc/redis/redis.conf

Recherchez la ligne sur laquelle figure « bind 127.0.0.0 » et remplacez la par « bind 0.0.0.0 »

Ctrl+O pour enregistrer puis Ctrl+X pour quitter et on redémarre le serveur :

$ sudo service redis-server restart

Nous pouvons maintenant installer OpenOB :

$ sudo easy_install OpenOB

Réception :

Il faut d’abord lancer la machine qui doit recevoir le signal. La commande se compose ainsi : openob « IP de la machine qui émet » « nom de la machine qui reçoit » « nom de la liaison » rx

Nom de la machine qui reçoit : On peut mettre ce que l’on veut, dans l’exemple, j’ai indiqué « recepteur »

Nom de la liaison : On peut mettre ce que l’on veut, dans l’exemple, j’ai indiqué « transmission ». Attention a bien mettre le même nom sur les deux machines

$ openob 192.168.1.100 recepteur transmission rx

Emission :

Nous pouvons maintenant lancer la commande sur le RPI qui diffusera. La commande se compose ainsi : openob « IP de la machine qui émet » « nom de la machine qui émet » « nom de la liaison » tx « IP de la machine qui reçoit »

Nom de la machine qui émet  : On peut mettre ce que l’on veut, dans l’exemple, j’ai indiqué « emetteur »

Nom de la liaison : j’ai indiqué « transmission », comme sur le RPI qui reçoit.

$ openob 192.168.1.100 emetteur transmission tx 192.168.1.7

La commande me renvoie l’erreur suivante :

WARNING - Waiting for audio interface/caps

Nous allons lancer la commande arecord -l pour faire un point sur la carte son que l’on souhaite utiliser :

**** Liste des Périphériques Matériels CAPTURE ****
carte 1: U24XL [U24XL], périphérique 0: USB Audio [USB Audio]
 Sous-périphériques: 1/1
 Sous-périphérique #0: subdevice #0

Dans mon cas, j’utilise une carte son externe USB. Il faut ajouter dans la commande une information pour préciser quelle carte on veut utiliser : hw:1,0. Ce qui nous donne :

$ openob 192.168.1.100 emetteur transmission tx 192.168.1.7 -d hw:1,0

Erreur ! ça ne fonctionne pas, il semble y avoir un problème avec Alsa :

AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
AL lib: (EE) alsa_open_capture: Could not open capture device 'default': No such file or directory

Direction la mailing-list d’OpenOB pour trouver la solution :
http://lists.talkunafraid.co.uk/pipermail/openob-users/2015-January/000255.html

On ajoute « -a alsa » dans la commande :

$ openob 192.168.1.100 emetteur transmission tx 192.168.1.7 -a alsa -d hw:1,0

Victoire ! Tout fonctionne, le son sort du RPI qui reçoit.

Attention : si vous utilisez une carte son externe (ce que je vous conseille) il y a de forte chance que vous soyez obliger d’ajouter également sur le RPI configuré en récepteur les informations supplémentaires pour le choix de la carte et pour Alsa. Vous pouvez également utilisez un pc avec Debian pour la réception. Si ce dernier tourne sous Jessie, il faudra suivre ce tuto plutôt que l’officiel car le paquet « gstreamer0.10-ffmpeg » n’est ni disponible, ni utile.

Laisser un commentaire