vendredi 8 septembre 2017

Liquidsoap sur Raspbian comme client source pour Icecast ou Shoutcast


Liquidsoap est un projet porté par le groupe de développeurs Opensource Savonet: http://savonet.sourceforge.net/savonet.html
Liquidsoap est un générateur de flux audio ( source) qui prend un flux audio ( micro, fichier musical etc ...) à son entrée, qui le compresse (encode en mp3, ogg etc ...) et qui l'envoie à un serveur de diffusion Icecast ou Shoutcast.
Chaque flux représente un point de montage différent.

 Procédure d'installation et de paramétrage de Liquidsoap

1) Mettre à jour Raspbian:

sudo apt-get update
sudo apt-get upgrade

2) Installer Opam qui gère les paquets pour OCaml :

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

3) Créer un utilisateur 'liquidsoap' ajouté au groupe 'audio' :

Un mot de passe est demandé pour le nouvel utilisateur 'liquidsoap'

sudo adduser liquidsoap
sudo adduser liquidsoap audio


4) Changer d'utilisateur et de répertoire :

su liquidsoap
cd ~

5) Lancer les commandes suivantes,
mais ATTENTION, lorque vous lancez la commande :
opam depext taglib mad lame vorbis cry pulseaudio liquidsoap
il vous sera demandé si vous voulez installer ou non les paquets, répondez NON !!

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

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

6) Configurer liquisoap :

sudo ln -s /home/liquidsoap/.opam/system/bin/liquidsoap /usr/bin/liquidsoap
sudo mkdir /etc/liquidsoap
sudo nano /etc/liquidsoap/icecastradio.liq # exemple de config pour envoyer le flux vers icecast
sudo nano /etc/liquidsoap/shoutcastradio.liq # exemple de config pour envoyer le flux vers shoutcast

7) Exemples de fichiers de configuration :

En fait, contrairement à d'autres logiciels, Liquidsoap n'a pas de fichier de configuration à proprement parlé, mais tous les paramètres lui sont passés sur une seule ligne de commande très longue. Pour plus de commodité on écrit cette ligne de commande dans un fichier de type script liq avec en première ligne #!/usr/bin/liquidsoap . Ce script .liq sera appelé dans un terminal lors de son exécution.
Après lancement de la commande, depuis un navigateur à l'adresse du serveur on visualise le point de montage du flux. Pour écouter le flux il suffit d'ouvrir avec un player audio (VLC etc ..) sur l'adresse du serveur. 

 Pour plus de détails sur les paramètres de liquidsoap et pour d'autres exemples : http://savonet.sourceforge.net/doc-svn/documentation.html

__ 7.a) Cas d'envoi du flux audio vers un serveur Icecast:

- Exemple de fichier ( par ex. : icecastradio.liq )  de configuration de liquidsoap pour envoyer le flux audio vers un serveur Icecast:

Les paramètres host, password et port vous sont donnés par l'administrateur du serveur Icecast ou Shoutcast.

#!/usr/bin/liquidsoap
set("log.file.path", "/tmp/basic-radio.log")
output.shoutcast(%mp3,
host="xxx.myradiostream.com",
port=xxxxx,
password="xxxxxx",
url="http://xxx.myradiostream.com:le_port/",
name="Ma Radio",
genre="pop",
#description="The Best of pop Music",
public=false,
fallible=true,
playlist("~/Music"))

__ 7.b) Cas d'envoi du flux audio vers un serveur Shoutcast :

- Exemple de fichier ( par ex. : shoutcastradio.liq )  de configuration de liquidsoap pour envoyer le flux audio vers un serveur Shoutcast:

Les paramètres host, password, port et mount vous sont donnés par l'administrateur du serveur Shoutcast.

#!/usr/bin/liquidsoap
set("log.file.path", "/tmp/basic-radio.log")
output.icecast(%mp3,
host="xxx.caster.fm",
port=xxxxx,
password="xxxxxx",
mount="listen.mp3",
url="http://xxx.caster.fm/",
name="Ma Radio",
genre="pop",
description="The Best of pop Music",
public=false,
fallible=true,
playlist("~/Music"))

8) Changer les droits des fichiers de configuration et créer un fichier log :

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

9) Démarrer le /les flux,
chacun dans une console séparée avec la commande /etc/liquidsoap/nomdufichierdeparametrage.liq, pour notre exemple les 2 commandes sont executées dans des consoles séparées:

/etc/liquidsoap/icecastradio.liq
/etc/liquidsoap/shoutcastradio.liq


Aucun commentaire:

Enregistrer un commentaire