Icecast Streaming Media Server Forum Index Icecast Streaming Media Server
Icecast is a Xiph Foundation Project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Automatically reconnect

 
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Listener Clients
View previous topic :: View next topic  
Author Message
Anonymous
Guest





PostPosted: Wed Jul 11, 2007 7:44 pm    Post subject: Automatically reconnect Reply with quote

Is there any player or any way to automatically reconnect to a stream if the internet connection is temporarily dropped? I will be using Icecast to feed audio to an actual radio station and would like it to be a walk away operation. Please answer if you have any idea. We'll eventually be using a linux operating system, so if you have any answers for that, I'd like to hear that to. Thanks!

Jon
Back to top
bojko91



Joined: 12 Mar 2010
Posts: 7
Location: Rousse

PostPosted: Fri Mar 12, 2010 6:29 pm    Post subject: Re: Automatically reconnect Reply with quote

Anonymous wrote:
Is there any player or any way to automatically reconnect to a stream if the internet connection is temporarily dropped? I will be using Icecast to feed audio to an actual radio station and would like it to be a walk away operation. Please answer if you have any idea. We'll eventually be using a linux operating system, so if you have any answers for that, I'd like to hear that to. Thanks!

Jon

1st sorry for my bad english.

I have same problem. I run Icecast under Linux Mandriva 2010. Everything is ok, but when dj`s changing stream stop for 1-5 seconds, and users after this 5 sec. not reconnect automaticly... How to fix this problem?

In shoutcast i havent this problem, but i want to use IceCast!

Best wishes: Bozhidar
Back to top
View user's profile Send private message Visit poster's website AIM Address
karlH
Code Warrior
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Fri Mar 12, 2010 6:47 pm    Post subject: Reply with quote

icecast is not able to control what a player does, but they will typically retry to reconnect immediately on a drop and if that reconnection attempt fails then they stop or move to the next entry on the playlist.

If the situation is that the streams exits while the switch over occurs, causing the listeners to disconnect and attempt reconnection, and the stream hasn't reconnected by that time then maybe you should prevent that disconnection by specifying a fallback mount (file or stream) which will be overridden when the next source connects.

karl.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bojko91



Joined: 12 Mar 2010
Posts: 7
Location: Rousse

PostPosted: Fri Mar 12, 2010 8:32 pm    Post subject: Reply with quote

karlH wrote:
icecast is not able to control what a player does, but they will typically retry to reconnect immediately on a drop and if that reconnection attempt fails then they stop or move to the next entry on the playlist.

If the situation is that the streams exits while the switch over occurs, causing the listeners to disconnect and attempt reconnection, and the stream hasn't reconnected by that time then maybe you should prevent that disconnection by specifying a fallback mount (file or stream) which will be overridden when the next source connects.

karl.


Hello Karl.
Can you give me more information how to do this. Im new in Icecast. I have 2 mounts /live & /live2.

This is my icecast.xml:
Code:

<icecast>
    <limits>
        <clients>1024</clients>
        <sources>5</sources>
        <threadpool>5</threadpool>
        <queue-size>524288</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>***</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>****</relay-password>

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

   <!-- 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> -->
   

   
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.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-excellent.tk</hostname>

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
       <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
    </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>-->

    <!-- 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>-->

    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8001</port>
        <mount>/example.ogg</mount>
        <local-mount>/different.ogg</local-mount>
        <on-demand>0</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>/live3</mount-name>

        <!--<username>othersource</username>
        <password>hackmemore</password> -->

        <max-listeners>1024</max-listeners>
        <dump-file>/tmp/live3</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>http://radio-excellent.tk/mp3/Insomnia.mp3</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
       <!-- <intro>/example_intro.ogg</intro>
        <hidden>1</hidden>
        <no-yp>1</no-yp>-->
        <authentication type="htpasswd">
                <option name="filename" value="/usr/share/icecast/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>
<!--
    <mount>
        <mount-name>/auth_example.ogg</mount-name>
        <authentication type="url">
            <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
            <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
            <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
            <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
        </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>/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>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
         <logsize>10000</logsize> <!-- Max size of a logfile -->
        <!-- If logarchive is enabled (1), then when logsize is reached
             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
             otherwise it will be moved to [error|access|playlist].log.old.
             Default is non-archive mode (i.e. overwrite)
        -->
        <!-- <logarchive>1</logarchive> -->
    </logging>

    <security>
        <chroot>0</chroot>
        <!-- Changing user will break logrotate support ( cannot create pid file )
        <changeowner>
            <user>icecast</user>
            <group>icecast</group>
        </changeowner>
        -->
    </security>
</icecast>


Thanks alot!

Best wishes: Bozhidar
_________________
http://radio-excellent.tk
Back to top
View user's profile Send private message Visit poster's website AIM Address
bmn



Joined: 03 Aug 2008
Posts: 12

PostPosted: Fri Mar 12, 2010 8:53 pm    Post subject: Reply with quote

OK, the important options are fallback-mount and fallback-override.

fallback-mount should be set to the path of another stream, e.g. /anotherstream - if you know that one of your live streams will always be up, you can have /live use /live2 as the fallback and vice versa.

Another method is to install an automated source client such as ices, mount it in a secret location, and have it play a playlist of your choice. Then use this stream as your fallback. This guarantees that there'll always be something on your original stream as long as ices is running.

fallback-override, set to 1, brings your listeners back onto the original stream once your new source has connected.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Listener Clients All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2002 phpBB Group
subRebel style by ktauber