Installation & paramétrage d’un serveur Streaming Icecast & Ice Radio

  • start stream : ices -c ices.conf
  • Next song: ices SIGUSR1 [non testé]
  • Make List : ls -1 /var/music/*.mp3 >> /etc/icecast2/playlist.txt
  • Etat Serveur : http://www.blue-bears.com:8010/
  • Start serveur : /etc/init.d/icecast2 start
  • Stop serveur : /etc/init.d/icecast2 stop
  • Kill stream : killall ices
  • Fichiers conf : /usr/local/etc/
  • Fichier xml : /etc/icecast2/icecast.xml
  • Playlist : /etc/icecast2/playlist.txt
  • Les logs : /var/log/ices
  • Remplacer le f…ing caractère ? dans les noms de fichier :
    • for f in *.mp3; do mv « $f » « $(echo $f | iconv -f utf8 -t ascii//TRANSLIT | sed ‘y/\?/-/’) »; done
    • Trouver l’inode du fichier : ls -lisa
    • Supprimer l’inode : find . -inum 782263 -exec rm -i {} \; ou 782263 est un inode, la première colonne de ls -lisa

  • Installation ICECAST:

    • sudo apt-get install icecast2
    • Pas mal de messages d’insultes … mais une install aboutie, le user Icecast2 est crée (je lui ajoute ensuite un mot de passe) ainsi que le groupe icecast..
      • v1235:~# apt-get install icecast2
        Lecture des listes de paquets... Fait
        Construction de l'arbre des dépendances
        Lecture des informations d'état... Fait
        Paquets suggérés :
         ices2
        Les NOUVEAUX paquets suivants seront installés :
         icecast2
        0 mis à jour, 1 nouvellement installés, 0 à enlever et 1 non mis à jour.
        Il est nécessaire de prendre 307 ko dans les archives.
        Après cette opération, 807 ko d'espace disque supplémentaires seront utilisés.
        Réception de : 1 http://ftp.fr.debian.org/debian/ squeeze/main icecast2 i386 2.3.2-6 [307 kB]
        307 ko réceptionnés en 0s (1 194 ko/s)
        Sélection du paquet icecast2 précédemment désélectionné.
        (Lecture de la base de données... 62516 fichiers et répertoires déjà installés.)
        Dépaquetage de icecast2 (à partir de .../icecast2_2.3.2-6_i386.deb) ...
        Traitement des actions différées (« triggers ») pour « man-db »...
        Paramétrage de icecast2 (2.3.2-6) ...
        Ajout du groupe « icecast » (GID 117)...
        Fait.
        Ajout de l'utilisateur système « icecast2 » (UID 114) ...
        Ajout du nouvel utilisateur « icecast2 » (UID 114) avec pour groupe d'appartenance « icecast » ...
        chage : le fichier des mots de passe cachés /etc/shadow n'existe pas
        /usr/bin/chage a échoué avec un code de retour 15, indiquant que le masquage des mots de passe n'est pas activé, impossible de leur attribuer une durée de vie. Poursuite de la procédure...
        Le répertoire personnel « /usr/share/icecast2 » n'a pas été créé.
        icecast2 daemon disabled - read /etc/default/icecast2.
      • Contrairement à ce que dit le log : le répertoire perso « /usr/share/icecast2 » à bien été crée(root/root).
      • paramétrage du fichier très complet de config : /etc/icecast2/icecast.xml
        • les PSW d’abord (user admin / psw : p…..c)
        • L’ajour d’un répertoire /stream dans etc/icecast2/ avec groupe icecast2 et propriétaire icecast
        • Le changement du socket port de 8000 (de peur que cela ne créé des conflits avec le serveur web) en 8010
        • l’ajout du mount (en virant les accents du tuto français => conflit UTF-8)
        •  <mount>
                  <!-- Nom du point de montage avec ou sans extension (.mp3,.ogg) -->
                  <mount-name>/stream</mount-name>
                  <!-- Nom d'utilisateur specifique a ce point, 
                  si vous utilisez de vieux clients pour transmettre le flux, il faut mettre "source"
                  comme nom d'utilisateur -->
                  <username>icecast2</username>
                  <!-- Mot de passe specifique a ce point -->
                  <password>pan....c</password>
                  <!-- Nombre d'utilisateur maximal -->
                  <max-listeners>500</max-listeners>
              </mount>
        • passage en super user Icecast:
        •  su icecast2 -s /bin/bash
        • Lancement du démon :
        • icecast2@v1235:/root$ icecast2 -c /etc/icecast2/icecast.xml
        • BINGO !!!! sur www.mon_nom_de_serveur.com:8010
  • Installation Ice : (9:00)
    • Installation Libshout :
      • apt-get install libshout3-dev
    • installation libxml2-dev:
      • apt-get install libxml2-dev
    • installation Lame :
      • Ajout dépot : deb http://www.debian-multimedia.org/ etch main
      • a /etc/apt/sources.list + refresh
      • apt-get update
      • http://www.funix.org/fr/linux/main-linux.php?ref=base-video&page=full
      • Download de http://sourceforge.net/projects/lame/ en tar.gz dans /tmp/
      • décompression (adapter le N° de version)
      • tar xvfz lame-3.98.4-0.0.tar.gz
      • se placer dans le répertoire décompressé puis :
      • ./configure
         make
      • et en root :
      • make install
      • apt-get install lame
      • Lame semble installé quand on liste les packages :
      •  dpkg -l lame*
        ||/ Nom Version Description
        +++-==============================-
        ii lame 3.98.4-0.0 LAME Ain't an MP3 Encoder
        
        
    • Installation Ice 2.0 :
      • cd /tmp/
      • liste versions ici : http://downloads.us.xiph.org/releases/ices/
      • download la dernière :
      • wget http://downloads.us.xiph.org/releases/ices/ices-2.0.2.tar.gz
      • tar xvzf ices-2.0.2.tar.gz
      • se positionner dans le répertoire de base :
      • cd ices-2.0.2
         ./configure --with-lame
        make
        make install
      • l faut modifier le fichier modèle de conf de ices qui se trouve dans /tmp/ices-2.0.2/confPour commencer, copier le fichier dans /etc/ sous le nom ices.xmlEnsuite dans
        <instance><!-- Server details:
                        You define hostname and port for the server here, along with
                        the source password and mountpoint.  
        --><hostname>localhost</hostname><port>8000</port><password>hackme</password><mount>/example1.ogg</mount>

        vous mettez les paramètres du server Icecast + mot de passe icecast.Enfin, il vous faut créer le fichier playlist.txt pour que ices sache quoi lire ! Le fichier playlist.txt est donc un fichier txt qui contient les paths de tous les morceaux à mettre dans la playlist, avec un path complet par ligne, c’est à dire qu’on ne peut pas utiliser * pour mettre tous les morceaux d’un album.

      • création du répertoire de log : /var/log/ices
      • Lancement de Ices :
        • ices /etc/ices.xml
      • log error :
        • WARN playlist-builtin/playlist_read Corrupt or missing data in file (/var/music/Pink Floyd – High hopes (Division bell).mp3)
        • ICE 2.0 pas compatible MP3 !!! FU….CK !!!     A SUIVRE !!!
    • Installation ICE 0.4:
      • cd /usr/src/
        wget http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz
        tar xvzf ices-0.4.tar.gz
        cd ices-0.4
        ./configure --with-lame
        make
        make install
      • Renseigner (Hostname, PSW, playlist, etc… cf supra) et renommer le fichier conf dans : /usr/local/etc
      • en ices.conf
      • Lancer ices :
      • ices -c ices.conf
      • Erreur : ices: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory
      • FUCK !!!
      • cd /etc/ld.so.conf.d
      • Create a file a new file with an editor of your choice called : custom-libs.conf Inside that file add the following line and save:
      • /usr/local/lib
        /usr/lib
      • Next exit your editor and type:
      • ldconfig
      • Erreur : (mais on s’approche du but)
      • Playing /var/music/Pink Floyd – High hopes (Division bell).mp3
        Error during send: Mount failed on http://www.blue-bears.com:8010/stream, error: Login failed
      • A suivre !!!! (15:30)
      • 13/04/2016 : 15:30
      • Les fichiers config sont là :
        • /etc/icecast2/icecast.xml
        • /usr/local/etc/ices.conf
      • BINGO : 18:00
        • J’avais mis le point de montage de la directive <Mountpoint> sur un répertoire /Stream en fait il faut le laisser sur « /ices »
          <Mountpoint>/ices</Mountpoint>
      • Mais j’ai une nouvelle erreur :-((((
        • Il n’arrive pas à trouver les fichier de musique car il tronque .mp3 en .mp
        • Error opening /var/music/This Is How We Do (Official).mp: Error opening: No such file or directory
        • BINGO! 18:30
        • Les fichiers DOIVENT avoir un « – » dans leur nom de fichier
      • Des problèmes de buffering subsistent :
        • Passage de la directive <Reencode> en 1 => utilisation de LAME pour avoir un débit de flux standard en MP3 à 128 bits :[ices.conf]
          • <Reencode>1</Reencode>
          • <Bitrate>128</Bitrate>
      • Créer un fichier playlist à partir des fichiers .mp3 en répertoire (ajout en fn de fichier)
        • ls -1 /var/music/*.mp3 >> /etc/icecast2/playlist.txt
      • Passage en cross fading 5 secondes entre les morceaux.[ices.conf]
        • <Crossfade>5</Crossfade>
      • Création raccourci ftp/music + autorisation accès dans fichier config ProFtpd
        • mkdir /home/ftp/lien_vers_programmes
          mount --bind /usr/programmes /home/ftp/lien_vers_programmes
        • mkdir /home/vfsalyv_ftp/music
          mount --bind /var/music /home/vfsalyv_ftp/music
      • MONTER un second flux (Musique Classique)
  • Biblio :