SHOUTcast/Installation
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
; 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.
; 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é.
; 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.
; 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.
; 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.
; 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.
; 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é.
; 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.
; 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.
; 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
; 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.
; 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.
; 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.
; 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é.
; 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
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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.
; 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
; 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
; 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 :
; 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.
; 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
; 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.
; 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
; 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.
; 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.
; 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
; 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.
; 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).
; 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.
; 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).
; 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.
; 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.
; 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.
; 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.
UseID3=1
This decides whether or not you wish to use the ID3 tag for information about the mp3.
; 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!
; 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:
- Use on demand content streaming to make more interesting daily announcements.
- 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.
- 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:
#!/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.