SHOUTcast/Installation

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SHOUTcast/Installation and the translation is 49% complete.
Outdated translations are marked like this.
Other languages:


Ce guide vous guide à travers les différentes étapes nécessaires à l'installation et la configuration d'un serveur de diffusion en flux pour la radio avec SHOUTcast serveur et SHOUTcast Trans.

Configurer un serveur SHOUTcast

Installer les fichiers

Le serveur SHOUTcast se trouve dans media-sound/SHOUTcast-serveur-bin. Vous pouvez l'installer avec la commande suivante :

root #emerge --ask shoutcast-server-bin

Le serveur SHOUTcast est maintenant installé. La prochaine étape sera de le configurer.

Configurer le serveur SHOUTcast

Le fichier de configuration est /etc/shoutcast/sc_serv.conf. Assurez-vous d'être reconnu en tant qu'utilisateur root, et ouvrez le fichier de configuration avec votre éditeur favori. J'ai choisi vi dans ce cas.

root #vi /etc/shoutcast/sc_serv.conf

Ceci affichera le fichier de configuration du serveur SHOUTcast. Vous pouvez y observer les différentes options à définir. Jetons-y un coup d'œil.

Options obligatoires

CODE Définir la limite utilisateur
; MaxUser.  Le nombre maximum d'auditeurs simultanés autorisé. 
;Donnez une valeur raisonnable en fonction de votre bande passante disponible. (c.à.d. 
;si vous avez une bande DSL montante de 256 kbps et que vous voulez diffuser à 24 kbps, vous devriez 
;choisir 256/24=10 auditeurs au maximum)  Choisir une valeur supérieure 
; ne fait que gaspiller  la  RAM et bloquer votre diffusion quand un nombre trop grand d'auditeur se connecte
MaxUser=10

C'est ici que le nombre maximum d'utilisateurs est défini. Comme le titre le suggère, il n'est pas raisonnable de définir 100 utilisateurs avec une bande passante montante de 256 kbps (c'est ce que j'ai défini, car ma bande montante est environ celle-là). Si vous faites tourner un serveur SHOUTcast pour servir un LAN, vous pouvez probablement définir une valeur TRÈS supérieure (facilement jusqu'à 100). Rappelez-vous de ne pas exagérer, quelque soit votre bande passante. La bande passante coûte à vote FAI et certains couperont votre compte, vous factureront des prix élevés, ou les deux.

CODE Définir le mot de passe
; Password.  Bien que SHOUTcast ne demande jamais un mot de passe à l'utilisateur,
; un mot de passe est nécessaire pour diffuser via le serveur, et pour 
; administrer le serveur via une interface Web. Le serveur ne devrait  
; conprendre que des lettres et des chiffres, et est le même serveur que celui dont votre diffuseur
; aura besoin pour entrer dans le Plug-in Source de SHOUTcast pour Winamp. CETTE VALEUR 
; NE PEUT ÊTRE VIDE.
Password=un_mot_de_passe_robuste

C'est ici que vous définissez votre mot de passe. Le mot de passe lui-même est du texte en clair. Pour des raisons de sécurité, il est FORTEMENT recommandé que vous n'utilisiez pas des mots de passe qui sont utilisés pour accéder à des composants critiques du système ou à d'autres informations sensibles. Rendez-le aussi aléatoire que possible, avec une combinaison de chiffres et de lettres. Ce mot de passe sera celui que SHOUTcast Trans (ou tout autre fournisseur de contenu) utilisera pour se connecter et fournir le contenu du flux diffusé.

CODE Définir votre port d'écoute
; PortBase. C'est le numéro du port sur lequel fonctionnera le serveur.  La 
; valeur et la valeur+1 doivent être disponible. Si vous obtenez une erreur fatale lorsque 
; le  DNAS met un socket en place au démarrage , assurez-vous que rien d'autre sur la 
; machine n'utilise le même port (utilisez telnet localhost numéro de port -- si vous 
; obtenez ''connection refused'' alors vous êtes libre d'utiliser ce port).   Des numéros de port inférieur à 1024
; peuvent demander des privilèges ''root'' sur des machines *nix.  Le port par défaut est 8000.
PortBase=8000

Cette valeur définit le port par lequel les utilisateurs se connecteront à votre serveur SHOUTcast. La valeur par défaut est 8000., car c'est ce que la plupart des programmes comprenant un serveurs mp3 utilisent par défaut (Audacious, winamp, etc.). Comme dit précédemment, si vous voulez utiliser un numéro de port inférieur à 1024, vous devez être root. Néanmoins, je vous recommande fortement de ne pas utiliser un numéro de port inférieur à 1024 pour votre serveur SHOUTcast.

CODE Définir la journalisation
; LogFile: fichier à utiliser pour les journaux. Cela peut être '/dev/null' or 'none'
; ou vide pour désactiver la journalisation. La valeur par défaut est  ./sc_serv.log
; sur des systèmes *nix ou  sc_serv_dir\sc_serv.log sur win32.
; Note: sur des systèmes  win32 si aucun chemin n'est spécifié, l'emplacement est dans 
; le même répertoire que l'exécutable , sur des systèmes *nix , il est dans le 
; répertoire courant.
LogFile=/var/log/SHOUTcast.log

Ceci définit l'emplacement de fichier de journalisation du serveur SHOUTcast. L'ebuild le définit à /dev/null, c'est pourquoi vous devez le changer pour avoir une journalisation réelle. Je le défini dans l'emplacement de base /var/log. Vous pouvez choisir ce que vous voulez.

CODE Activer les satistiques de temps réel
; RealTime affiche une ligne d'état qui est mise à jour toutes les secondes.
; avec les dernières informations sur le flux courant
; (systèmes en console *nix et win32 seulement )
RealTime=0

Ceci affiche des informations sur la chanson courante vers la sortie standard toutes les secondes. Ceci est désactivé par l'ebuild de manière à ce que le démon SHOUTcast puisse tourner aussi silencieusement que possible. Mettez ceci à 1 si vous voulez cette mise à jour toutes les secondes. Néanmoins, nous recommandons d'utiliser plutôt la page d'état.

CODE Activer la journalisation en temps réel
; ScreenLog détermine si la journalisation est écrite à l'écran ou pas
; sur des systèmes en console  *nix et win32. Il est utile de désactiver cela lorsque  
; vous exécutez les serveurs en arrière-plan sans leur propre terminal. La valeur par défaut vaut 1
ScreenLog=0

Ceci est désactivé par défaut dans l'ebuild pour que le démon tourne aussi silencieusement que possible. Ceci journalisera tous les événements (connexions, déconnexions, etc.) sur la sortie standard au moment où ils se produisent en temps réel. Néanmoins, comme le fichier de journalisation fait la même chose, nous recommandons de plutôt utiliser ceci.

CODE Définir le dernier numéro de chanson à afficher
; ShowLastSongs spécifie combien de chansons lister dans la page /played.html
; La valeur par défaut est  10.  Les entrées acceptables vont de   1 à 20.
ShowLastSongs=10

Tout comme elle l'indique, cette valeur définit combien des chansons jouées le plus récemment /played.html affichera. Si vous mettez plus que 20, vous pouvez envisager de faire plus de café.

CODE Définir la journalisation des modifications du système de fichiers
; TchLog détermine si le fichier de journalisation DNAS doit où pas garder la trace des touches de ''pages jaunes'' (YP)
; Les ajouts et les retraits continueront d'apparaître indépendamment de ce réglage.  
; La valeur par défaut est  yes
; TchLog=yes

Ce réglage active ou désactive la journalisation des modifications de répertoires par le DNAS (Distributed Network Audio Server ou SHOUTcast en raccourci). Ceci est recommandé à ceux qui veulent avoir la journalisation la plus sûre possible. Les utilisateur occasionnels ou de base n'ont pas besoin de ça.

CODE Activer la journalisation des requêtes http
; WebLog détermine si les accès http:// sur ce DNAS  
; seront journalisés ou pas.  La plupart des gens laisse cela désactivé parce que le plugin DSP 
; utilise des appels  http:// pour mettre à jour les titres et obtenir le compteur d'auditeurs, 
; ce qui peut prendre beaucoup de place dans les journaux. Si vous voulez  
; voir les gens qui accèdent à votre admin.cgi ou à vos pages d'index, activer ceci.
; Notez que ce réglage n'affecte PAS les compteurs statistiques XML 
; pour des accès aux pages  http://.
; La valeur par défaut est  no.
; WebLog=no

Ceci spécifie si voulez ou pas journaliser les accès au serveur HTTP de SHOUTcast. Encore une fois, ce n'est recommandé que pour ceux qui veulent la journalisation la plus sûre possible, mais pas pour les utilisateurs standards.

CODE Activer la journalisation W3C
; W3CEnable active la journalisation  W3C.  Les journaux W3C  contiennent des comptes du type httpd 
; de chacune des pistes jouées pour chacun des auditeurs, y compris le compte des octets écoutés par ces auditeurs.
; Ces données peuvent être analysées avec des outils tels qu'Analog et WebTrends, ou transmis  
; à des tierces parties  comme Arbitron et Measurecast pour leur système de compte-rendus.
; La valeur par défaut est Yes (activé).
W3CEnable=Yes
  
; W3CLog indique le nom du fichier de journalisation pour la journalisation  W3C.  Le fichier par défaut est  
; sc_w3c.log, dans le même répertoire  d'où le DNAS a été démarré.
W3CLog=/dev/null

La première option active la journalisation W3C. Ce type de journal peut facilement être analysé par les programmes listés. Ceci est hautement recommandé pour ceux qui veulent avoir les statistiques les plus approfondies possibles. La seconde option indique où ranger le fichier journal W3C. Cette option est définie à /dev/null par l'ebuild.

Configuration du réseau

CODE Définir l'adresse IP source
; SrcIP, l'interface sur laquelle écouter pour s'y connecter (ou pour faire des
; connexions relais dessus en cas de relayage). Peut être, et généralement est ANY ou 127.0.0.1
; (choisir 127.0.0.1 empêchera les autres machines de 
;diffuser à partir de votre serveur SHOUTcast )
SrcIP=ANY

La variable SrcIP définit à partir de quelle adresse IP le flux arrive. Ce peut être un autre serveur (relais), l'hôte local (normal), ou toute autre adresse IP que votre interface prend en charge. La régler à localhost empêche tout autre serveur d'utiliser votre serveur SHOUTcast comme source de diffusion. La valeur par défaut est ANY et fera que votre serveur diffusera depuis une source à n'importe quelle adresse IP. Pour des raisons de sécurité, il vaut mieux définir cette variable à quelque chose de spécifique.

CODE Définir l'adresse de destination
; DestIP, adresse IP sur laquelle écouter des clients (et sur laquelle contacter  yp.SHOUTcast.com)
;  peut être, et en général sera, ANY. Si votre machine dispose de plusieurs adresses IP, 
; définisser cette variable à l'adresse IP par laquelle vous voulez être accédé.
DestIP=ANY

Ceci détermine quelle adresse IP sur votre interface vous mettez à la disposition des utilisateurs pour se connecter. Elle peut être, l'hôte local (si vous êtes anti-social et voulez diffuser seulement par vous-même), une adresse privée (par exemple, 192.168.0.101, pour le réseau local), ou votre adresse IP externe (par exemple, 209.204.249.201 pour diffuser vers un réseau étendu, mais pas un réseau local). Dans la plupart des cas, vous pouvez atteindre votre propre flux en utilisant 127.0.0.1 au lieu de ce qui est listé ici. ANY vous laisse votre serveur SHOUTcast se lier à n'importe quelle adresse sur toutes les interfaces disponibles.

CODE Définir le port proxy/yp.SHOUTcast.com
; Yport, port par lequel se connecter yp.SHOUTcast.com . Pour les gens  derrière des mandataires Web, 
; remplacez cette valeur par le port alternatif (qui devrait être 666,
; vérifiez www.SHOUTcast.com si vous rencontrez des problèmes). Autrement, laissez -la à 80.
; Nous travaillons activement à la réouverture de port  666, mais jusqu'à maintenant le seul port 
; fonctionnel est le  port 80.
Yport=80

Cette variable a 2 fonctions. Premièrement, c'est le port sur lequel se connecter à yp.SHOUTcast.com with. yp.SHOUTcast.com est la page nullsoft des serveurs publics ainsi les utilisateurs connaissent sur quel port écouter en réception. Les utilisateurs peuvent chercher votre station depuis cette page. Deuxièmement, elle sert pour les mandataire Web. Définissez-la à la valeur de port que vous utilisez pour des connexions par des mandataires, et définissez votre DestIP à votre mandataire pour la diffusion.

CODE Configurer le DNS inverse
; NameLookups.  Spécifiez 1 pour accomplir un DNS inverse sur les connexions.
; Cette  option peut augmenter le temps nécessaire à la connexion à votre
; serveur si votre serveur  DNS est lent.  La valeur par défaut est  0 (désactié).
NameLookups=0

Cette option spécifie si vous voulez, ou pas, pratiquer le DNS inverse sur les clients. Ceci partira d'une adresse IP pour essayer de trouver le nom d'hôte correspondant. Utilisez cette fonction à des fins de connexion pour créer un rapport plus détaillé.

CODE Configurer le relayage
; RelayPort et RelayServer spécifient que vous avez choisi d'être un serveur relais. 
; Les serveurs relais agissent comme des clients pour un autre serveur,et rediffuse.
; Définissez  RelayPort à 0, RelayServer à empty, ou laissez-les simplement en commentaire 
; pour désactiver le mode relayage.
; RelayPort=8000
; RelayServer=192.168.1.58

Ceci indique que vous agissez comme un serveur relais. Les serveurs relais sont souvent utilisés pour prendre une connexion à bande étroite qui peut seulement diffuser vers un seul client, et utiliser sa propre bande, plus large, pour servir plus de clients. RelayPort spécifie le port et l'adresse IP du serveur SHOUTcast que vous voulez relayer. Laisser ceci en commentaire si vous n'envisagez pas d'utiliser votre serveur comme un relais.

Configuration du serveur

CODE Définir le mot de passe d'administration
; AdminPassword.  Ce mot de passe  (si spécifié) modifie le commportement 
; du mot de passe pour qu'il soit un mot de passe de diffusion seulement, et 
; limite les tâches d'administration HTTP au mot de passe spécifié ici. 
; Le diffuseur avec le mot de passe vu plus haut, peut toujours
; se connecter et voir les utilisateurs connectés, mais seul le  AdminPassword (mot de passe administrateur) 
; aura le droit d'accorder le droit d'évincer, bannir et spécifier des hôtes réservés. 
; La valeur par défaut est indéfinie  (Le mot de passe permet de contrôler à la fois 
; la source et l'administration)

; AdminPassword=adminpass

Définir cela créera un diffuseur et un administrateur. Le diffuseur pourra se connecter avec Password, et voir les connexions. Néanmoins, si cette personne veut évincer/bannir/administrer le serveur, elle devra avoir le mot de passe d'administration. Cette option crée des rôles plus spécifiques pour votre serveur. Ceci est recommandé par exemple quand l'administrateur système n'est pas la même personne que le diffuseur.

CODE Configurer la déconnexion auto de l'utilisateur
; AutoDumpUsers contrôle si les auditeurs sont déconnectés ;lorsque la source du flux se déconnecte 
; La valeur par défaut est  0.
AutoDumpUsers=0

Ceci spécifie si les utilisateurs sont évincés, ou pas, lorsque le flux se déconnecte pour une raison ou pour une autre. Ceci est défini à 0, de manière à ce que les clients définissent leur propre temps d'attente, ou essayent de maintenir un flux en tampon. Utilisez ceci si vous vous attendez à de courtes interruptions à tout moment.

CODE Définir le temps de source inactive toléré
; AutoDumpSourceTime spécifie combien de temps, en secondes, le flux source est 
; autorisé à être inactif avant que le serveur ne le déconnecte.  
; 0 laissera le flux source inactif indéfiniment. La valeur par défaut est 30.
; 
AutoDumpSourceTime=30

Ceci spécifie quand le serveur SHOUTcast arrêtera d'attendre qu'une source (essentiellement un serveur relais) émette un flux. De 30 à 60 secondes devrait être une valeur raisonnable.

CODE Configurer le répertoire de contenu
; ContentDir spécifie l'emplacement du répertoire à partir duquel
; le contenu est diffusé sur demande. Les sous-répertoires sont pris en charge depuis  DNAS 1.8.2.
; La valeur par défaut est  ./content/, ce qui se traduit par un répertoire nommé content dans le même répertoire
; que celui d'où  sc_serv a été invoqué.
ContentDir=/opt/SHOUTcast/content/

The ContentDir spécifie où placer le contenu à servir à la demande. Par exemple, si vous voulez diffuser une annonce aux employés, vous pourriez utiliser ce répertoire. L'ebuild du serveur SHOUTcast le définit à /opt/SHOUTcast/content pour vous. Pour l'utiliser , mettez un mp3 dans le répertoire content, puis pointer votre navigateur sur http://example.com:[port]/content/mp3name.pls . Le serveur SHOUTcast créera automatiquement une liste de flux compatible média de flux pour le mp3, et le diffusera à la demande. Utilisez cela comme une alternative à SHOUTcast Trans pour diffuser des sources média.

CODE Configurer un fichier d'introduction
; IntroFile peut spécifier un fichier  mp3 qui sera diffusé aux auditeurs tout de suite après  
; qu'ils se soient connectés avant qu'ils n'entendent le flux en direct..
; Notez que le fichier d'introduction DOIT avoir le même échantillonnage fréquence/canaux que 
; le flux en direct de manière  à ce que les choses fonctionnent correctement. Bien que le  la fréquence 
; de bits PUISSE varier, vous pouvez utiliser  '%d' pour spécifier la fréquence de bits dans le nom de fichier
; (c.à.d. C:\intro%d.mp3 devrait être C:\intro64.mp3 si vous diffusez à  64kbps).
; La valeur par défaut est  no IntroFile
; IntroFile=c:\intro%d.mp3

Ceci vous permet de configurer un fichier d'introduction. À chaque fois que des utilisateurs se connectent, ils entendent ce fichier. Comme il est indiqué, la fréquence de bits du flux et la fréquence de bit de la chanson doivent correspondre, sinon ça ne marchera pas. Vous pouvez néanmoins, mettre quelque chose comme intro128.mp3 et intro64.mp3 ;cela jouera intro128.mp3 à ceux qui se connectent à un flux à 128 kbps, et intro64 à ceux qui se connectent à un flux 64 kbps.

CODE Configurer un fichier de repli
; BackupFile permet de spécifie un fichier qui sera joué en boucle aux auditeurs
; lorsque le flux source se déconnecte. AutoDumpUsers doit être à 
; 0 pour utiliser cette fonctionnalité. Quand le flux source se reconnecte, les auditeurs 
; retrouvent la diffusion en direct.
; Notez que le fichier de repli DOIT avoir les mêmes fréquence/canaux que le 
; flux en direct afin que ce mécanisme fonctionne correctement. Bien que la fréquence de bit PUISSE
; varier, vous pouvez utiliser '%d' pour spécifier la fréquence de bits dans le nom du fichier
; (c.à.d. C:\backup%d.mp3 devrait être C:\backup32.mp3 si vous diffusez à  32kbps).
; La valeur par défaut est  no BackupFile
; BackupFile=C:\intro%d.mp3

Ceci est identique à ce qui a été vu plus haut, mais sera joué lorsque le flux source se terminera, plutôt que lorsque les utilisateurs se déconnectent. Cela ne marchera que si AutoDumpUsers est mis à 0.

CODE Configurer un format de titre
; TitleFormat spécifie une chaîne de formatage du titre qui est envoyé aux auditeurs.  
; Par exemple, la chaîne 'Justin Radio' force le titre  'Justin Radio' même 
; si la source change le titre. Vous pouvez utiliser jusqu'à 1 '%s' dans la chaîne
; qui vous permet d'inclure le titre de la source. Par exemple, is votre 
; TitleFormat est 'Justin Radio: %s', et le titre du greffon source set 
; 'Billy plays the blues', alors le titre du réseau est 
; 'Justin Radio: Billy plays the blues'. Notez que cela ne fonctionne que sur des serveurs non relais.
; La valeur par défaut est la chaîne no format .
TitleFormat=Chris Gentoo Beats: %s

Ceci définit un titre non variable pour votre serveur SHOUTcast. Utilisez ceci si votre flux source diffère de celui du nom de votre serveur SHOUTcast. Ça ne marche pas avec des serveurs relais.

CODE Configurer un format d'URL
; URLFormat spécifie une chaîne formaté pour ce qui est envoyé à l'auditeur. 
; Elle se comporte comme TitleFormat (voir ci-dessus).
; La valeur par défaut est no format string (pas de chaîne).
; URLFormat=http://www.server.com/redirect.cgi?url=%s

Ceci ressemble à TitleFormat, sauf que l'URL présentée ci-dessus est utilisée à la place de l'URL du flux source.

CODE Définir l'état public d'un flux source
; PublicServer peut prendre pour valeur, always (toujours), never (jamais), ou default (la valeur par défaut, hum)
; Tout autre choix que default écrasera l'état public 
; du plug-in source d'un serveur SHOUTcast qui est relayé.
PublicServer=default

Ceci spécifie si, oui ou non, vous voulez être répertorié comme un serveur public, même si votre plug-in serveur/source est déjà répertorié en tant que tel.

CODE Autoriser le relayage
; AllowRelay détermine si les autres serveurs SHOUTcast seront autorisés, ou pas, à relayer ce serveur.   La valeur par défaut est  Yes.
AllowRelay=Yes

AllowRelay détermine si les autres serveurs sont autorisés à relayer vos contenus. Si vous pensez que vous n'utiliserez jamais le relayage, mettez cette variable à No.

CODE Autoriser les relais à afficher publiquement la source
; En définissant  AllowPublicRelay à NO, vous prévenez tout autre serveur relais de ne pas 
; répertorier le serveur dans le répertoire  SHOUTcast(non public), à condition que 
; l'option Public du serveur relais soit à sa valeur par défaut. 
; La valeur par défaut est Yes.
AllowPublicRelay=Yes

AllowPublicRelay spécifie si vous voulez, ou pas, que votre serveur soit répertorié dans le répertoire public de SHOUTcast si le serveur qui vous relaie est déjà répertorié. Notez que la variable PublicServer peut prévaloir sur ce réglage.

CODE Configurer MetaInterval
; MetaInterval spécifie, à quel intervale en octets, les méta-données sont envoyées.
; Vous devriez réellement laisser cela à sa valeur par défaut qui est  32768, mais l'option est à votre disposition
; quoi qu'il en soit.
MetaInterval=32768

Laissez simplement cela en l'état.

Configuration des accès

CODE Configurer le temps d'écoute maximal
; ListenerTimer est le temps autorisé  en minute
; par auditeur connecté. Si quelqu'un est connecté plus longtemps que cette limite
; il est déconnecté. Si cette variable n'est pas définie, 
; il n'y a pas de limite.  la valeur par défaut est undefined.
; ListenerTimer=600

Je ne suis pas certain que vous ayez besoin de cela. De base, si un auditeur est connecté trop longtemps, déconnectez-le. La seule raison que j'y vois, c'est d'évincer les gens qui sont restés connectés sans écouter. La valeur est donnée en minutes

CODE Configurer le fichier de banissement
; BanFile est le fichier texte que  sc_serv lit et écrit
; en tant que liste des clients bannis pour la connexion à
; ce serveur. Il est généré automatiquement via l'interface Web. 
; BanFile=sc_serv.ban

Ceci est le nom de fichier de la liste des clients bannis de votre serveur. La valeur par défaut est sc_serv.ban, mais vous pouvez utiliser le nom de votre choix dans ce réglage :

CODE Définir la liste Rip
; RipFile est le fichier de texte dans lequel sc_serv lit et écrit
; la liste des adresses IP de clients qui sont qui sont autorisés en *PERMANENCE*
; à se connecter à ce serveur (très utiles pour les serveurs relais).
; Ce fichier est généré automatiquement via l'interface web
; Notez que si votre serveur est PLEIN, et que quelqu'un  
; se connecte depuis une adresse IP réservée, le DNAS forcera la personne 
; qui écoute depuis le plus longtemps à  laisser la place à la nouvelle connexion. 

; RipFile=sc_serv.rip

Aussi déprimant qu'il puisse paraître, Rip signifie IP réservée. Utilisez cela pour vos amis ou pour d'autres personnes à qui vous voulez donner priorité sur l'utilisateur lambda. Si vous êtes en train de diffuser aux nombre maximum d'utilisateurs possible, et que l'un de vos utilisateurs rip essaie de se connecter, il évincera la personne qui écoutait depuis le plus longtemps.

CODE Définissez si seuls les utilisateurs Rip sont autorisés à accéder à votre serveur
; RipOnly, lorsque défini à ''Yes'', n'autorisera que les adresses IP listées dans   la liste des adresses IP réservées 
; à se connecter et à relayer.  Toutes les autres tentatives de connexion seront refusées.
; Ceci n'est réellement utile que pour les serveurs dont le seul but est de fournir un flux primaire 
; à tous les relais publics. Définir cette valeur à ''Yes''  force aussi le
; serveur en mode ''Privé'', puisque lister ce serveur dans le répertoire serait sans objet.
; La valeur par défaut est ''No''.
; RipOnly=No

Ceci autorise seulement les membres Rip à se connecter à votre serveur SHOUTcast. Vous pouvez, soit utiliser cela pour des flux radio privés, soit l'utiliser pour que seuls certains relais soient capables d'accéder à votre flux.

Configuration de masse

CODE Définir la variableUnique
; Unique: assigne un nom de variable pour une utilisation dans n'importe quel item de configuration qui pointe sur un fichier. 
; C'est utile pour des machines sur lesquels tournent  de nombreux serveur SHOUTcast qui ont 
; de paramètres de configuration similaires, à l'exception des noms de journaux, des noms de fichiers ban , etc.  
; Tout paramètre qui prend un nom de fichier peut inclure le caractère $, qui sera 
; remplacé par la variable assignée ici.  Souvenez-vous que la variable ''Unique''
; ne peut être utilisée qu'après avoir été définie.  Par exemple, vous pourriez définir :

; Unique=my_server
; et ensuite définir Log=/usr/local/SHOUTcast/$.log dans un fichier de configuration
; La valeur par défaut est  Unique=$, de manière à ce que tout nom de fichier avec $ ne subira aucune substitution.

Fondamentalement, si vous exécutez beaucoup de serveurs SHOUTcast, ce serait vraiment rébarbatif de changer tous les fichiers log/ban/etc. en quelque chose d'unique pour chacune des configurations. Au lieu de cela, vous pouvez définir Unique à quelque chose, et $ sera remplacé par ce quelque chose. Par exemple, si un fichier possède une définition de Unique =Jazz et une autre Unique=Rock, alors Log=/var/log/$.log produira /var/log/Jaz.log dans un fichier de configuration, et /var/log/Rock.log dans l'autre. Ce qui facilite la configuration de multiples serveurs qui ont des configuration similaires.

CODE Définir des variables de configuration communes
; Include: demande au   sc_serv de lire depuis le fichier de configuration désigné,
; *au point où se trouve l'instruction Include *, et de faire comme si 
; le fichier inclus faisait partie de lui-même.  Notez que tous les paramètre de configuration
; dans le fichier de configuration du DNAS sont traités du premier au dernier , de manière telle que si un item est défini 
; deux fois dans une  configuration, la dernière version rencontrée de cet item sera la version retenue. 
; Pour cette raison, c'est en général une bonne idée d'utiliser les Includes d'abord 
; dans un fichier de configuration .
; exemple:
; Include=/usr/local/SHOUTcast/common.conf
; Default is not applicable.

Si vous exécutez plusieurs serveurs SHOUTcast et voulez utiliser des variables de configuration similaires sans les redéfinir à chaque fois, vous pouvez pointer vers un fichier qui contient ces variables similaires à l'aide d'un Include.

Optimisation de la configuration

CODE Setup number of CPU's utilized
; CpuCount is used to explicitly limit the DNAS to dominating a finite
; amount of processors in multiprocessor systems.  By default,
; SHOUTcast creates one thread for every processor it detects in the
; host system, and assigns listeners equally across all the threads.
; In the event SHOUTcast doesn't correctly determine the number of
; CPUs in your host, or if you for whatever reason want to force
; the DNAS to not use other processors, you can say so here.
; Default behavior is to use as many processors as the DNAS detects on
; your system.
; CpuCount=1

On multiple CPU systems, use this setting to force the SHOUTcast Server to utilize CpuCount # of processors. The default to assign one thread to each processor, and have listeners across all the threads. If you set this lower than your total processor count, this will leave processors free to do other things.

CODE Setup data submission gap
; Sleep defines the granularity of the client threads for sending data.
; DNAS 1.7.0, per client thread, will send up to 1,024 bytes of data
; per socket (or less depending on the window available), and then
; sleep for the provided duration before repeating the whole process.
; Note that making this value smaller will vastly increase CPU usage on
; your machine.  Increasing reduces CPU, but increasing this value too far
; will cause skips.  The value which seems most optimal for 128kbps
; streaming is 833 (833 microseconds per client poll) on our test labs.
; We wouldn't recommend setting it any lower than 100, or any higher than
; 1,024.  If you have a slower machine, set this number lower to fix
; skips.
; Default value is 833.
; Sleep=833

The SHOUTcast Server will use the sleep value in determining the gap between sending data. The higher the value, the longer the gap, the lower the value, the shorter the gap and the more CPU usage SHOUTcast Server will take up. On slower systems, as it states, you might want to lower this so that the SHOUTcast Servers sends data more and more frequently to users. Best to leave as is.

CODE Setup XML output
; CleanXML strips some whitespace and line feeds from XML output which
; confuses some (poorly written) XML parsers.  If you get XML rendering errors,
; try turning this on.  Default is No (off).
; CleanXML=No

Probably don't need to worry about this setting to much unless you use custom XML parsers to create custom statistics for you server. If the XML parser cannot handle whitespace and line feeds in XML, set this to Yes, and all should work.

Configuration Conclusion

Your SHOUTcast Server should now be configured. For businesses that are using SHOUTcast, I recommend turning on WC3 logging, as it can be easily parsed, and used for creating custom statistics. You should also enable the AdministratorPassword. You might also wish to enable some of the mass configuration options if you're creating multiple SHOUTcast Servers.

With the configuration setup, we'll now work on getting SHOUTcast up and running. We'll start with simple on demand streaming for a simple startup, then work on SHOUTcast Trans later (as it is somewhat more involved).

Getting started with SHOUTcast Server

Setting up on demand streaming

On demand streaming, as shown in the configuration chapter, automatically sets up on demand play lists for mp3 files in the content directory. The SHOUTcast server ebuild has a directory setup in /opt/SHOUTcast/content for all your on demand mp3's. Let's get started by creating a simple on demand streaming mp3.

First we'll need to get an mp3 from somewhere and put it in the content directory. We'll take this sample.mp3 file from an /Mp3 directory I have created.

root #cp sample.mp3 /opt/SHOUTcast/content/
root #cd /opt/SHOUTcast/content/
root #ls
sample.mp3

OK, so the file is copied over now. Now we'll need to startup our SHOUTcast Server so the file can be accessed.

root #/etc/init.d/shoutcast start
 * Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc.  All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
                                                                         [ ok ]

The little banner is there to make sure that nothing dies right away (i.e. so you know your server actually started). Your SHOUTcast Server is now started! Because of the nature of on demand content, you will ONLY be able to access it from a browser. MPlayer or anything else won't be able to stream it as is. I use kmplayer in order to access the stream directly from my browser. You can see the result on the next image.

Some people have Audacious setup to handle their audio mime types, so your browser may spawn Audacious up in order to play the resulting streaming content. Now that you are able to work with on demand content, we'll now work on using SHOUTcast Trans to create a true streaming radio server.

Setting up SHOUTcast Trans

SHOUTcast Trans introduction

SHOUTcast Trans stands for SHOUTcast Trans(coder), as it is able to transcode mp3's to lower or higher bit rates. SHOUTcast Trans works by streaming mp3's from a play list specified in the configuration file. We'll begin to setup the configuration for SHOUTcast Trans, so that we can have a real to goodness streaming radio station. We'll begin by opening the configuration file for SHOUTcast Trans, which just so happens to be located in /etc/shoutcast/sc_trans.conf.

root #emerge --ask shoutcast-trans-bin
root #vi /etc/shoutcast/sc_trans.conf

Now that we have the SHOUTcast Trans configuration file open, we'll begin to setup the streaming source.

Configuring SHOUTcast Trans

CODE Setting up the playlist
; PlaylistFile (required EVEN IF RELAYING) - play list file (to create, use
; find /path/to/mp3/directory -type f -name "*.mp3" > playlist_filename.lst
PlaylistFile=/opt/SHOUTcast/playlists/playlist.lst

This setting tells SHOUTcast where to find its streaming media content from. This setting requires an existing file, so let's go ahead and create a play list. I'll create one real quick from my /Mp3 directory referred to earlier.

user $find /Mp3 -type f -name "*.mp3" > /opt/SHOUTcast/playlists/playlist.lst

Now that the play list is setup, we point the configuration file to it, and SHOUTcast Trans will now know what files to stream.

CODE Setting the server IP and port
; Serverip/ServerPort are the target server to send to
Serverip=127.0.0.1
ServerPort=8000

This setting decides where to send the streaming content. In this guide, it will be the SHOUTcast Server's IP and port that you setup previously (DestIP and PortBase).

CODE Setting the SHOUTcast Server password
; Password is the password on the sc_serv you're sending to.
Password=password_you_setup_in_sc_serv.conf

The is the same password that you setup in the SHOUTcast Server configuration.

CODE Setting up your stream information
; StreamTitle/URL/Genre define the data that appears on the directory and in the
; stream info.
StreamTitle=Chris Gentoo Beats
StreamURL=http://www.gentoo.org
Genre=JPOP Electronica And More!

This sets up the title of your stream (i.e. Radio One), the URL (i.e. http://www.radio-one.com), and the Genre (i.e. Electronica Trance Tribal).

CODE Setting up your logfile
; Logfile optionally denotes a text file to log sc_Trans to.  a kill -HUP
; will force a close and re-open of this file (but will also cease logging to
; the console)
LogFile=/var/log/sc_Trans.log

This will point to the log file for SHOUTcast Trans. All your logging goes here.

CODE Setting up shuffling
; Shuffle the play list
Shuffle=1

Decide on whether or not you want your play list to play random songs from your list each time. Most will set this to 1. If you're going to be accepting song requests, set this to 0 and I'll explain how to do that later on.

CODE Setting up the stream
; Bitrate/SampleRate/Channels recommended values:
; 8kbps 8000/11025/1
; 16kbps 16000/11025/1
; 24kbps 24000/22050/1
; 32kbps 32000/22050/1
; 64kbps mono 64000/44100/1
; 64kbps stereo 64000/22050/2
; 96kbps stereo 96000/44100/2
; 128kbps stereo 128000/44100/2
Bitrate=128000
SampleRate=44100
Channels=2
; Quality is from 1-10. 1 is best, 10 is fastest.
Quality=1

Bitrate sets up the bit rate for your stream. This can be from 8000 (8kbps) to 128000 (128kbps). SampleRate sets the sampling rate of the stream. This can be anything from 11025 (11025kHz) to 44100 (44100kHz). Channels sets how many channels your stream will broadcast. This can be anything from 1 (mono) to 2 (stereo). Quality sets the stream quality. This is somewhat still controlled by the Bitrate/SampleRate/Channels. This is where you deal with how compressed the stream is. 1 gives you best quality, 10 gives you the best speed. Keep your connection in mind when you set these values! Use the guide given in order to figure out what your mp3's should be streamed at.

CODE Setting up crossfading
; Mode=0 for none, 1 for 100/100->100/0, 2 for 0/100->100/0
CrossfadeMode=1
; Length is ms.
CrossfadeLength=8000

This sets up song cross fading. Setting this to 0 will disable cross fading. If you set it to 1, Song 1 will fade out and Song 2 will fade in. If you set it to 2, Song 1 will fade in and Song 2 will fade out. The length is how long in ms the cross fade occurs.

CODE Enabling ID3 usage
UseID3=1

This decides whether or not you wish to use the ID3 tag for information about the mp3.

CODE Setting up public status
; Public determines whether or not this station will show up in the directory
Public=0

This sets up whether or not streams should be publicly listed when relaying to a server. Remember PublicServer in sc_serv.conf can over-ride this!

CODE Setting up user interaction
; Put stuff here for user interaction (AOL IM, ICQ, IRC)
AIM=AIMHandle
ICQ=
IRC=SHOUTcast

This sets up the information on how to reach you (the DJ). You can setup AIM or ICQ channels for song requests/anything. You can setup your own IRC channel as well, so that you can interact with multiple users at once.

SHOUTcast Trans Setup Conclusion

Your SHOUTcast Trans is now ready to stream to your SHOUTcast Server! We'll now get started on streaming your mp3's.

Getting Started With SHOUTcast Trans

Starting up SHOUTcast Trans

As I most often use SHOUTcast Trans with SHOUTcast Server, I tend to startup SHOUTcast Trans, which in turns starts up SHOUTcast for you (much easier). So we'll go ahead and get SHOUTcast Trans started.

root #/etc/init.d/shoutcast_trans start
 * Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc.  All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
                                                  [ ok ]
* Starting Shoutcast Trans...                     [ ok ]

Listening to the SHOUTcast Trans stream

Now that SHOUTcast Trans is started, we'll start listening to the stream. I use MPlayer in this example to play the stream.

user $mplayer -cache 1024 http://127.0.0.1:8000/
...
Playing http://127.0.0.1:8000/.
Connecting to server 127.0.0.1[127.0.0.1]:8000 ...
Name   : Chris Gentoo Beats
Genre  : JPOP Electronica And More!
Website: http://www.gentoo.org
Public : no
Bitrate: 128kbit/s
Cache size set to 1024 KBytes
Connected to server: 127.0.0.1
Cache fill:  9.38% (98304 bytes)    Audio file detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2 and 3 finished, tables done
mpg123: Can't rewind stream by 156 bits!
AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 16000->176400 (128.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 44100 hz, little endian signed int
AF_pre: 44100Hz 2ch Signed 16-bit (Little-Endian)
AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
Video: no video
Starting playback...

This was somewhat clipped. The -cache variable was put in to over-ride my somewhat larger buffering settings. And voilà! You're now listening to streaming media! In the next chapter, we'll show you how to do a little bit more with your SHOUTcast Server.

Advanced SHOUTcast Usage

Business Usage

Businesses can use SHOUTcast in a number of ways:

  1. Use on demand content streaming to make more interesting daily announcements.
  2. Have streaming public announcements available as they happen, let your clients know what's going on, on the spot! Then archive them as on demand content streaming for future reference.
  3. Do interviews as streaming media and archive them as on demand content streaming.

There are more possibilities on how to utilize SHOUTcast Server for businesses. Use live streaming media instead of boring old text!

DJ-ing with SHOUTcast

SHOUTcast Server is one of the most popular servers for both new and veteran DJs alike. For those just starting, there are a few ways to increase the user experience of your SHOUTcast Server. Having an intro song is very key. It gives the users an idea of what your station is all about. Be sure to include this! Post your server on yp.SHOUTcast.com (described in the SHOUTcast Server configuration section) so that everyone knows where you are. One of the most unique things is to be able to take requests. To set up requesting, first turn Shuffle off in sc_Trans.conf. Have about, I'd say, 10 or so songs ready to get you started. Then start requesting song requests in the middle. When someone requests a song, simple add it to the end of your play list, and then you can use this script here to control what SHOUTcast Trans does with your play list:

CODE djcontrol
#!/bin/bash
 
case "$1" in
  "reload")
    kill -s USR1 `cat /var/run/SHOUTcast_Trans.pid`
    ;;
  "next")
    kill -s WINCH `cat /var/run/SHOUTcast_Trans.pid`
    ;;
  *)
    echo "Invalid command"
    ;;
esac

When you've added the song to the play list, you need to tell SHOUTcast Trans that your play list has changed with the new request entry.

user $djcontrol reload

You should now let the users know after what song the requests will start. Or if you want, you can keep skipping with:

user $djcontrol next

Be careful not to skip too much, as there is no previous control. Once you hit their song, the requesting begins. I'd get about 5 or so requests before you start requesting. This way you don't run all the way back to the beginning. If you start to lack in requests and expect that your request hour is over with, then simply copy your next session's play list over the requests play list and reload the play list. Once the current song is over, it will go back to the new play list.

Conclusion

That ends it for the SHOUTcast Server and SHOUTcast Trans tutorial. I hope you benefited from the information here and please email me any comments or suggestions for this page! Enjoy your new streaming SHOUTcast Server!


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Chris White, Shyam Mani
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.