[Icecast] Player mysteriously quits...

Peter Davison peterdavison at tfnet.ca
Sun Jun 5 18:03:13 PDT 2005


Hi Craig.

I'm not sure if it's the same circumstances but I experienced similar issues
with ices/icecast because I had ogg files and mp3 intermixed in my playlist. 
Icecast would play fine for several hours then abruptly quit.  I don't have the
error logs anymore so I can't give you any details there, but the source of the
problem was the ices plugin encountering an ogg file instead of an mp3.  Anyway,
maybe you've got a file in your playlist that icecast/ices doesn't like???

Hope that helps.

Regards,
Pete.



On Sun, 05 Jun 2005 12:30:01 -0500 Craig Meyer
<craig at fdllug.org> wrote:

> I posted the other day with a question about a player that mysteriously quits
playing the icecast stream. I believe the problem is related to the icecast
stream for two reasons. 1) Because it quits on more than one different player
(Winamp 5 and Foobar2000) and 2) Because I used to use shoutcast with Winamp 2
and never had this problem. Anyway, I tried to get as much information about the
problem as possible, so I turned on logging (at loglevel 3) and got a log of the
period when the player stops playing. I have looked at the logs myself and don't
believe they will be much help, however I have increased the loglevel to 4 so
that the next set of logs I get will be more detailed. Below is a list of my
logs and config files. It goes in this order - access.log, error.log, ices.log,
ices config file and icecast config file. Any help would be appreciated, but
again, I will have better logging when the stream stops playing again (probably
in about 8 hours or so).
> 
> -Craig
> 
> 
> access.log
> 127.0.0.1 - - [04/Jun/2005:14:09:55 -0500] "SOURCE /tobin.ogg HTTP/1.0" 200 19
"-" "IceS 2.0.1" 375393
> 127.0.0.1 - - [04/Jun/2005:14:13:33 -0500] "SOURCE /tobin.ogg HTTP/1.0" 200 19
"-" "IceS 2.0.1" 128
> 192.168.0.3 - - [05/Jun/2005:05:29:24 -0500] "GET /tobin.ogg HTTP/1.0" 200
223293079 "-" "WinampOGG/5.09(MPEG stream compatible)" 54902
> 
> error.log
> [2005-06-04  14:13:33] INFO format-ogg/ogg_get_buffer End of Stream /tobin.ogg
> [2005-06-04  14:13:33] INFO source/source_shutdown Source "/tobin.ogg" exiting
> [2005-06-04  14:13:44] INFO connection/_handle_source_request Source logging
in at mountpoint "/tobin.ogg"
> [2005-06-04  14:13:44] INFO format-vorbis/initial_vorbis_page seen initial
vorbis header
> [2005-06-04  14:13:44] INFO format-vorbis/initial_vorbis_page seen initial
vorbis header
> [2005-06-04  14:14:22] INFO source/source_main listener count on /tobin.ogg
now 1
> [2005-06-05  05:29:24] INFO source/source_main listener count on /tobin.ogg
now 0
> 
> ices.log
> [2005-06-04  14:13:44] INFO ices-core/main IceS 2.0.1 started...
> [2005-06-04  14:13:44] INFO input-alsa/alsa_open_module Opened audio device
plughw:0,0
> [2005-06-04  14:13:44] INFO input-alsa/alsa_open_module using 2 channel(s),
44100 Hz, buffer 371 ms
> [2005-06-04  14:13:44] INFO input-alsa/alsa_open_module Starting metadata
update thread
> [2005-06-04  14:13:44] INFO signals/signal_usr1_handler Metadata update
requested
> [2005-06-04  14:13:44] INFO metadata/metadata_thread_signal tag 1 is
artist=tobin
> [2005-06-04  14:13:44] INFO metadata/metadata_thread_signal Updating metadata
> [2005-06-04  14:13:44] INFO audio/downmix_initialise Enabling stereo->mono
downmixing
> [2005-06-04  14:13:44] INFO audio/resample_initialise Initialised resampler
for 1 channels, from 44100 Hz to 22050 Hz
> [2005-06-04  14:13:44] INFO encode/encode_initialise Encoder initialising in
VBR mode: 1 channel(s), 22050 Hz, quality 0.000000
> [2005-06-04  14:13:44] INFO stream/ices_instance_stream Connected to server:
localhost:8000/tobin.ogg
> [2005-06-04  14:13:44] INFO audio/resample_initialise Initialised resampler
for 1 channels, from 44100 Hz to 22050 Hz
> [2005-06-04  14:13:44] INFO encode/encode_initialise Encoder initialising in
VBR mode: 1 channel(s), 22050 Hz, quality 0.000000
> 
> 
> Ices Config File:
> <?xml version="1.0"?>
> <ices>
> 
>     <!-- run in background  -->
>     <background>0</background>
>     <!-- where logs go. -->
>     <logpath>/home/icecast/log</logpath>
>     <logfile>ices.log</logfile>
>     <logsize>2048</logsize>
>     <!-- 1=error, 2=warn, 3=infoa ,4=debug -->
>     <loglevel>3</loglevel>
>     <!-- logfile is ignored if this is set to 1 -->
>     <consolelog>0</consolelog>
> 
>     <!-- optional filename to write process id to -->
>     <!-- <pidfile>/home/ices/ices.pid</pidfile> -->
> 
>     <stream>
>         <!-- metadata used for stream listing -->
>         <metadata>
>             <name>TobinRadio</name>
>             <genre>FM Tuner</genre>
>             <description>Radio Machine for Tobin Machining</description>
>             <url>localhost</url>
>         </metadata>
> 
>         <!--    Input module.
> 
>             This example uses the 'oss' module. It takes input from the
>             OSS audio device (e.g. line-in), and processes it for live
>             encoding.  -->
>         <input>
>             <module>alsa</module>
>             <param name="rate">44100</param>
>             <param name="channels">2</param>
>             <param name="device">plughw:0,0</param>
>             <!-- Read metadata (from stdin by default, or -->
>             <!-- filename defined below (if the latter, only on SIGUSR1) -->
>             <param name="metadata">1</param>
>             <param name="metadatafilename">/home/icecast/test</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 a single instance doing live encoding at
>             low bitrate.  -->
> 
>         <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>icecast</password>
>             <mount>/tobin.ogg</mount>
>             <yp>1</yp>   <!-- allow stream to be advertised on YP,
> default 0 -->
> 
>             <!--    Live encoding/reencoding:
> 
>                 channels and samplerate currently MUST match the channels
>                 and samplerate given in the parameters to the oss input
>                 module above or the remsaple/downmix section below.  -->
> 
>             <encode>
>                 <quality>0</quality>
>                 <samplerate>22050</samplerate>
>                 <channels>1</channels>
>             </encode>
> 
>             <!-- stereo->mono downmixing, enabled by setting this to 1 -->
>             <downmix>1</downmix>
> 
>             <!-- resampling.
> 
>                 Set to the frequency (in Hz) you wish to resample to, -->
> 
>             <resample>
>                 <in-rate>44100</in-rate>
>                 <out-rate>22050</out-rate>
>             </resample>
>         </instance>
> 
>     </stream>
> </ices>
> 
> 
> 
> 
> 
> Icecast Config File:
> <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>icecast</source-password>
>         <!-- Relays log in username 'relay' -->
>         <relay-password>icecast</relay-password>
> 
>         <!-- Admin logs in with the username given below -->
>         <admin-user>admin</admin-user>
>         <admin-password>icecast</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>radio</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/log</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>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
>     </logging>
> 
>     <security>
>         <chroot>0</chroot>
>         <changeowner>
>             <user>icecast</user>
>             <group>icecast</group>
>         </changeowner>
>     </security>
> </icecast>
> 
> 
> _______________________________________________
> Icecast mailing list
> Icecast at xiph.org
> http://lists.xiph.org/mailman/listinfo/icecast
> 


-- 
Peter Davison             _/_/_/   _/_/_/   _/_/_/
e: peterdavison at tfnet.ca _/   _/  _/   _/  _/   _/
w: http://rpdavison.ca  _/_/_/   _/_/_/   _/   _/
c: 647 883 6486        _/  _/   _/       _/   _/
h: 416 699 2964       _/   _/  _/       _/_/_/


More information about the Icecast mailing list