Swisslinux.org

− The GNU/Linux crossroads in Switzerland −

 

Language

 

The Forum

You are not logged in.

#1 23 Dec 2004 16:11:35

cedjo
Humain(e) libre
 
From: Ecublens - VD
Registered: 18 Nov 2004
Posts: 40
Website

[Stream audio] icecast fedora core 2 (Wiki)

[edit] Transféré sur le wiki : http://wiki.swisslinux.org/documentation/icecast, 4.12.2006 -- calimarno

Dans la série Linux peut tout faire... il y a Icecast.... bonne pioche big_smile

Voila le but du jeu est d'essayer de mettre en place une "radio internet" qui diffuse les morceaux d'une playlist de morceaux de musique au format ogg (car MP3 c'est pas libre... et c'est de moins bonne qualité) loin de moi de vouloir lancer un troll dont ce n'est pas la place ici, mais c'est ce qui ressort de mes errements sur le net pour installer icecast et l'audio sur une fedora (qui ne supporte pas par défaut le mp3 pour des problèmes de licences) voir mp3 avec fedora

Bon revenons à nos moutons...

installons icecast qui est le serveur de stream audio, il y a aussi shoutcast, mais Icecast fonctionne très bien et on trouve beaucoup de documentation sur le site de Icecast et même en francais

downloadez le rpm  et installez le  avec

Code:

rpm -i icecast-2.0.0-0.fdr.1.1.i386.rpm

ou decompressez et compilez les sources
avec

Code:

tar xvfz icecast-2.2.0.tar.gz
cd icecast-2.2.0
./configure
make
make install

ensuite installez Ices qui est le client-source c'est à dire l'application qui va alimenter Icecast en son à diffuser, il peut recupérer le son du device /dev/dsp pour diffuser ce qui passe sur la carte son mais je m'en tiendrais qu'à la diffusion d'une playlist (je n'ai exploré que cette partie, les précision quant aux autres possibilités sont les bienvenues!)
Il faut ajouter que Ices est le client officiel de Icecast mais il en existe bien d'autres (voir ce lien

J'utilise Ices 2.0.0 qui permet de broadcaster du format ogg sur un serveur Icecast2...

downloadez le rpm ou les sources que vous installerez comme précédemment en remplacant les noms du fichier rpm ou .tar.gz et du repertoire créé pour les sources.

ensuite la configuration est relativement simple en se basant sur les fichiers par défaut fournis qui sont au format xml donc très compréhensibles.

tout d'abord icecast.xml

Code:

<icecast>
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <!-- If enabled, this will provide a burst of data when a client 
             first connects, thereby significantly reducing the startup 
             time for listeners that do substantial buffering. However,
             it also significantly increases latency between the source
             client and listening client.  For low-latency setups, you
             might want to disable this. -->
        <burst-on-connect>1</burst-on-connect>
        <!-- same as burst-on-connect, but this allows for being more
             specific on how much to burst. Most people won't need to
             change from the default 64k. Applies to all mountpoints  -->
        <burst-size>65535</burst-size>
    </limits>

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>PASSWORD</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>PASSWORD</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>ADMINUSER</admin-user>
        <admin-password>PASSWORD</admin-password>
    </authentication>

    <!-- Uncomment this if you want directory listings -->
    <!--
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
    </directory>
     -->

    <!-- This is the hostname other people will use to connect to your server.
    It affects mainly the urls generated by Icecast for playlists and yp
    listings. -->
    <hostname>localhost</hostname>

    <!-- You can use these two if you only want a single listener -->
    <!--<port>8000</port> -->
    <!--<bind-address>127.0.0.1</bind-address>-->

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
    </listen-socket>
    <!--
    <listen-socket>
        <port>8001</port>
    </listen-socket>
    -->

    <!--<master-server>127.0.0.1</master-server>-->
    <!--<master-server-port>8001</master-server-port>-->
    <!--<master-update-interval>120</master-update-interval>-->
    <!--<master-password>hackme</master-password>-->
    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8001</port>
        <mount>/example.ogg</mount>
        <local-mount>/different.ogg</local-mount>

        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    -->

    <!-- Only define a <mount> section if you want to use advanced options,
         like alternative usernames or passwords
    <mount>
        <mount-name>/example-complex.ogg</mount-name>

        <username>othersource</username>
        <password>hackmemore</password>

        <max-listeners>1</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/example2.ogg</fallback-mount>
        <authentication type="htpasswd">
                <option name="filename" value="myauth"/>
                <option name="allow_duplicate_users" value="0"/>
        </authentication>
    </mount>
    -->

    <fileserve>1</fileserve>

    <paths>
        <!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/share/icecast</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>/home/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
        <!-- <pidfile>/usr/share/icecast/icecast.pid</pidfile> -->

        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
             May be made specific to a port or bound address using the "port"
             and "bind-address" attributes.
          -->
        <!--
        <alias source="/foo" dest="/bar"/>
          -->
        <!-- Aliases: can also be used for simple redirections as well,
             this example will redirect all requests for http://server:port/ to
             the status page
          -->
        <alias source="/" dest="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
          <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    <security>
        <chroot>0</chroot>
        
        <changeowner>
            <user>icecast</user>
            <group>icecast</group>
        </changeowner>
        
    </security>
</icecast>

en fait les seules choses que j'ai changé sont le user et les passwords de la section <authentification> et ajouter le nom et le groupe de l'utilisateur qui gère icecast dans la section <changeowner> car icecast ne peut pas s'executer en tant que root.

et en suite il suffit de lancer icecast avec

Code:

icecast -c /etc/icecast.xml

pour Ices j'ai recopié le fichier /usr/share/doc/ices-2.0.0/ices-playlist.xml vers /etc/ices.xml

Code:

cp /usr/share/doc/ices-2.0.0/ices-playlist.xml /etc/ices.xml

et j'ai modifié:
-les paramètres de stockage des logs à la section <logpath> et indiqué l'endroit ou ils seront écrits.
-les <metadata> pour personnaliser un peu l'affichage dans les clients.
-le module playlist ou j'ai indiqué le fichier qui contient ma liste de morceaux ici

Code:

<param name="file">/etc/playlist.txt</param>

(une ligne par morceau avec le chemin complet) par exemple pour créer la liste des fichiers ogg contenus dans /tmp/mysongs je tape:

Code:

find /tmp/mysongs/ | grep ogg > /etc/playlist.txt

je modifie aussi les valeurs

Code:

<param name="random">1</param>

et

Code:

<param name="once">0</param>

pour jouer aléatoirement la playlist et en boucle (once=0)
-la section <instance> ou le <password>PASSWORD</password> doit correspondre au source-password de /etc/icecast.xml et <mount>/feelfree.ogg</mount> pour spécifier le nom du point de montage de cette instance. vous pouvez avoir plusieurs sections streams avec des points de montage et playlist différentes si vous proposez différents style de musiques.

ce qui donne:

Code:

<?xml version="1.0"?>
<ices>
    <!-- run in background -->
    <background>1</background>
    <!-- where logs, etc go. -->
    <logpath>PATH_TO_LOG</logpath>
    <logfile>ices.log</logfile>
    <!-- 1=error,2=warn,3=info,4=debug -->
    <loglevel>4</loglevel>
    <!-- set this to 1 to log to the console instead of to the file above -->
    <consolelog>0</consolelog>

    <!-- optional filename to write process id to -->
    <pidfile>/home/icecast/ices.pid</pidfile>

    <stream>
        <!-- metadata used for stream listing (not currently used) -->
        <metadata>
            <name>ma radio internet</name>
            <genre>mon genre musical</genre>
            <description>description de la radio</description>
        </metadata>

        <!-- input module

            The module used here is the playlist module - it has 
            'submodules' for different types of playlist. There are
            two currently implemented, 'basic', which is a simple
            file-based playlist, and 'script' which invokes a command
            to returns a filename to start playing. -->

        <input>
            <module>playlist</module>
            <param name="type">basic</param>
            <param name="file">/etc/playlist.txt</param>
            <!-- random play -->
            <param name="random">1</param>
            <!-- if the playlist get updated that start at the beginning -->
            <param name="restart-after-reread">0</param>
            <!-- if set to 1 , plays once through, then exits. -->
            <param name="once">0</param>
        </input>

        <!-- Stream instance
            You may have one or more instances here. This allows you to 
            send the same input data to one or more servers (or to different
            mountpoints on the same server). Each of them can have different
            parameters. This is primarily useful for a) relaying to multiple
            independent servers, and b) encoding/reencoding to multiple
            bitrates.
            If one instance fails (for example, the associated server goes
            down, etc), the others will continue to function correctly.
            This example defines two instances as two mountpoints on the
            same server.  -->
        <instance>
            <!-- Server details:
                You define hostname and port for the server here, along with
                the source password and mountpoint.  -->
            <hostname>localhost</hostname>
            <port>8000</port>
            <password>PASSWORD</password>
            <mount>/mon_flux.ogg</mount>

            <!-- Reconnect parameters:
                When something goes wrong (e.g. the server crashes, or the
                network drops) and ices disconnects from the server, these
                control how often it tries to reconnect, and how many times
                it tries to reconnect. Delay is in seconds.
                If you set reconnectattempts to -1, it will continue 
                indefinately. Suggest setting reconnectdelay to a large value
                if you do this.
            -->
            <reconnectdelay>30</reconnectdelay>
            <reconnectattempts>5</reconnectattempts> 

            <!-- maxqueuelength:
                This describes how long the internal data queues may be. This
                basically lets you control how much data gets buffered before
                ices decides it can't send to the server fast enough, and 
                either shuts down or flushes the queue (dropping the data)
                and continues. 
                For advanced users only.
            -->
            <maxqueuelength>80</maxqueuelength>

            <!-- Live encoding/reencoding:
                Currrently, the parameters given here for encoding MUST
                match the input data for channels and sample rate. That 
                restriction will be relaxed in the future.
            -->
            <encode>  
                <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
                <samplerate>44100</samplerate>
                <channels>2</channels>
            </encode>
        </instance>

    </stream>
</ices>

Voila vous pouvez connecter votre lecteur multimédia VLC, Mplayer sur votre flux http://www.maradio.com:8000/mon_flux.ogg et ecoutez votre stream audio...

Les erreurs les plus fréquentes:
-oublier de créer l'utilisateur en charge de l'application icecast
-ne pas ouvrir le port correspondant (ici le port 8000)

personnellement j'ai opté pour les rpm car j'ai eu des soucis pour la compilation avec la librairie libshout, donc c'est une version 2.0 de icecast que j'ai testé, la version 2.2.0 apporte encore d'autres améliorations big_smile


open source... open mind!!!
http://www.spreadfirefox.com/community/images/affiliates/Buttons/80x15/white_1.gif

Offline

 

#2 23 Dec 2004 17:29:01

Neo
Prêcheu(r|se) du libre
 
From: Sion
Registered: 06 Oct 2004
Posts: 234
Website

Re: [Stream audio] icecast fedora core 2 (Wiki)

Testé avec succès sur Mandrake 10 mais version compilée donc la dernière...

Il faut faire gaffe avec le débit upload de sa connection pour pas fusiller la qualité... Sur un upload de 200k prévoir de faire le 128 pour du mp3 et pas plus sinon ça rame.

Un réencodage a la volée pour le mp3 est possible donc ça résout assez vite le problème.

D'autres possibilités de faire cela avec apache et son mod_mp3...  Testé sur Debian il y a pas mal de temps...  Avantage ca passe par Apache pas besoin d'un serveur icecast et couplé avec une base de données mysql qui contient les fichiers ca permet de se promener dans sa bibliothèque online...  :cheesy:

Pas restesté depuis que apache 2 est dehors...  A creuser.

Mais c est bien cool comme système.

Pour la video y a aussi Vlc qui permet de le faire...  Prévoir de faire un stream http pour etre multi-utilisateur mais la les débits c'est mortel.
Pour de l'interne c'est très bien mais sur le net il faut oublier si on a pas un upload de 1mo minimum... :frown:


La Vérité est Ailleurs...

Offline

 

#3 23 Dec 2004 22:47:19

cedjo
Humain(e) libre
 
From: Ecublens - VD
Registered: 18 Nov 2004
Posts: 40
Website

Re: [Stream audio] icecast fedora core 2 (Wiki)

J'ai installé aussi la version 2.2.0 après coup et effectivement ca fonctionne nickel, j'ai rajouté le rpm de libtheora (theora est un codec video pour permettre à icecast de faire du streaming video) et icecast 2.2.0

Des docs sont aussi disponible pour l'installation sur une woody ici et


open source... open mind!!!
http://www.spreadfirefox.com/community/images/affiliates/Buttons/80x15/white_1.gif

Offline

 

#4 08 Jan 2005 14:18:54

Tengu
Gourou(e) du libre
From: La Tour-de-Peilz
Registered: 17 Nov 2004
Posts: 493
Website

Re: [Stream audio] icecast fedora core 2 (Wiki)

[ras-le-bol]
Alors ne faites pas de streaming vidéo en Suisse !
[/ras-le-bol]

Enfin, vivement que certains débouchent les tuyaux... Indice: Ca commence par Sw et ça finit par con... Heu... com... Pardon :p


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Offline

 

#5 08 Jan 2005 21:39:16

Neo
Prêcheu(r|se) du libre
 
From: Sion
Registered: 06 Oct 2004
Posts: 234
Website

Re: [Stream audio] icecast fedora core 2 (Wiki)

Quel est le problème ?

Ils ne fournissent pas d'upload plus haut que 100k ?


La Vérité est Ailleurs...

Offline

 

#6 21 Jun 2006 08:58:27

rjcb
Citoyen(ne)
 
Registered: 21 Jun 2006
Posts: 18

Re: [Stream audio] icecast fedora core 2 (Wiki)

Salut tout le monde!

Je désespere donc je m'adresse a vous:

Salut!

Je m'acharne tout le temps depuis 2 semaines pour faire du streaming audio avec du mp3. Je suis sous FC5

Donc j'ai bien fais l'install de icecast2 et ices 0.4 enfin je pense.
J'ai créer une playlist et mon point de montage.


Cela ne marche toujours pas:

Code:

[root@msr ~]# ices
Logfile opened
Could not find a valid playlist file.
Ices Exiting...
[root@msr ~]#

Donc j'ai suivi ce lien:

http://www.streamlab.info/wikini/?wiki=HowToIcesByhand


alors voila le ices.conf: fichier dans/usr/local/etc

Code:

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<Playlist>
<!-- This is the filename used as a playlist when using the builtin
playlist handler. -->
<File>playlist.txt</File>
<!-- Set this to 0 if you don't want to randomize your playlist, and to
1 if you do. -->
<Randomize>1</Randomize>
<!-- One of builtin, perl, or python. -->
<Type>builtin</Type>
<!-- Module name to pass to the playlist handler if using perl or python.
If you use the builtin playlist handler then this is ignored -->
<Module>ices</Module>
<!-- Set this to the number of seconds to crossfade between tracks.
Leave out or set to zero to disable crossfading (the default).
<Crossfade>5</Crossfade>
-->
</Playlist>

<Execution>
<!-- Set this to 1 if you want ices to launch in the background as a
daemon -->
<Background>0</Background>
<!-- Set this to 1 if you want to see more verbose output from ices -->
<Verbose>0</Verbose>
<!-- This directory specifies where ices should put the logfile, cue file
and pid file (if daemonizing). Don't use /tmp if you have l33t h4x0rz
on your server. -->
<BaseDirectory>/tmp</BaseDirectory>
</Execution>

<Stream>
<Server>
<!-- Hostname or ip of the icecast server you want to connect to -->
<Hostname>msr.ath.cx</Hostname>
<!-- Port of the same -->
<Port>8000</Port>
<!-- Encoder password on the icecast server -->
<Password>letmein</Password>
<!-- Header protocol to use when communicating with the server.
Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and
icecast 2.x needs "http". -->
<Protocol>http</Protocol>
</Server>

<!-- The name of the mountpoint on the icecast server -->
<Mountpoint>/mp3</Mountpoint>
<!-- The name of the dumpfile on the server for your stream. DO NOT set
this unless you know what you're doing.
<Dumpfile>ices.dump</Dumpfile>
-->
<!-- The name of you stream, not the name of the song! -->
<Name>Default stream</Name>
<!-- Genre of your stream, be it rock or pop or whatever -->
<Genre>Default genre</Genre>
<!-- Longer description of your stream -->
<Description>Default description</Description>
<!-- URL to a page describing your stream -->
<URL>http://msr.ath.cx/</URL>
<!-- 0 if you don't want the icecast server to publish your stream on
the yp server, 1 if you do -->
<Public>0</Public>

<!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
just used for display on YP and on the server. Try to keep it
accurate -->
<Bitrate>128</Bitrate>
<!-- If this is set to 1, and ices is compiled with liblame support,
ices will reencode the stream on the fly to the stream bitrate. -->
<Reencode>0</Reencode>
<!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
<!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice
<Samplerate>44100</Samplerate>
-->
<Channels>2</Channels>
</Stream>
</ices:Configuration>

playlist.txt: fichier dans/usr/local/etc

/mp3/iam.mp3

Si je mets dans ices.conf /usr/local/etc/playlist.txt meme pb.

icecast.xml: fichier dans/etc

Code:

<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<!-- same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won't need to
change from the default 64k. Applies to all mountpoints -->
<burst-size>65535</burst-size>
</limits>

<authentication>
<!-- Sources log in with username 'source' -->
<source-password>ftppublic</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>ftppublic</relay-password>

<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>admin</admin-password>
</authentication>

<!-- Uncomment this if you want directory listings -->
<!--
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
</directory>
-->

<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>msr.ath.cx</hostname>

<!-- You can use these two if you only want a single listener -->
<!--<port>8000</port> -->
<!--<bind-address>127.0.0.1</bind-address>-->

<!-- You may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
</listen-socket>
<!--
<listen-socket>
<port>8001</port>
</listen-socket>
-->

<!--<master-server>127.0.0.1</master-server>-->
<!--<master-server-port>8001</master-server-port>-->
<!--<master-update-interval>120</master-update-interval>-->
<!--<master-password>hackme</master-password>-->
<!--<master-relay-auth>1</master-relay-auth>-->

<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->


<!-- Report <hostname> and this port to master server for redirecting
clients to this slave -->
<!--<master-redirect-port>8000</master-redirect-port>-->

<!-- Relays. State connection information, and by default
request inline metadata for mp3 streams if available.
An on-demand relay will only retrieve the stream if
there are listeners connected -->
<!--
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>1</on-demand>

<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->

<!-- Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords
<mount>
<mount-name>/example-complex.ogg</mount-name>

<username>othersource</username>
<password>hackmemore</password>

<max-listeners>1</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/path/to/stream-intro.ogg</intro>
<hidden>1</hidden>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
-->
<!-- other auth possibilities include running a command
to do the auth, mount, user and pass are passed via
stdin to the program
<mount>
....
<authentication type="command">
<option name="filename" value="auth_verify"/>
</authentication>

or

for url auth, the add url needs to return a "icecast-auth-user: 1" http
header for a user to authenicate. Both urls are sent params via POST,
add is sent id, mount, user, pass, ip, useragent
remove is passed id, mount, user, pass, duration

<authentication type="url">

state username/password if url requires it

<option name="username" value="admin"/>
<option name="password" value="hackme"/>
<option name="add" value="http://myauthserver.com/scripts/add_listener.php"/>
<option name="remove" value="http://myauthserver.com/scripts/del_listener.php"/>
</authentication>
</mount -->


<fileserve>1</fileserve>

<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->

<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>/usr/share/icecast</basedir>

<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<pidfile>/var/run/icecast/icecast.pid</pidfile>

<!-- Aliases: treat requests for 'source' path as being for 'dest' path
May be made specific to a port or bound address using the "port"
and "bind-address" attributes.
-->
<!--
<alias source="/foo" dest="/bar"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/status.xsl"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>

les logs indiquent rien a part:

Code:

Logfile opened
Could not find a valid playlist file.
Ices Exiting...
Logfile opened
Could not find a valid playlist file.
Ices Exiting...
Logfile opened
Could not find a valid playlist file.
Ices Exiting...
Logfile opened

Merci de votre aide

Offline

 

#7 21 Jun 2006 19:53:33

rjcb
Citoyen(ne)
 
Registered: 21 Jun 2006
Posts: 18

Re: [Stream audio] icecast fedora core 2 (Wiki)

Salut!

Bon j'ai avancer un peu

ma config ices 0.4 et icecast2.3

ices 0.4.

mon ices.conf.dist

Code:

<?xml version="1.0"?>
<ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">
<Playlist>
<!-- This is the filename used as a playlist when using the builtin
playlist handler. -->
<File>playlist.txt</File>
<!-- Set this to 0 if you don't want to randomize your playlist, and to
1 if you do. -->
<Randomize>1</Randomize>
<!-- One of builtin, perl, or python. -->
<Type>builtin</Type>
<!-- Module name to pass to the playlist handler if using perl or python.
If you use the builtin playlist handler then this is ignored -->
<Module>ices</Module>
<!-- Set this to the number of seconds to crossfade between tracks.
Leave out or set to zero to disable crossfading (the default).
<Crossfade>5</Crossfade>
-->
</Playlist>

<Execution>
<!-- Set this to 1 if you want ices to launch in the background as a
daemon -->
<Background>0</Background>
<!-- Set this to 1 if you want to see more verbose output from ices -->
<Verbose>0</Verbose>
<!-- This directory specifies where ices should put the logfile, cue file
and pid file (if daemonizing). Don't use /tmp if you have l33t h4x0rz
on your server. -->
<BaseDirectory>/tmp</BaseDirectory>
</Execution>

<Stream>
<Server>
<!-- Hostname or ip of the icecast server you want to connect to -->
<Hostname>msr.ath.cx</Hostname>
<!-- Port of the same -->
<Port>8000</Port>
<!-- Encoder password on the icecast server -->
<Password>hackme</Password>
<!-- Header protocol to use when communicating with the server.
Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and
icecast 2.x needs "http". -->
<Protocol>http</Protocol>
</Server>

<!-- The name of the mountpoint on the icecast server -->
<Mountpoint>/ices</Mountpoint>
<!-- The name of the dumpfile on the server for your stream. DO NOT set
this unless you know what you're doing.
<Dumpfile>ices.dump</Dumpfile>
-->
<!-- The name of you stream, not the name of the song! -->
<Name>Default stream</Name>
<!-- Genre of your stream, be it rock or pop or whatever -->
<Genre>Default genre</Genre>
<!-- Longer description of your stream -->
<Description>Default description</Description>
<!-- URL to a page describing your stream -->
<URL>http://msr.ath.cx/</URL>
<!-- 0 if you don't want the icecast server to publish your stream on
the yp server, 1 if you do -->
<Public>0</Public>

<!-- Stream bitrate, used to specify bitrate if reencoding, otherwise
just used for display on YP and on the server. Try to keep it
accurate -->
<Bitrate>128</Bitrate>
<!-- If this is set to 1, and ices is compiled with liblame support,
ices will reencode the stream on the fly to the stream bitrate. -->
<Reencode>0</Reencode>
<!-- Number of channels to reencode to, 1 for mono or 2 for stereo -->
<!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice
<Samplerate>44100</Samplerate>
-->
<Channels>2</Channels>
</Stream>
</ices:Configuration>

Mon icecast.xml:

Code:

<icecast>
<limits>
<clients>5</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<!-- same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won't need to
change from the default 64k. Applies to all mountpoints -->
<burst-size>65535</burst-size>
</limits>

<authentication>
<!-- Sources log in with username 'source' -->
<source-password>hackme</source-password>
<!-- Relays log in username 'relay' -->
<!--<relay-password>hackme</relay-password>-->

<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

<!-- Uncomment this if you want directory listings -->
<!--
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
</directory>
-->

<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>msr.ath.cx</hostname>

<!-- You can use these two if you only want a single listener -->
<!--<port>8000</port> -->
<!--<bind-address>127.0.0.1</bind-address>-->

<!-- You may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
</listen-socket>
<!--
<listen-socket>
<port>8001</port>
</listen-socket>
-->

<!--<master-server>127.0.0.1</master-server>-->
<!--<master-server-port>8001</master-server-port>-->
<!--<master-update-interval>120</master-update-interval>-->
<!--<master-password>hackme</master-password>-->
<!--<master-relay-auth>1</master-relay-auth>-->

<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->


<!-- Report <hostname> and this port to master server for redirecting
clients to this slave -->
<!--<master-redirect-port>8000</master-redirect-port>-->

<!-- Relays. State connection information, and by default
request inline metadata for mp3 streams if available.
An on-demand relay will only retrieve the stream if
there are listeners connected -->
<!--
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>1</on-demand>

<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->

<!-- Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords
<mount>
<mount-name>/example-complex.ogg</mount-name>

<username>othersource</username>
<password>hackmemore</password>

<max-listeners>1</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/path/to/stream-intro.ogg</intro>
<hidden>1</hidden>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
-->
<!-- other auth possibilities include running a command
to do the auth, mount, user and pass are passed via
stdin to the program
<mount>
....
<authentication type="command">
<option name="filename" value="auth_verify"/>
</authentication>

or

for url auth, the add url needs to return a "icecast-auth-user: 1" http
header for a user to authenicate. Both urls are sent params via POST,
add is sent id, mount, user, pass, ip, useragent
remove is passed id, mount, user, pass, duration

<authentication type="url">

state username/password if url requires it

<option name="username" value="admin"/>
<option name="password" value="hackme"/>
<option name="add" value="http://myauthserver.com/scripts/add_listener.php"/>
<option name="remove" value="http://myauthserver.com/scripts/del_listener.php"/>
</authentication>
</mount -->


<fileserve>1</fileserve>

<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->

<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>/usr/share/icecast</basedir>

<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<pidfile>/var/run/icecast/icecast.pid</pidfile>

<!-- Aliases: treat requests for 'source' path as being for 'dest' path
May be made specific to a port or bound address using the "port"
and "bind-address" attributes.
-->
<!--
<alias source="/foo" dest="/bar"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/status.xsl"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>

LEs mots de passe sont identiques!

Code:

[root@msr etc]# icecast -b -c /etc/icecast.xml start
Starting icecast2
Detaching from the console
Changed groupid to 104.
Changed userid to 104.
[root@msr etc]# ices
Logfile opened
Playing /mp3/Lords of The Underground - Keepers Of The Funk/Lords Of The Undergr ound - Keepers Of The Funk - 03 - Tic Toc.mp3
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login fail ed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login failed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login failed
Error during send: Mount failed on http://127.0.0.1:8000/ices, error: Login failed
Too many stream errors, giving up
Ices Exiting...
[root@msr etc]#

Merci

Offline

 

Board footer

Powered by FluxBB