Création d’une webradio sous Ubuntu avec Amarok et Darkice

SOMMAIRE :

Avertissement !
Les pré-requis
Présentation de la solution de streaming
Installation et compilation de darkice
Installation d’AMAROK 1.4
Automatiser le lancement de darkice + faire des tests
Le gestionnaire de tâche planifié
Installer ICECAST2 **

** Avertissement !

  • Les manipulations qui suivent nécessitent des manipulations à effectuer avec des droits superutilisateurs (root) dont le mauvais usage peut engendrer des effets néfastes pour votre système. Je ne suis donc pas responsable de vos erreurs. * (j’ai repris ce texte d’avertissement très explicite sur le site de )

    Les pré-requis

    Vous devez avoir ubuntu-restricted-extra et lame , pour ce faire cliquez sur ce lien : apt://ubuntu-restricted-extras,lame

    Présentation de la solution de streaming

    La solution présenté ici a été retenu pour plusieurs raisons :

    AMAROK 1.14

  • Fiabilité lors d’une lecture de musique en continue alors que d’autres logiciels boguent au bout de quelques temps (par exemple exaile)
  • Meilleur qualité d’utilisation lors de l’ajout de musique dans des playlists par rapport à mpd et son frontend sonata par exemple.

    DARKICE

  • Programme qui envoi le son "streamé" (dans mon cas, depuis alsa) vers un serveur shoutcast hébergé par streamakaci©
  • Possibilité d’envoyer le son vers un serveur icecast2 en simultané (pour un futur streaming en ogg vorbis).
  • Plus grande fiabilité que edcast-jack

    Installation et compilation de Darkice

    Nous devons installer Darkice et Amarok 1.4, nous allons commencer par darkice !

    DARKICE
    Pour des raisons liés au copyright sur le support du mp3, Darkice n’est pas compilé avec le format mp3 en standard.
    Nous devons donc le compiler nous même, mais comme il est dans les dépôts source nous pouvons faire ça très simplement en suivant ce tuto :

    C’est parti pour la compilation de Darkice:

    Tout d’abord, il faut installer build-essential, dpkg-dev et fakeroot, un clic sur le lien suivant permet d’installer les paquets très facilement: apt://build-essential,dpkg-dev,fakeroot (d’autres méthodes existent : ). Bien attendre que tout soit installé et ne pas faire autre chose tant que vous n’avez pas cliqué sur OK (le système vous dit que tout à bien été installé, appuyer sur "Afficher le bureau", en bas à gauche pour voir si des fenêtres ne sont pas cachées).

    Ensuite lancez un terminal : Applications->Accessoires->Terminal

    tapez :
    apt-get source darkice (ce qui va installer les sources de darkice)

Ensuite rendez-vous dans le répertoire de darkice puis dans le répertoire debian

cd darkice-0.19 puis entrer, puis cd debian puis entrer

Utilisez ensuite la commande suivante :

gksudo gedit rules gksudo plutôt que sudo car nous lançons un logiciel gtk)

Recherchez la ligne :
dh_auto_configure — –prefix=/usr –sysconfdir=/usr/share/doc/darkice/examples Et ajouter y ceci : –with-lame

Cela vous donnera cette ligne :

dh_auto_configure — –prefix=/usr –sysconfdir=/usr/share/doc/darkice/examples –with-lame

Enregistrez rules et quittez gedit (vous devriez revenir au terminal)

Ensuite dans votre console tapez :

sudo apt-get build-dep darkice (ainsi nous allons télécharger toutes les dépendances sources de darkice)

Il devrait s’afficher ceci :
Les NOUVEAUX paquets suivants seront installés : debhelper dpatch gettext html2text intltool-debian libasound2-dev libfaac-dev libjack-dev libjack0.100.0-dev libmail-sendmail-perl libmp3lame-dev libogg-dev libsys-hostname-long-perl libtwolame-dev libvorbis-dev patchutils po-debconf
0 mis à jour, 17 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 4677ko dans les archives.
Après cette opération, 18,4Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?

Taper O puis entrer

Il vous faut maintenant quitter le répertoire debian, grâce à la commande :

cd .. (ce qui vous fait aller au répertoire parent)

Maintenant tapez :

sudo fakeroot debian/rules binary

Un paquet deb sera créé dans le répertoire parent.

Vous pouvez y aller en tapant cd .. Puis tapez : sudo dpkg -i darkice_0.19-1ubuntu2_i386.deb (il se peut que vous n’ayez pas la même version de darkice, vérifier en tapant : ls )

Voilà darkice est installé avec le support mp3 !

Il vous faut maintenant configurer le fichier darkice.cfg qui ce situe ici : /etc/darkice.cfg

Puis dans le terminal (console) tapez :

gksudo gedit /etc/darkice.cfg

A l’intérieur, ajoutez les lignes suivantes (à modifier suivant vos besoins, avec vos mots de passe et login) :

  • [general] *

  • duration = 0 # durée de l’encodage, en seconde. 0 pour tout le temps *

  • bufferSecs = 5 # Taille de buffer d’attente, en seconde *

  • reconnect = yes # yes, tente de se reconnecter en cas de déconnection *

  • [input] # Entrée, dans ce cas c’est le son provenant de la carte son qui est utilisé (il plus particulièrement celui de l’entrée son de la carte son *

  • device = hw:0,0 # Utilise le périphérique alsa comme entrée *

  • sampleRate = 44100 # Échantillonnage *

  • bitsPerSample = 16 # Bits par sample, laissez 16 *

  • channel = 2 # Canal. 1 = mono, 2 = stereo *

  • [shoutcast-0] # Pour un serveur shoutcast *

  • bitrateMode = abr # average bit rate *

  • bitrate = 50 # bitrate du flux envoyer au server *

  • quality = 1 # Meilleur qualité *

  • server = str75.streamakaci.com #adresse du serveur, en local c’est localhost *

  • port = 7931 # port du serveur shoutcast, normalement cela devrait être 7930 mais bizarrement c’est 7931 qui fonctionne pour shoutcast *

  • password = **** # Mots de passe du server *

  • channel = 2 # # Canal. 1 = mono, 2 = stereo *

  • name = Meltin’pot # Nom du flux *

  • description = Meltin’pot la webradio du bassin minier *

  • url = http://www.meltinpot.fr #Url relative au flux *

  • genre = Radio jeune # genre du flux *

  • public = yes # Dire si le flux est en ligne *

  • format=mp3 # Format d’encodage mp3 *

  • [icecast2-0] # Pour un serveur ICECAST2 *

  • bitrateMode = vbr # average bit rate *

  • format = vorbis # Format d’encodage: ogg vorbis *

  • bitrate = 128 # bitrate du flux envoyé au server *

  • quality = 0.4 # *

  • server = 127.0.0.1 ##adresse du serveur, en local c’est localhost ou 127.0.0.1 *

  • port = 8000 # port du serveur ICECAST 2.0 en générale : 8000 *

  • password = *** # Mots de passe pour le serveur icecast2 *

  • mountPoint = music.ogg # Point de montage du serveur icecast2 *

  • name = Meltin’pot # Nom du flux *

  • description = Meltin’pot la webradio du bassin minier *

  • url = http://www.meltinpot.fr # Adresse du flux *

  • genre = Radio jeune #Genre du flux *

  • public = yes # Dire si le flux est en ligne *

    Enregistrez et quittez !

    Pour voir si le streaming fonctionne, tapez :

    darkice -v

    -v (verbose=bavard) pour avoir plus d’infos que ce qu’il se passe !

    Si tout marche bien vous devriez avoir ceci (j’ai enlevé des lignes pour que ça soit plus clair) :

  • 29-Jul-2009 16:04:44 Using ALSA DSP input device: hw:0,0 *

  • 29-Jul-2009 16:04:44 encoding *

  • 29-Jul-2009 16:04:44 set lame mode 1 *

  • 29-Jul-2009 16:04:44 set lame channels 2 *

  • 29-Jul-2009 16:04:44 set lame in sample rate 44100 *

  • 29-Jul-2009 16:04:44 set lame out sample rate 44100 *

  • 29-Jul-2009 16:04:44 set lame abr bitrate 3 *

  • 29-Jul-2009 16:04:44 set lame abr mean bitrate 50 *

  • 29-Jul-2009 16:04:44 set lame lowpass frequency 0 *

  • 29-Jul-2009 16:04:44 set lame highpass frequency 0 *

  • 29-Jul-2009 16:04:44 set lame psycho acoustic model 1 *

  • 29-Jul-2009 16:04:45 BufferedSink, new peak: 417 *

  • 29-Jul-2009 16:04:45 BufferedSink, remaining: 31583 *

    Faire CTRL-C pour arrêter le défilement

    À ce stade vous émettez ce qui entre dans votre carte son.

    Je n’ai pas réussi à enregistrer directement le son qui passe dans les haut parleurs, j’ai donc acheté un petit câble jack, je l’ai branché dans la sortie son de la carte son et je l’ai fait rentrer dans l’entrée micro.

    P.S. : J’y suis arrivé sur un autre PC, il semble qu’il faille cocher PCM-enregistrement

    Ensuite il faut faire les bon réglages afin que le son ne soit ni trop fort, ni trop faible

    Voici mes entrées et sorties son :

    Le gestionnaire de volume

    Pour moi, j’ai sélectionné l’entrée Micro

    Le contrôleur de niveau d’enregistrement

    Installation d’AMAROK 1.4 (il va envoyer le son à alsa, cad vos hauts parleurs)

    Pour installer amarok1.4 à la place d’amrok2 qui n’a pas encore toutes les fonctionnalités :
    Ajoutez cette ligne dans la liste des dépôts :

    deb http://ppa.launchpad.net/bogdanb/amarok14/ubuntu jaunty main

    Il faut ajouter cette ligne dans le gestionnaire de mise à jour,

    Système->Administration->Sources de mise à jour

    Puis choisir l’onglet : Logiciels de tierces parties

    Cliquez sur ajouter et entrez la ligne: deb http://ppa.launchpad.net/bogdanb/amarok14/ubuntu jaunty main

    Le système va vous proposer de mettre à jour la liste des logiciels, acceptez.

    Puis installer amarok1.4 via synaptic, pour savoir comment faire : , voici amarok 1.4 :

    ça devrait ressembler à ça :

    Automatiser le lancement de darkice + faire des tests

    Création d’un script pour détecter si darkice est lancé et si il n’est pas lancé, le relance.

    Afin d’être sûr que le flux fonctionne en permanence (on émet une webradio quand même), et vu que darkice dysfonctionne parfois… et qu’aucun logiciel d’émission de flux ne fonctionne parfaitement… je suis parti du principe qu’il fallait détecter si darkice était lancé pour le relancer au cas où.

    J’en profite aussi pour relancer darkice si la connexion internet ne fonctionne plus (sinon source de plantage).

    Allez dans un répertoire que vous aurez préalablement créé, par exemple pour moi : /home/votrenomd’utilisateur/script et créez un fichier texte en faisant clic droit puis "Créer un document -> fichier texte"

    Nommer le "script"

    A l’intérieur du fichier texte entrez :

    !/bin/sh

    while :
    do
    variable=ps -d | grep darkice
    if [ "$variable" = "" ]
    then
    darkice &
    else
    echo oui
    fi
    ping -q -c 2 www.google.fr >/dev/null 2>&1
    if [ $? -eq 0 ]
    then
    echo non
    else
    killall darkice
    fi
    done

    Puis enregistrez.

    Faite un clic droit sur votre fichier, puis modifiez les permissions pour permettre l’exécution.

    Ensuite allez sur votre bureau et faîtes un clic droit et choisir "Créer un lanceur"

    Allez choisir votre script (en cherchant son chemin), puis choisissez lui une icône.

    Voilà, c’est fait

    Le gestionnaire de tâche planifié

    Nous allons dire au gestionnaire de tâche planifiées qu’il faut tuer Darkice 4 fois par jour ainsi nous sommes sûr quand cas de souci il sera relancé toutes les 6 heures ! Le script que nous avons créé avant relancera automatiquement Darkice !

    D’abord pour que ce soit plus facile à faire, il faut installer gnome-schedule en cliquant sur ce lien apt://gnome-schedule

    Pour créer une tâche planifiée faire : "Nouveau -> Une tâche lancée régulièrement"

    Puis dans titre mettre : Relancer darkice

    Dans commande mettre : killall darkice

    Puis choisir expert, dans heure mettre 0 et dans minute mettre 0

    Dans les autres cases laisser *, ce qui veut dire que que la commande sera effectué tous les jours, tous les mois, tous les jours de la semaine.

    Puis cliquez sur : "Ajouter comme un modèle", comme cela vous n’aurez qu’a sélectionner plusieurs fois votre modèle.

    Refaire "Nouveau" puis : "A partir d’un modèle", choisissez et modifiez votre tâche plusieurs fois

    Il ne vous restera plus qu’a lancer Amarok ainsi que votre script à chaque démarrage de l’ordinateur (bien sûr normalement l’ordinateur ne doit jamais redémarrer).

    Installer ICECAST2

    Icecast2 est l’équivalent libre de shoutcast, ce logiciel permet à plusieurs personnes de se connecter à votre flux radio.

    Pour installer Icecast2 cliquer sur ce lien : apt://icecast2 .

    ###

    Éditez le fichier /etc/ icecast 2/ icecast .xml , fichier de configuration de Icecast 2.

    Dans un terminal: gksudo gedit /etc/ icecast 2/ icecast .xml Il y a pas grand chose à modifier, à part les mots de passe. ;-)

    Ceux ci doivent correspondre à ceux inscrit dans votre fichier icecast.cfg

    55 5 524288
    30
    1510
    1
    65535

    VOTRE_MOT_DE_PASSE

    VOTRE_MOT_DE_PASSE


    admin
    VOTRE_MOT_DE_PASSE

    127.0.0.1 Pour faire tourner Icecast 2 en tache de fond, Éditez le fichier ** /etc/default/ icecast 2 ** et modifiez à la fin du fichier pour obtenir :

    ENABLE=true gksudo gedit ** /etc/default/ icecast 2 ** **

    ** Puis relancez icecast2, il peut être nécessaire de le faire deux fois

    sudo /etc/init.d/icecast2 restart Vous pouvez maintenant accéder au serveur icecast 2 à l’adresse ( si vous êtes en local).

    Voilà, amusez-vous bien !

    Pour finir, voici un historique de mes essais: .

    ** Note : Vous pouvez également voir comment créer une webradio grâce à Icecast et Liquidsoap dans ** [ cet article ](/index.php?post/2009/01/17/Mise-en-place-d-une-webradio-avec-Icecast-et-Liquidsoap) ** . **