[Tuto] Raspberry Pi + Liquidsoap + Icecast

raspberry_liquidsoap_icecast


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 :

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)

8 réflexions au sujet de “[Tuto] Raspberry Pi + Liquidsoap + Icecast”

  1. Bonjour , je cherche une adresse mail pour vous contacter pour une aide sur configuration pour une web radio , pourriez vouos indiquer comment vous contacter ?
    Cdt.

    Répondre
  2. Bonjour , j aimerais si possible un connaisseur pour m editer un script de traitement de son, aussi avec possibilité de mettre un top horaire  » il est 21h » j ai les jingles c est déja ça 🙂
    ensuite j ai un souci avec le fichier log , quand je lance l instance les 48 premières heures tout vas bien , ensuite viens surement un tache de logrotation qui gzip le log et créer un autre fichier , là tout se passe aussi , mais le hic c est qu à ce moment là luquidsoap n ecris plus dans le fichier , il reste vide , PS je n ai pas mis d option log dans liquidsoap car ça dois etre configurer par default , Merci à vous
    Ps vous pouvez me contacter sur mailto:pub@cambosfm.eu

    Répondre
  3. Il y est possible d’installer Liquidsoap 1.2.1en suivant ce tuto (en anglais) : https://docs.google.com/document/d/1g_1M0DT062QnlzZSs5HazH1HMVTksURFYqqauCk7H9c/edit?usp=sharing
    Lors de la commande :
    $ sudo nano /etc/init.d/liquidsoap
    Laisser vide : Ctrl+O puis Ctrl+X
    Terminer le tuto, puis reprener le tuto ci-dessus à :
    $ sudo nano /etc/liquidsoap/radio.liq
    et ajouter la ligne : set(« log.file.path », »/tmp/basic-radio.log »)
    puis :
    $ sudo chown -R pi /tmp/basic-radio.log
    au lieu de : $ sudo chown -R pi /usr/log/liquidsoap

    Répondre

Laisser un commentaire