Pour ajouter un flux MP3 à une radio Icecast, configurez un client source comme BUTT ou Liquidsoap. Indiquez l’adresse du serveur, son port, le mot de passe source et un mountpoint distinct, par exemple /radio.mp3. Icecast distribuera ensuite ce flux aux auditeurs.
Icecast peut diffuser plusieurs flux audio depuis un même serveur. Une radio peut ainsi proposer un flux MP3 très compatible, un flux Opus plus efficace et éventuellement un ancien flux Ogg Vorbis.
Icecast ne produit toutefois pas lui-même le son. Un client source doit lire, capturer ou convertir l’audio, l’encoder en MP3, puis l’envoyer au serveur.
La configuration repose donc sur trois éléments :
- le serveur Icecast ;
- le client source ou encodeur ;
- le mountpoint sur lequel le flux sera publié.
Comment fonctionne une radio Icecast ?
Icecast se place entre la source audio et les auditeurs.
Le parcours ressemble à ceci :
Microphone, table de mixage ou playlist
↓
Client source / encodeur
↓
Serveur Icecast
↓
Navigateurs et lecteurs audio
Le client source établit une connexion authentifiée vers Icecast. Il envoie ensuite continuellement les données audio encodées.
Les auditeurs ne se connectent pas au logiciel du studio. Ils ouvrent une URL servie par Icecast :
https://radio.example.com/radio.mp3Langage du code : JavaScript (javascript)
Cette architecture permet de placer Icecast sur un serveur disposant d’une bonne connexion, tandis que l’encodeur fonctionne au studio ou sur une autre machine.
Qu’est-ce qu’un mountpoint Icecast ?
Un mountpoint est le chemin unique qui identifie un flux sur le serveur.
Exemples :
/radio.mp3
/radio.opus
/radio.ogg
/live.mp3
/mobile.mp3
Chaque mountpoint peut diffuser :
- un programme différent ;
- le même programme dans un autre codec ;
- le même programme avec un autre débit ;
- un flux principal ou de secours.
Par exemple :
| Mountpoint | Format | Usage |
|---|---|---|
/radio.mp3 | MP3 à 128 kbit/s | Compatibilité maximale |
/radio-mobile.mp3 | MP3 à 64 kbit/s | Connexions mobiles limitées |
/radio.opus | Opus à 64 ou 96 kbit/s | Meilleure efficacité |
/live.mp3 | MP3 en direct | Émission ou événement ponctuel |
Un mountpoint doit commencer par une barre oblique. Évitez les espaces, les accents et les caractères spéciaux.
Je recommande d’ajouter une extension cohérente avec le format, même si certains anciens documents Icecast indiquent que les flux MP3 peuvent s’en passer :
/radio.mp3
Cette convention aide les navigateurs, les lecteurs et les administrateurs à identifier immédiatement le codec.
MP3, Opus ou Ogg Vorbis : quel format choisir ?
MP3 reste le choix le plus compatible. Il fonctionne avec la majorité des navigateurs, lecteurs audio, autoradios, téléviseurs connectés et applications de radio.
Opus offre généralement une meilleure qualité à débit égal, surtout pour la voix et les faibles débits. Toutefois, certains équipements anciens ne le prennent pas en charge.
Ogg Vorbis reste exploitable, mais Opus l’a largement remplacé pour les nouveaux projets.
| Format | Avantages | Limites |
|---|---|---|
| MP3 | Compatibilité presque universelle | Moins efficace aux faibles débits |
| Opus | Excellente qualité, faible débit, faible latence | Compatibilité moindre avec les anciens appareils |
| Ogg Vorbis | Format ouvert et bien établi | Moins pertinent qu’Opus pour un nouveau flux |
| AAC | Bonne qualité aux débits modérés | Encodage et compatibilité variables selon les outils |
Pour une radio grand public, le duo suivant fonctionne bien :
- un flux MP3 à 128 kbit/s pour la compatibilité ;
- un flux Opus à 64 ou 96 kbit/s pour l’efficacité.
Quelle méthode utiliser pour ajouter le flux MP3 ?
| Besoin | Outil recommandé |
|---|---|
| Diffuser un microphone ou une table de mixage | BUTT |
| Diffuser depuis Windows, macOS ou Linux | BUTT ou Mixxx |
| Automatiser une playlist permanente | Liquidsoap |
| Convertir un flux Ogg ou Opus existant en MP3 | Liquidsoap |
| Produire plusieurs débits simultanément | Liquidsoap |
| Gérer jingles, secours et programmation horaire | Liquidsoap |
BUTT convient mieux à un direct simple. Liquidsoap demande davantage de configuration, mais devient vite indispensable pour une radio automatisée.
Informations nécessaires avant de commencer
Le client source doit connaître plusieurs informations fournies par la configuration Icecast.
- Serveur : nom DNS ou adresse IP d’Icecast ;
- Port : souvent
8000en accès direct ; - Utilisateur source : généralement
source; - Mot de passe source : défini dans
icecast.xml; - Mountpoint : par exemple
/radio.mp3; - Codec : MP3 ;
- Débit : par exemple 128 kbit/s ;
- Canaux : mono ou stéréo ;
- Fréquence : généralement 44,1 ou 48 kHz.
Dans la configuration globale d’Icecast, le mot de passe source se trouve normalement dans la section d’authentification :
<authentication>
<source-password>REMPLACEZ_CE_MOT_DE_PASSE</source-password>
<relay-user>relay</relay-user>
<relay-password>AUTRE_MOT_DE_PASSE</relay-password>
<admin-user>admin</admin-user>
<admin-password>MOT_DE_PASSE_ADMIN</admin-password>
</authentication>Langage du code : HTML, XML (xml)
N’utilisez jamais les valeurs d’exemple comme hackme sur un serveur accessible depuis Internet.
Méthode 1 : ajouter un flux MP3 avec BUTT
BUTT signifie Broadcast Using This Tool. Ce client source libre fonctionne sous Windows, macOS et Linux.
Il peut capturer :
- un microphone ;
- une entrée ligne ;
- une table de mixage USB ;
- une interface audio ;
- la sortie d’un logiciel de mixage, selon le routage audio du système.
1. Installer BUTT
Téléchargez BUTT depuis son site officiel, puis installez la version adaptée à votre système.
Évitez les anciens dépôts de logiciels qui proposent des versions modifiées, accompagnées d’installateurs ou simplement fossilisées depuis dix ans.
2. Ajouter le serveur Icecast
- Ouvrez les réglages de BUTT.
- Ajoutez une nouvelle configuration de serveur.
- Choisissez le type Icecast.
- Saisissez le nom d’hôte du serveur.
- Indiquez le port Icecast.
- Saisissez le mot de passe source.
- Choisissez le mountpoint
/radio.mp3. - Conservez l’utilisateur
source, sauf configuration particulière.
Exemple :
Type : Icecast
Serveur : radio.example.com
Port : 8000
Utilisateur : source
Mot de passe : MOT_DE_PASSE_SOURCE
Mountpoint : /radio.mp3
Si Icecast passe derrière un reverse proxy HTTPS, le port public peut être 443. La connexion du client source dépend alors de la configuration du proxy et de la prise en charge TLS du client.
3. Configurer l’encodage MP3
Choisissez MP3 comme codec.
Pour une radio musicale généraliste :
Codec : MP3
Débit : 128 kbit/s
Fréquence : 44 100 Hz ou 48 000 Hz
Canaux : stéréo
Pour une radio principalement parlée :
Codec : MP3
Débit : 48 à 64 kbit/s
Fréquence : 44 100 Hz
Canaux : mono
Pour un flux musical de meilleure qualité :
Codec : MP3
Débit : 192 kbit/s
Fréquence : 44 100 Hz
Canaux : stéréo
Augmenter le débit augmente directement la bande passante nécessaire pour chaque auditeur.
4. Sélectionner l’entrée audio
Dans les réglages audio, sélectionnez l’entrée réellement utilisée :
Vos mises à jour vous font peur ?
PHP 8.x qui casse un plugin, un thème qui n'est plus maintenu, une mise à jour de WooCommerce qui change tout — je gère les montées de version proprement, avec environnement de staging et rollback prévu.
Mettons votre stack à jour sans risque →- microphone USB ;
- interface audio ;
- entrée ligne ;
- sortie virtuelle d’un logiciel ;
- table de mixage.
Vérifiez le niveau avant d’émettre. Un signal trop faible oblige l’auditeur à monter le volume. Un signal saturé restera désagréable, même avec un débit de 320 kbit/s et beaucoup d’optimisme.
5. Ajouter les informations de la radio
Renseignez les métadonnées du flux :
- nom de la radio ;
- description ;
- genre ;
- adresse du site ;
- statut public ou privé.
Ces informations apparaissent dans la page d’état Icecast et peuvent être transmises aux annuaires lorsque la publication est activée.
6. Démarrer la diffusion
Enregistrez les réglages, puis cliquez sur le bouton de connexion de BUTT.
Le journal doit indiquer une connexion réussie au serveur.
Ouvrez ensuite :
https://radio.example.com/radio.mp3Langage du code : JavaScript (javascript)
Testez également le flux avec VLC :
vlc https://radio.example.com/radio.mp3Langage du code : JavaScript (javascript)
Méthode 2 : ajouter un flux MP3 avec Liquidsoap
Liquidsoap permet de créer une radio automatisée, de lire une playlist, d’ajouter des jingles, de gérer un direct prioritaire et d’envoyer plusieurs formats vers Icecast.
Il convient également pour ajouter un flux MP3 à une radio qui diffuse déjà en Ogg Vorbis ou en Opus.
Installer Liquidsoap
Sur une distribution Linux, utilisez de préférence les paquets adaptés à votre système ou les instructions officielles de Liquidsoap.
Vérifiez ensuite que l’encodeur MP3 est disponible :
liquidsoap --build-config
La prise en charge MP3 dépend généralement de la présence de la bibliothèque LAME dans la construction de Liquidsoap.
Créer une playlist
Créez un fichier contenant un chemin audio par ligne :
/srv/radio/music/morceau-01.flac
/srv/radio/music/morceau-02.mp3
/srv/radio/music/morceau-03.ogg
Enregistrez-le par exemple sous :
/srv/radio/playlists/radio.m3u
Créer un premier script Liquidsoap
Créez le fichier :
/etc/liquidsoap/radio.liq
Ajoutez cette configuration :
#!/usr/bin/liquidsoap
settings.log.stdout.set(true)
music = playlist(
"/srv/radio/playlists/radio.m3u"
)
radio = mksafe(music)
output.icecast(
%mp3(
bitrate = 128,
samplerate = 44100,
stereo = true
),
host = "127.0.0.1",
port = 8000,
user = "source",
password = "MOT_DE_PASSE_SOURCE",
mount = "/radio.mp3",
name = "Ma radio",
description = "Flux MP3 de ma radio",
genre = "Various",
url = "https://www.example.com/",
public = false,
radio
)Langage du code : PHP (php)
Le script :
- charge la playlist ;
- sécurise la source avec
mksafe(); - encode le son en MP3 à 128 kbit/s ;
- se connecte à Icecast en local ;
- publie le flux sur
/radio.mp3.
Adaptez l’hôte si Liquidsoap et Icecast fonctionnent sur des serveurs différents.
Tester la syntaxe
Avant de lancer le flux, vérifiez le script :
liquidsoap --check /etc/liquidsoap/radio.liq
Puis exécutez-le au premier plan :
liquidsoap /etc/liquidsoap/radio.liq
Le journal doit indiquer que le mountpoint est connecté.
Ajouter le MP3 à un flux existant sans relire la playlist
Si Liquidsoap produit déjà un flux Ogg ou Opus, réutilisez la même source audio et ajoutez simplement une seconde sortie.
Exemple :
#!/usr/bin/liquidsoap
music = playlist("/srv/radio/playlists/radio.m3u")
radio = mksafe(music)
output.icecast(
%opus(
bitrate = 96,
samplerate = 48000,
stereo = true
),
host = "127.0.0.1",
port = 8000,
password = "MOT_DE_PASSE_SOURCE",
mount = "/radio.opus",
name = "Ma radio — Opus",
radio
)
output.icecast(
%mp3(
bitrate = 128,
samplerate = 44100,
stereo = true
),
host = "127.0.0.1",
port = 8000,
password = "MOT_DE_PASSE_SOURCE",
mount = "/radio.mp3",
name = "Ma radio — MP3",
radio
)Langage du code : JavaScript (javascript)
Liquidsoap décode la source une seule fois dans son graphe, puis produit les différentes sorties demandées.
L’encodage de plusieurs formats augmente néanmoins la charge processeur.
Convertir un flux Icecast existant en MP3
Vous pouvez également lire un flux distant ou local, puis le transcoder.
Exemple avec un flux Opus existant :
#!/usr/bin/liquidsoap
source_stream = input.http(
"https://radio.example.com/radio.opus"
)
radio = mksafe(source_stream)
output.icecast(
%mp3(
bitrate = 128,
samplerate = 44100,
stereo = true
),
host = "127.0.0.1",
port = 8000,
password = "MOT_DE_PASSE_SOURCE",
mount = "/radio.mp3",
name = "Ma radio — MP3",
radio
)Langage du code : JavaScript (javascript)
Cette méthode est simple, mais elle ajoute :
- une étape de décodage ;
- une nouvelle compression avec perte ;
- de la latence ;
- une dépendance au flux d’origine.
Lorsque cela est possible, produisez les différents formats depuis la source audio non compressée ou depuis le même graphe Liquidsoap.
Configurer le mountpoint dans icecast.xml
Icecast n’exige pas de déclarer chaque mountpoint à l’avance. Un client source peut généralement créer son mountpoint en se connectant.
Une section dédiée devient utile pour définir :
- un mot de passe propre au flux ;
- une limite d’auditeurs ;
- un flux de secours ;
- les métadonnées publiques ;
- des en-têtes HTTP ;
- la publication dans les annuaires.
Exemple minimal :
<mount type="normal">
<mount-name>/radio.mp3</mount-name>
<username>source</username>
<password>MOT_DE_PASSE_MP3</password>
<stream-name>Ma radio — MP3</stream-name>
<stream-description>Flux MP3 principal</stream-description>
<stream-url>https://www.example.com/</stream-url>
<genre>Various</genre>
<bitrate>128</bitrate>
<public>0</public>
</mount>Langage du code : HTML, XML (xml)
Le mot de passe défini dans le mountpoint remplace alors le mot de passe source global pour ce flux.
Adaptez la configuration du client source :
Utilisateur : source
Mot de passe : MOT_DE_PASSE_MP3
Mountpoint : /radio.mp3
Ajouter un flux de secours
Sans source connectée, un mountpoint Icecast disparaît normalement et les auditeurs sont déconnectés.
Un fallback permet de déplacer les auditeurs vers un autre mountpoint lorsque le flux principal s’arrête.
<mount type="normal">
<mount-name>/radio.mp3</mount-name>
<fallback-mount>/secours.mp3</fallback-mount>
<fallback-override>1</fallback-override>
</mount>Langage du code : HTML, XML (xml)
Le flux de secours doit utiliser un format compatible avec le flux principal. Évitez de basculer directement des auditeurs MP3 vers un mountpoint Opus.
Ajouter un direct prioritaire dans Liquidsoap
Liquidsoap peut diffuser une playlist en permanence, puis basculer vers un direct lorsque l’animateur se connecte.
Exemple simplifié :
#!/usr/bin/liquidsoap
settings.harbor.bind_addrs.set(["127.0.0.1"])
music = playlist("/srv/radio/playlists/radio.m3u")
emergency = single("/srv/radio/audio/secours.mp3")
live = input.harbor(
"live",
port = 8080,
password = "MOT_DE_PASSE_DIRECT"
)
radio = fallback(
track_sensitive = false,Langage du code : JavaScript (javascript)
[live, music, emergency]
) output.icecast( %mp3(bitrate = 128), host = « 127.0.0.1 », port = 8000, password = « MOT_DE_PASSE_SOURCE », mount = « /radio.mp3 », radio )
L’ordre du fallback donne la priorité au direct, puis à la playlist, puis au fichier de secours.
Dans cet exemple, le port Harbor écoute uniquement sur 127.0.0.1. Pour recevoir un direct depuis une autre machine, utilisez une architecture sécurisée : VPN, tunnel SSH, reverse proxy adapté ou restriction stricte du pare-feu.
Créer un service systemd pour Liquidsoap
Une radio automatisée doit redémarrer après un reboot ou un plantage.
Créez un service :
sudo nano /etc/systemd/system/radio-liquidsoap.service
Ajoutez :
[Unit]
Description=Flux MP3 Liquidsoap
After=network-online.target icecast2.service
Wants=network-online.target
[Service]
Type=simple
User=liquidsoap
Group=liquidsoap
ExecStart=/usr/bin/liquidsoap /etc/liquidsoap/radio.liq
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetLangage du code : JavaScript (javascript)
Rechargez systemd :
sudo systemctl daemon-reload
Activez puis démarrez le service :
sudo systemctl enable --now radio-liquidsoap.serviceLangage du code : CSS (css)
Consultez son état :
systemctl status radio-liquidsoap.serviceLangage du code : CSS (css)
Et ses journaux :
journalctl -u radio-liquidsoap.service -fLangage du code : CSS (css)
Le compte liquidsoap doit pouvoir lire les playlists, les morceaux et le fichier de secours.
Tester le flux MP3
Ne vous contentez pas de voir le mountpoint dans l’administration Icecast. Testez le flux comme un véritable auditeur.
Avec curl
curl -I https://radio.example.com/radio.mp3Langage du code : JavaScript (javascript)
Vous devez obtenir une réponse réussie et un type de contenu correspondant au flux audio.
Un flux continu ne se comporte pas toujours comme une page Web classique. Pour éviter de télécharger indéfiniment le contenu :
curl --max-time 5 -v https://radio.example.com/radio.mp3 -o /dev/nullLangage du code : JavaScript (javascript)
Avec ffprobe
ffprobe https://radio.example.com/radio.mp3Langage du code : JavaScript (javascript)
La sortie doit indiquer le codec MP3, le débit approximatif, la fréquence d’échantillonnage et le nombre de canaux.
Avec VLC
- Ouvrez VLC.
- Sélectionnez Ouvrir un flux réseau.
- Collez l’URL du mountpoint.
- Lancez la lecture.
Testez également depuis un téléphone utilisant une autre connexion. Ce contrôle révèle les problèmes de DNS, de pare-feu ou de reverse proxy masqués par le réseau local.
Intégrer le flux MP3 dans une page Web
Le lecteur HTML5 natif suffit pour une intégration simple.
<audio controls preload="none">
<source
src="https://radio.example.com/radio.mp3"
type="audio/mpeg"
>
Votre navigateur ne prend pas en charge la lecture audio.
</audio>Langage du code : HTML, XML (xml)
L’attribut preload="none" évite que chaque visiteur commence à télécharger le flux avant d’avoir cliqué sur lecture.
Pour proposer plusieurs formats :
<audio controls preload="none">
<source
src="https://radio.example.com/radio.opus"
type="audio/ogg; codecs=opus"
>
<source
src="https://radio.example.com/radio.mp3"
type="audio/mpeg"
>
Votre navigateur ne prend pas en charge la lecture audio.
</audio>Langage du code : HTML, XML (xml)
Le navigateur choisira normalement la première source qu’il sait lire.
Faut-il encore proposer un fichier M3U ?
Un fichier M3U reste utile pour ouvrir le flux dans un lecteur externe.
Icecast peut générer une playlist en ajoutant .m3u à l’URL du mountpoint :
https://radio.example.com/radio.mp3.m3uLangage du code : JavaScript (javascript)
Le fichier contient alors l’URL du flux. L’extension M3U ne signifie pas que le contenu audio est nécessairement au format MP3 : elle décrit une playlist.
Pour une page Web moderne, utilisez le lecteur HTML5. Conservez le lien M3U comme option destinée à VLC, foobar2000 ou d’autres lecteurs externes.
Calculer la bande passante nécessaire
Le débit du flux est envoyé séparément à chaque auditeur.
La formule simplifiée est :
bande passante = débit du flux × nombre d’auditeurs
Exemple avec un flux MP3 à 128 kbit/s et 100 auditeurs :
128 kbit/s × 100 = 12 800 kbit/s
Soit environ 12,8 Mbit/s avant d’ajouter les surcharges réseau et une marge de sécurité.
| Auditeurs | MP3 64 kbit/s | MP3 128 kbit/s | MP3 192 kbit/s |
|---|---|---|---|
| 10 | 0,64 Mbit/s | 1,28 Mbit/s | 1,92 Mbit/s |
| 50 | 3,2 Mbit/s | 6,4 Mbit/s | 9,6 Mbit/s |
| 100 | 6,4 Mbit/s | 12,8 Mbit/s | 19,2 Mbit/s |
| 500 | 32 Mbit/s | 64 Mbit/s | 96 Mbit/s |
Prévoyez également :
- la bande passante entre l’encodeur et Icecast ;
- les connexions simultanées ;
- les éventuels relays ;
- le trafic du site Web ;
- une marge pour les pics.
Sécuriser la connexion entre la source et Icecast
Le mot de passe source autorise la publication d’un flux. Une personne qui le récupère peut donc se connecter au serveur et occuper un mountpoint.
- Utilisez un mot de passe long et unique.
- Définissez un mot de passe différent par mountpoint lorsque nécessaire.
- Ne publiez jamais le fichier
icecast.xml. - Limitez l’accès au port source avec un pare-feu ou un VPN.
- Utilisez TLS lorsque le client source et l’architecture le permettent.
- Ne confondez pas le mot de passe source et le mot de passe administrateur.
- Renouvelez les identifiants après le départ d’un animateur.
Lorsque Liquidsoap et Icecast fonctionnent sur le même serveur, connectez Liquidsoap à 127.0.0.1. Le port source n’a alors pas besoin d’être exposé publiquement pour cette utilisation.
Diffuser Icecast en HTTPS
Une page HTTPS qui charge un flux HTTP peut provoquer un blocage de contenu mixte dans le navigateur.
Servez donc le flux en HTTPS lorsque le lecteur est intégré à un site sécurisé.
Deux architectures sont courantes :
- TLS configuré directement dans Icecast ;
- Icecast placé derrière Nginx, HAProxy ou un autre reverse proxy.
Avec un reverse proxy, veillez à désactiver la mise en mémoire tampon du flux et à conserver les connexions longues.
Exemple Nginx simplifié :
location /radio.mp3 {
proxy_pass http://127.0.0.1:8000/radio.mp3;
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_read_timeout 1h;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}Langage du code : PHP (php)
Adaptez ce bloc à l’ensemble de vos mountpoints et à votre configuration Icecast.
Publier la radio dans un annuaire
Icecast peut publier les informations d’un flux dans un annuaire YP compatible.
Pour qu’un flux puisse apparaître publiquement :
- le serveur doit être configuré pour communiquer avec l’annuaire ;
- le mountpoint doit être marqué comme public ;
- le nom, la description, le genre et l’URL doivent être renseignés ;
- le flux doit être actif ;
- l’annuaire doit accepter la soumission.
Dans le mountpoint :
<public>1</public>Langage du code : HTML, XML (xml)
Ne rendez pas automatiquement public un flux de test, une radio privée ou un flux réservé à une organisation.
Résoudre les erreurs fréquentes
Authentication failed
Vérifiez :
- le mot de passe source ;
- le mot de passe propre au mountpoint ;
- le nom d’utilisateur, généralement
source; - les espaces copiés avant ou après le mot de passe ;
- la configuration réellement chargée par Icecast.
Après une modification :
sudo systemctl reload icecast2
Si le rechargement ne prend pas en charge la modification concernée, redémarrez le service :
sudo systemctl restart icecast2
Mountpoint in use
Un seul client source peut normalement occuper un mountpoint donné.
Déconnectez l’ancien encodeur ou utilisez un autre mountpoint :
/radio-test.mp3
Le mountpoint apparaît, mais aucun son ne sort
Vérifiez :
- l’entrée audio sélectionnée ;
- le niveau du signal ;
- le périphérique muet ;
- la lecture effective de la playlist ;
- les formats décodables par Liquidsoap ;
- les journaux de l’encodeur.
Le navigateur refuse le flux
Contrôlez :
- le protocole HTTPS ;
- le type MIME
audio/mpeg; - le certificat TLS ;
- le reverse proxy ;
- les en-têtes CORS lorsqu’un lecteur JavaScript en a besoin ;
- l’absence de contenu mixte.
Le son coupe régulièrement
Les coupures peuvent provenir :
- d’une connexion montante instable au studio ;
- d’un débit trop élevé ;
- d’une charge processeur excessive ;
- d’un buffer trop faible ;
- d’un reverse proxy mal configuré ;
- d’un manque de bande passante côté serveur ;
- d’un fichier audio illisible dans la playlist.
Testez d’abord un flux MP3 à 128 kbit/s, puis réduisez temporairement le débit afin d’isoler la cause.
Liquidsoap indique Unsupported encoder
La construction de Liquidsoap ne possède pas la bibliothèque nécessaire à l’encodeur demandé.
Vérifiez les fonctions disponibles :
liquidsoap --build-config
Installez ensuite une version comprenant l’encodeur MP3 ou les dépendances LAME nécessaires.
Consulter les journaux Icecast
Les journaux fournissent souvent une réponse plus utile qu’une nouvelle réinstallation au hasard.
Avec systemd :
journalctl -u icecast2 -f
Selon la distribution, consultez aussi :
/var/log/icecast2/error.log
/var/log/icecast2/access.logLangage du code : JavaScript (javascript)
Recherchez notamment :
- les échecs d’authentification ;
- les mountpoints déjà occupés ;
- les déconnexions de source ;
- les erreurs TLS ;
- les limites de clients ;
- les problèmes de configuration XML.
Checklist avant la mise en production
- Le mountpoint MP3 possède un nom simple et explicite.
- Le mot de passe source n’utilise pas la valeur par défaut.
- Le flux utilise le bon codec et le bon débit.
- Le niveau audio ne sature pas.
- Les métadonnées de la radio sont renseignées.
- Le flux fonctionne avec VLC et un navigateur.
- Le flux est accessible en HTTPS.
- Le lecteur HTML5 utilise
preload="none". - Le reverse proxy ne met pas le flux en tampon.
- La bande passante disponible couvre le nombre d’auditeurs prévu.
- Liquidsoap redémarre automatiquement avec systemd.
- Un fichier ou flux de secours est disponible.
- Les journaux Icecast et Liquidsoap sont surveillés.
- Les ports d’administration ne sont pas exposés inutilement.
- Les droits de diffusion des contenus sont respectés.
Retour sur Oddcast et Winamp
La première version de ce tutoriel utilisait Winamp, le plugin Oddcast DSP et une bibliothèque LAME installée manuellement.
Cette combinaison permettait d’ajouter un flux MP3 à côté d’un flux Ogg Vorbis. Elle demandait toutefois de copier une DLL dans le bon répertoire, de configurer plusieurs encodeurs et de conserver Winamp ouvert en permanence.
Les nombreux commentaires de l’article évoquaient principalement :
- la DLL LAME introuvable ;
- les flux M3U mal compris ;
- les mountpoints incorrects ;
- les annuaires Yellow Pages ;
- la diffusion simultanée en MP3, Ogg et AAC+.
BUTT remplace avantageusement cette configuration pour un direct simple. Liquidsoap convient mieux lorsqu’il faut automatiser ou produire plusieurs sorties.
Questions fréquentes
Icecast encode-t-il lui-même le son en MP3 ?
Non. Icecast reçoit et redistribue un flux déjà encodé. BUTT, Liquidsoap, Mixxx ou un autre client source doit produire le flux MP3.
Puis-je diffuser simultanément en MP3 et en Opus ?
Oui. Utilisez deux mountpoints distincts, par exemple /radio.mp3 et /radio.opus. Liquidsoap peut générer les deux sorties depuis la même source.
Quel débit MP3 choisir pour une radio ?
128 kbit/s stéréo offre un bon compromis pour la musique. Une radio parlée peut utiliser 48 à 64 kbit/s en mono. Un flux musical haut de gamme peut monter à 192 kbit/s, au prix d’une consommation de bande passante supérieure.
Dois-je déclarer le mountpoint dans icecast.xml ?
Pas obligatoirement. Le client source peut créer le mountpoint en se connectant. Déclarez-le lorsque vous avez besoin de réglages spécifiques, comme un mot de passe distinct, un fallback ou une limite d’auditeurs.
Pourquoi le flux MP3 ne fonctionne-t-il pas sur une page HTTPS ?
Le navigateur peut bloquer un flux HTTP intégré dans une page HTTPS. Servez le mountpoint en HTTPS directement ou placez Icecast derrière un reverse proxy TLS correctement configuré.
Le fichier radio.mp3.m3u contient-il le flux audio ?
Non. Le fichier M3U est une petite playlist qui contient l’adresse du flux. Le lecteur ouvre ensuite cette adresse pour recevoir l’audio en continu.
Puis-je utiliser le même mot de passe pour tous les flux ?
Oui, avec le mot de passe source global. Toutefois, des mots de passe propres à chaque mountpoint facilitent la révocation des accès et limitent les conséquences d’une fuite.
Conclusion
Ajouter un flux MP3 à Icecast ne demande plus Winamp, Oddcast ni une DLL LAME copiée à la main.
Pour un direct, configurez BUTT avec l’adresse du serveur, le mot de passe source et un mountpoint comme /radio.mp3. Pour une radio automatisée ou plusieurs formats, utilisez Liquidsoap.
Testez ensuite le flux depuis l’extérieur, servez-le en HTTPS et surveillez la bande passante. Icecast se chargera de distribuer le son ; il ne peut malheureusement pas améliorer la playlist.
Sources
- Icecast : site officiel et versions actuelles
- Icecast : référence du fichier de configuration
- Icecast : configuration de base et mountpoints
- Icecast : clients sources compatibles
- Liquidsoap : guide de démarrage
- Liquidsoap : exemples de transcodage et de diffusion
- Liquidsoap : formats et encodeurs audio
Marre des agences qui sous-traitent ?
Avec moi, vous parlez directement au développeur qui fait le travail. Pas d'intermédiaire, pas de promesses creuses. Juste du code propre et un interlocuteur joignable.
Travaillons directement ensemble →

Je suis en train de tester mais mes questions vont être drastiques : tout les softs de mix sont dédiés… n’aimant pas le crack, y’a t-il une solution ou un soft intéressant pour le mix? Et qu’en est-il du référencement sur winamp… est on seulement visible sur Icecast? (mais bravo pour ce tutoriel aussi explicite qu’efficace^^)
Impossible pour mes testeurs de se connecter à mon URL… et donc de choisir le flux. Qu’en est-il?
Salut Rizzen Mylil,
Pour le mix, alors là… aucun idée : je fais juste une playlist avec ce que je vais jouer dans la soirée et hop je la lance et je ne touche plus à rien :-) Et comme ma radio est plutôt blues/rock, je ne mixe pas du tout.
Pour le référencement, oui tu n’est visible que dans l’annuaire IceCast, à moins que tu ne fasses de la pub sur ton site, forum…
Pour les testeurs, c’est un problème bizarre : j’ai demandé à plusieurs de mes amis (Irlandais, Anglais, Danois, Chiliens, Américains…) et ils arrivent tous à ouvrir la page IceCast et à se connecter aux flux. Par contre, certains de mes copains Français ne peuvent pas charger la page IceCast mais ils peuvent se connecter directement aux flux (avec le lien en .m3u). Bizarre.
Ce doit être lié aux routeurs français mais çà me parait étrange^^ Car en effet ils arrivent aussi à prendre le lien direct mais pas à le choisir. En établissant un server base hosté avec une ip type .net çà devrait passer. Mais il reste aux progs free d’éditer des softs de mixs qui ne sont pas en attente de CB. Dont l’équipe zilla^^
Pour info et test (critiquer sans se montrer n’est pas digne^^) :
Nbr. de max d’ecoute avec Shoutcast et avec Icacast ?!?
Comment font les radios nationales (NRJ, Fun…) ?
Ya moyen de ne plus etre limité au nbr. d’auditeurs ?
Salut rtp, les radios nationales disposent de serveurs dédiés avec une large bande passante pour permettre le streaming. Avec nos connexions ADSL, nous sommes toujours bridés en upload.
Pour connaître le nombre maximal d’auditeurs qu’une connexion peut supporter :
multiplier la valeur d’upload par 0.9. Exemple : 640 kbps x 0.9 = 576
diviser la valeur trouvée par le bitrate que l’on veut utiliser : cela nous donne le nombre maximal d’auditeurs pour ce bitrate. Exemple : 576 / 64k = 9
Dans l’exemple ci-dessus, on peut servir environ 9 auditeurs avec un bitrate de 64k et une connexion de 640kbps en upload. Si on veut servir plus d’auditeurs, il faut soit baisser la qualité du bitrate, soit se tourner vers des serveurs dédiés au streaming, mais là cela devient payant…
Salut Matt,
en premier je voudrais te remercier énormément pour tes tutorials qui ne pourraient mieux expliquer :-)
Maintenant, ma radio en flux mp3 marche très bien….Mais j’ai encore quelques problèmes liés à une petite partie de mes contacts….Pour la plupart ça marche très bien sous Lecteur Windows Média mais pour quelques-un, ça ne télécharge que quelques secondes d’écoute du moment qu’ils load ma radio et c’est tout…. Et biensûr tu me diras qu’avec Winamp il n’y aurait aucun problèmes mais tu sais, certaines personnes ne sont pas très chaudes à l’idée de télécharger un deuxième lecteur multimédia…. Alors aurrait-tu plutôt un driver ou plug-in ou quoi que ce soit qui pourrait rectifier ce problème?
Merci à l’avance :-)
Manix
Salut Manix,
Merci pour le compliment ;-)
Le problème peut être dû à plusieurs choses comme la la vitesse de connexion de tes contacts (s’ils sont en 56k ou en ADSL 128k, ils risquent d’avoir du mal à charger le flux, surtout si la qualité de ton bitrate est importante). Je pense qu’il peut également y avoir des différences entre les différentes versions de Windows Media Player, il faudrait peut être voir dans les options afin d’optimiser le tampon d’écoute (buffer). J’ai noté que chez certaines personnes, il faut leur donner le lien en .m3u car autrement, le flux est tléchargé au lieu d’être joué.
A bientôt :)
Un petit ajout qui parait évident mais qui mérité d’être cité :
En ce qui concerne les flux et autres accidents de connections, il faut aussi que l’émetteur n’oublie pas de « shutter » ses fire-walls au minimum de protection, sans celà, il-y-aura connection et déconnection immédiate selon le FW.
Add : Sur les options de streaming, attention à ne pas autoriser l’accès direct, que vos morceaux ne soient pas téléchargés « live », la protection des auteurs et compositeurs est à respecter.
Add : Cher Matt,
Aurais-tu le génie que je te reconnais de publier un tuto sur les métadatas?^^
Salut Rizzen Mylil :)
Oui, il est indispensable d’ouvrir le port 8000, autrement on se heurte au mur de feu (firewall, haha ^_^). Par contre, je déconseille la désactivation pure et simple du firewall : un ordinateur sans pare-feu ne tient que quelques minutes face aux menaces présentes sur Internet (risques encore accrus avec l’ADSL et les IP fixes).
Pour les métadatas, ok – je verrai cela après les exams :-)
A+
Matt
Il est évident que que sans feu au sein d’un foyer l’on croit l’endroit déserté^^ Et propice à toute attaque.
Mais il faut, le cas échéant avoir une bonne « balance » entre l’ouverture du port 8000 et sa surveillance^^
Sinon le flux en patiera.
Mais il est impossible de faire un tuto générique sur les FW^^
Exact Rizzen Mylil :o)
Slt a tous voila j ai un ptit probleme je vien de faire comme vous il est mis dans le tuto ton j ai prit le lame3.97a11.zip je els decompreser dans le winamp met je ne comprend pas quest que vous vouler dire part es fichiers doivent être aux côtés de l’exécutable winamp.exe comme ceci : met fichier se sotn mis puit je coupe la fenetre et je demare winam et oddcast qaudn ej fait dans config j ai tout sauve MP3 lame pk j espere avoir uen reponse merci
Salut Valentin, si tu as décompressé les fichiers sous Program Files/Winamp (par défaut), tu dois pouvoir choisir MP3 Lame comme encoder. Sinon, vérifie que tu as bien tous les fichiers Lame.
Valentin, ouvre Winamp > Options > Preferences > Plugins > Output > Lame MP3 > Configure > Chercher la DLL Lame et pointe sur la DLL Lame de ton répertoire Winamp.
salut
merci pour tes tuto !!!!!! ils sont excellents.
Je viens de créer un flux mp3. il me semble qu’il fonctionne (en tout cas c’est bon dans oddcast). Le problème est qu’il me fait des coupures entre chaques titres ! Il doit se déconnecter un demi sec. car à chaque fois ça me rajoute des nouveaux clients connexions sur les stats du serveur.
merci pour ton aide.
Me revoilà^^
Pour ceux que celà intéresse, la version 2.3.1 d’Icecast est opérationnelle. Pas de panique quant aux changements, si ce n’est la reconfiguration de vos paramètres de serveur.
Il suffit de remplacer les champs de saisies pour les logs et mots de passe (dans la configuration du serveur Icecast, sans oublier de le déconnecter avant), n’oubliez pas par contre, de redéfinir vos adresses dans vos plugs Winamp, car les url de connection sont apparemment remis à zéro.
Dernière chose : mettre en phase le mot de passe de l’encoder avec celui que vous aurez défini dans celui d’Icecast.
Enjoy.
Oups, si besion est, je déposerais un tuto si Matt n’en a pas le temps et me l’autorise^^
Salut,
@ y-rem : cela me semble assez normal, les stats ne sont pas vraiment fiables, et cela varie avec ta connexion.
@ Rizz : salut Rizz :)
Tu dois lire dans mes pensées ! J’ai passé ces derniers jours à potasser un nouveau tutoriel présentant la création d’une webradio avec IceCast et SAM Broadcaster, qui utilise IceCast v2.3.1
Les grands esprits se rencontrent ^_^
Vu le temps que j’ai à dispo, et que tu as apparemment déjà préparé le cocktail, je te laisse le servir mon cher Matt^^
Salut !!
J’ai juste une petite question, est-ce que diffuser en MP3 avec icecast ça offre une meilleure qualité que du MP3 avec shoutcast ? et est-ce que icecast offre une meilleure qualité au niveau de l’écoute chez les auditeurs ?
Salut ReNo, le MP3 est géré de la même manière. Cela reste un format lossy (avec perte de qualité). Si tu veux offrir une alternative à tes auditeurs, propose l’Ogg qui est le standard d’Icecast : à bitrate égal, la qualité est meilleure que le MP3.
Hello,
J’ai un serveur dédié tournant sous Linux Debian.
Y a-t-il un moyen de mettre aussi une sorte de serveur webradio ? Aucun graphique… Je n’ai accès qu’en SSH évidemment. Et par exemple mettre les mp3 ou ogg dans un répertoire ou en un seul fichier et qu’il le diffuse ?
Merci d’avance,
Salut tlm,
Je voulais savoir si vous connaissez des lecteurs qui peuvent êtres publier dans une page web pour qu’on puisse écouter le format ogg vorbis.
Merci d’avance
j’ai un problème, je fais tout comme vous le dite et quand mon encodre de oddcast essaye de se connecté il mets error with lame_enc.dll que dois-je faire?
Salut,
@ Xtrace : désolé, je ne connais pas bien Linux mais il existe des RPM pour Icecast sur leur site.
@ Apache X : oui, regarde JOrbis — Pure Java Ogg Vorbis Decoder.
@ gaiwen : place les fichiers LAME dans le répertoire Winamp et sélectionne lame_enc.dll avec l’encodeur. Si cela ne fonctionne toujours pas, essaie avec une autre version de LAME.
Hey men this tuto its great!!!! thanks a lot!!!!!!!!!!!!
Hello, merci beaucoups pour ce Tuto, très bien expliqué, mais je n’arrive pas à télécharger le logiciel Bundle Lame Stable, le site n’a plus l’air d’être ouvert, comment puis je le récupérer ?
Merci d’avance
Salut,
@ Yaka : thank you :)
@ Malcolmyoung : tu peux trouver le bundle LAME ici.
Slt tlm. voila jai un petit probleme, jai fait ma propre radio seulement j’entend quand je parle mais si je veux passer de la musique y a kelkun ki peu mexpliker cmt faire svp? si fo creer une playlist koi! Merci d’avance
Excellent Tuto !
Simple, concis et efficace. Merci beaucoup et un grand merci de la part de mes auditeurs :)
Nice site. You are doing a great service to the web
salut et merci pour le tuto
je voulais savoir comment s’inscrire dans les yello pages de icecaste et shoutcast
et si il ètait posible d’aparaitre dans les lites de radio de winamp
Salut sonteck,
Pour éditer les informations Pages Jaunes (Yellow Pages), il suffit d’aller dans Plugin DSP > clic droit sur le flux > Configure > Yellow Pages et de remplir les informations relatives à ta radio.
Pour Winamp par contre, aucune idée ! Je suppose qu’ils se servent du répertoire YP de Shoutcast (?).
yes j’ai fais ça
mais pourquoi je ne trouve pas mas radio dans les YP de icecast ?
mon non de radio c’est
sonteck
et mon adresse
et je ne le retrouve pas dans les yp ?
Salut sonteck,
Vérifie que ton fichier de configuration Icecast permette la notification de ta radio aux YP Icecast. Ensuite, joue quelques chansons (la mise à jour n’est pas instantanée) puis fais une recherche sur l’annuaire.
Salut tout le monde ,
Mon probleme est que quand je lance le lien stream.ogg.m3u
ou
stream.mp3.m3u
Sa me met une erreur internet ou si je ouvre windows media cela marche pas
Puis dans oddcast cela me met error with lame_enc_ddl
Je voudrais faire ecouter la radio a mes amis sur Widows media mais j’ai besoin de vous :D
Merci d’avance pour vos reponse :D
Salut jordan,
Est-ce que tu as téléchargé et installé la DLL lame dans le répertoire Winamp ? Tant que Winamp ne détecte pas la DLL dans les préférences, le flux sera indisponible.
Bonjour à tous et un grand merci pour le tuto.
J’ai juste une petite question d’ordre pratique, combien de flux peut-on diffuser?
par exemple ogg, mp3, aac+. Pour l’instant seulement 2 fonctionnent. Merci d’avance
Salut j’ai suivis ton tuto qui est très bien fait et sa ne marche pas :( je crois que j’utilise les mauvais logiciel si tu pourrais me communiquer tes logiciel sa serais sympa merci
Salut,
DSI > tu peux avoir un nombre infini d’encoders mais tu seras toujours limité par ta bande passante. Personnellement je pense qu’OGG et MP3 sont les deux formats à proposer.
franck67 > pour le tuto, j’ai utilisé Winamp (qui a besoin des librairies LAME). Cela fonctionne aussi avec SAM Broadcaster mais en natif (rien à installer, la librairie est inclue avec le logiciel).
Tout d’abord Merci pour le tuto il est bon,
Mais voila j’ai deja du mal avec l’OGG parce que mon port 8000 est ouvert et Icecast est bien en liaison avec Oddcast mais mes auditeur ne peuvent pas m’entendre et c’est pas faute de bidouiller. Bon j’espère que tu pourras m’aider au passage si tu en as besoin:mamadou_56@hotmail.fr c’est plus pratique
Merci bien
Salut Mamadou56,
Quelle est l’adresse de ta radio ? Est-ce qu’ils utilisent un lecteur audio capable de lire l’OGG ?
Bonjour, d’abord bravo pour les tuto mais pour ajouter un flux mp3 je fait comme l’image puis je clique sur OK et cela reste en Vorbis que faire?
Salut Jordan le belge,
Est-ce que tu ajoutes bien un nouvel encodeur en cliquant sur Add Encoder ?
Oui oui je clique sur Add Encoder et je fait comme l’imgae et cela ne marche pas.
bonjour
j’ai un ptit soucis et en esperant que quelqu’un peu m’aider
voila j’ai une webradio depuis 5 ans qui tourne avec winamp et oddcast et un serveur audio
nous avons changer de serveur de diffusion , mon probleme c’est que oddcast ne garde pas en memoire mes nouveau parametre de connection : adresse ip / port /ect
j’ai desinstaller winamp et oddcast et reinstaller mais toujours pareil
je rentre l’ip de serveur , le port , le pass puis ok sur oddcast mais il ne prend rien
je vous remercie de votre aide
djfab
comment intégrer cela avec un logiciel d’automation telle que radiodj softwar