Cet article n’est plus à jour. Nous vous invitons à consulter celui-ci → https://technic2radio.fr/tuto-liquidsoap-raspberry-pi-via-opam/
Vous aurez ainsi la dernière version de Liquidsoap d’installé sur votre raspberry pi.
Néanmoins, si vous souhaitez suivre le tutoriel de cette page (car plus facile), attention au traitement de son, ils ont tendances à être trop gourmand en ressource et cela pourrait interrompre le stream.
Dans ce tutoriel nous allons partir à la découverte de Liquidsoap, le couteau suisse du streaming multimédia. Liquidsoap est gratuit et open-source. Plus d’infos : http://savonet.sourceforge.net/
Notre objectif est de transformer le Raspberry Pi en « client source » pour Icecast (ou shoutcast) et permettre ainsi de diffuser votre flux audio vers Icecast pour que vos auditeurs puissent vous écouter via le web.
Pour ce tutoriel, nous avons utilisé le matériel suivant :
- Raspberry Pi 3 Model B Quad Core CPU 1.2 GHz 1 Go RAM
- Alimentation Pour Raspberry Pi 3 Aukru Micro USB 5v 3000mA
- Carte Mémoire MicroSDHC SanDisk Ultra 16GB
- Carte son ESI U24 XL
Pré-configuration
Pour commencer, il faut télécharger l’image de Raspbian Jessie : https://www.raspberrypi.org/downloads/raspbian/
Une fois téléchargé et décompressé, nous passons par Win32 Disk Imager (si vous êtes sous Windows) pour transférer l’image sur la carte SD.
Une fois la carte SD inséré dans le Raspberry Pi et que tout est branché, on commence par tout mettre à jour :
$ sudo apt-get update
$ sudo apt-get upgrade
Liquidsoap
Pour installer Liquidsoap, rien de plus simple :
$ sudo apt-get install liquidsoap
Nous allons ajouter quelques plugins nécessaires :
$ sudo apt-get install liquidsoap-plugin-all
$ sudo apt-get install ladspa-sdk multimedia-audio-plugins
Configuration
Il nous reste à créer le fichier qui contiendra les paramètres de configuration :
$ sudo nano /etc/liquidsoap/radio.liq
On ajoute les lignes suivantes (à modifier en fonction des paramètres de votre Icecast et de votre radio)
Le gros plus de liquidsoap ce sont les plugins. Pour cela nous allons suivre les indications fournit par cet article : http://freedrool.us/blog/liquidsoap-audio-effects
Exemple de fichier radio.liq :
#!/usr/bin/liquidsoap
stream = input.alsa(device="plughw:1,0")
stream = sky(stream)
stream = compress(stream, attack = 5.0, gain = 8.0, knee = 10.0, ratio = 5.0, release = 100.0, threshold = -18.0, rms_window = 0.7)
stream = normalize(stream, target = -1.0, threshold = -65.0)
stream = limit(stream, threshold = -0.2, attack = 2.0, release = 25.0, rms_window = 0.02)
output.icecast(%mp3(bitrate=128, samplerate=44100, ),
host="XX.XX.XXX.XXX",
port=8000,
password="XXXX",
mount="radio.mp3",
url="https://technic2radio.fr",
name="technic2radio",
genre="Music",
description="Test Liquidsoap",
public=false,
fallible=true,
stream)
Il faut maintenant rendre exécutable le fichier :
$ sudo chmod +x /etc/liquidsoap/radio.liq
On modifie les droits du fichier de log de liquidsoap (« pi » l’utilisateur par défaut du Raspberry Pi) :
$ sudo chown -R pi /var/log/liquidsoap
On test si tout fonctionne :
$ /etc/liquidsoap/radio.liq
Tout fonctionne ? C’est parfait !
Auto start
Maintenant, nous allons faire en sorte que liquidsoap se lance au démarrage du Raspberry Pi. Pour cela nous allons éditer le fichier .bashrc :
$ sudo nano .bashrc
Et nous allons ajouter les lignes suivantes :
if [ $(tty) == /dev/tty1 ]; then
/etc/liquidsoap/radio.liq
fi
On enregistre et on quitte l’éditeur. On reboot le Raspberry Pi pour vérifier que tout se lance bien au démarrage et on se rend à l’ip du flux Icecast pour tester l’audio (http://XX.XX.XXX.XXX:8000/radio.mp3)
