[Tuto] Liquidsoap + Raspberry Pi via Opam

Ce tutoriel fait suite à un précédent post sur l’installation de Liquidsoap sur Raspberry Pi, afin d’encoder un flux audio et le transmettre à un serveur Icecast. Ce second tuto indique comment installer Liquidsoap en passant par Opam (un gestionnaire de paquet pour OCaml, un langage informatique). L’avantage de cette installation c’est qu’elle permet d’obtenir la dernière version de Liquidsoap.

Pour l’écriture de ce tutoriel, j’ai bénéficié de l’aide de d’autres utilisateurs de Liquidsoap via la mailing-list. Je tiens à remercier Nicholas pour le partage de son tutoriel  ainsi que Romain Beauxis (contributeur de Liquidsoap) pour son aide.

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 Etcher 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

On commence par installer Opam et M4, indispensable avant d’initialiser Opam

$ sudo apt-get install opam
$ sudo apt-get install m4

Puis, nous allons créer l’utilisateur “liquidsoap” que nous allons ajouter au groupe “audio”

$ sudo adduser liquidsoap
$ sudo adduser liquidsoap audio

Il vous sera demandé de créer un mot de passe pour l’utilisateur.
On change d’utilisateur et on modifie le dossier dans lequel on se trouve

$ su liquidsoap
$ cd ~

Pour la suite, le terminal risque d’indiquer des erreurs, elles n’ont aucune incidence sur le fonctionnement de Liquidsoap.
Il faudra répondre positivement (y) lors de la demande pour la mise à jour de .bashrc

$ opam init
$ exit
$ su liquidsoap
$ opam update
$ opam install depext
$ opam depext taglib mad lame vorbis cry pulseaudio liquidsoap
$ exit

Attention à ne PAS accepter l’installation des paquets à cette étape → il faut répondre “n”

$ sudo apt-get install libmp3lame-ocaml-dev libtaglib-ocaml-dev libalsa-ocaml-dev libpulse-ocaml-dev libmad-ocaml-dev libcry-ocaml-dev libvorbis-ocaml-dev libogg-ocaml-dev
$ su liquidsoap
$ opam install lame pulseaudio mad alsa taglib cry liquidsoap
$ exit

Liquidsoap est maintenant installé ! 

Configuration

Il nous reste à configurer Liquidsoap et d’ajouter les informations nécessaires : choix de l’encodage, adresse et port du serveur, informations du flux …

$ sudo ln -s /home/liquidsoap/.opam/system/bin/liquidsoap /usr/bin/liquidsoap
$ sudo mkdir /etc/liquidsoap
$ sudo nano /etc/liquidsoap/radio.liq

Exemple de fichier radio.liq

#!/usr/bin/liquidsoap
set("log.file.path", "/tmp/basic-radio.log")

stream = input.alsa(device="plughw:1,0")
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)

Attention à la valeur indiquée pour “plughw”, il s’agit de savoir quelle carte son utiliser. Vous pouvez lancer la commande “arecord -l” pour savoir quelle carte son utiliser.

Puis on termine la configuration

$ sudo chmod +x /etc/liquidsoap/radio.liq
$ sudo nano /tmp/basic-radio.log
$ sudo chown -R pi /tmp/basic-radio.log

Pour démarrer le flux, il suffit de lancer la commande et de se rendre à l’adresse du flux

$ /etc/liquidsoap/radio.liq

6 réflexions au sujet de “[Tuto] Liquidsoap + Raspberry Pi via Opam

  1. SAlut,
    je reviens à la charge. J’ai suivi le tuto mais bien sûr je coince.
    Tout d’abord quand vous mentionnez de ne pas installer les paquets, desquels s’agit ils ? j’ai peur de les avoir installer …
    Et ensuite lorsque que je veux lancer le la commande pour démarrer le flux j’ai ceci : “/etc/liquidsoap/radio.liq
    bash: /etc/liquidsoap/radio.liq : /usr/bin/liquidsoap : mauvais interpréteur: Aucun fichier ou dossier de ce type” j’ai alors googlé pour avoir la solution et j’ai dos2unix le radio.lib. Mais rien n’y fait.
    Où aurai je fauté ?
    Merci beaucoup !
    • Bonjour,
      Lorque vous lancez cette commande :
      $ opam depext taglib mad lame vorbis cry pulseaudio liquidsoap
      il vous est demandé si vous voulez installer ou non les paquets.

      Je vous invite à repartir de zéro en réinstallant l’image de Raspbian

  2. [Note pour plus tard]
    Pour l’auto-start de liquidsoap :

    $ sudo raspi-config
    Boot Options → Desktop / CLI → Console Autologin → Ok → reboot

    $ sudo nano .bashrc

    if [ $(tty) == /dev/tty1 ]; then
    /etc/liquidsoap/radio.liq
    fi

Laisser un commentaire