Icecast: Fallback konfigurieren?

Status
Für weitere Antworten geschlossen.

Orbit

Benutzer
Bevor ich darauf hingewiesen werde die Suche zu benützen, das hab ich schon. :D
Könnte mir jemand genau sagen, wie ich die Fallback-Funktion von Icecast einstellen kann?
Bei mir läuft auf einem Windows-Server ganz normal Icecast2. Und die Input-Quelle für die Musik ist Winamp mit einem Plugin. Nun läuft auch ganz normal der Stream.
Nur, wenn ich nun den Stream von der Playliste stoppen will, also disconnecte und vom PC aus z.B. live senden will, dann wird der Zuhörer rausgeschmissen. Und das auch, wenn der Mountpoint den gleichen Namen hat.
Mit Fallback von Icecast müsste ja das Problem zu beheben sein. Nur wie genau stelle ich das in der Config ein? Könnte jemand sagen, was wie eingestellt werden muss, damit der Wechsel zwischen Streamserver und Streampc reibungslos klappt?

Das wäre die aktuelle Config von Icecast2
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>
        <!-- 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>xxxxx</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>xxxxxx</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>xxxxxx</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>8000</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>xxxxx</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>0</relays-on-demand>-->

    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8001</port>
        <mount>/stream.ogg</mount>
        <local-mount>/stream.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>/example-complex.ogg</mount-name>

        <username>othersource</username>
        <password>xxxxx</password>

        <max-listeners>64</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/stream.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.mp3</intro>
        <hidden>0</hidden>
        <no-yp>1</no-yp>
        <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>

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

    <!-- 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>./</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>./logs</logdir>
        <webroot>./web</webroot>
        <adminroot>./admin</adminroot>
        <!-- <pidfile>./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 -->
      	<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>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>
 
AW: Icecast: Fallback konfigurieren?

Lieber Kollege,

offensichtlich bist du mit XML nicht ganz geübt. Eine solche Datei bearbeitest
am besten zunächst erst einmal mit einem vernüftigen Editor, der Syntaxhighlighting beherrscht.

Dann wirst du sehen, dass in deinem Configfile mehrere Sektionen zur Definition
der Serverfunktionalität auskommentiert sind - beim Start also gar nicht
gelesen werden. Das betrifft u.a. auch den Fallbackbereich.
Da wir ansonsten nicht wissen, ob die übrigen Einstellungen der Encoder und
Streams soweit korrekt sind, ist also erst einmal nur an der Config ganze Arbeit
zu leisten und vielleicht ist dein Problem dann schon gelöst.

Ein Tipp noch: Man sollte in der Datei auch nur aufbewahren, was zum Betrieb
des Servers notwendig ist. Kilobyteweise auskommentierte Default-Einstellungen
machen die Arbeit unnötig schwer.
 
AW: Icecast: Fallback konfigurieren?

Danke erstmal für den Tipp mit dem Auskommentieren. :D Habe nun den Bereich für Fallback auskommentiert, ansonsten hab ich nix verändert. Nur dann startet der Server nicht mit dieser Meldung:
FATAL: error parsing config file (.\icecast.xml)

Was habe ich also hier falsch bzw. wie muss ich das einstellen?
Code:
    <mount>
        <mount-name>/example-complex.ogg</mount-name>

        <username>xxx</username>
        <password>xxx</password>

        <max-listeners>64</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/stream.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.ogg</intro>
        <hidden>0</hidden>
        <no-yp>1</no-yp>
        <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>

    <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>
 
AW: Icecast: Fallback konfigurieren?

Hab mich etwas vertippt. Das "nicht" gehört natürlich nicht dorthin :D :D :D
 
AW: Icecast: Fallback konfigurieren?

Dann ist dein XML-File nicht wohlgeformt. Da du ja sicher den Tip mit dem anständigen Editor von Dea gefolgt bist, siehst du ja, wo der Fehler liegt.

Und so nebenbei, an dem, von dir geposteten, Teil des Files liegt es nicht.
 
AW: Icecast: Fallback konfigurieren?

So, es lag an einem Text, der vorher auskommentiert war. Blöder Fehler von mir. So, nun startet zwar alles, aber das klappt noch nicht so, wie ich es möchte. Also ich sende z.B. über den Stream namens live.ogg und möchte, sobald der stoppt, dass der Stream mit dem Namen stream.ogg weiter gehört wird. Umgekehrt dann natürlich auch. Nur will das nicht klappen. Hier nun die aktuelle Config:

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>
        <!-- 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>xxxx</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>xxxx</relay-password>

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


    <!-- 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 may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
    </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>xxxx</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>0</relays-on-demand>-->

    

    <mount>
        <mount-name>/example-complex.ogg</mount-name>

        <username>othersource</username>
        <password>xxxx</password>

        <max-listeners>64</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/stream.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.ogg</intro>
        <hidden>0</hidden>
        <no-yp>1</no-yp>
        <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>

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

    <!-- 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>./</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>./logs</logdir>
        <webroot>./web</webroot>
        <adminroot>./admin</adminroot>
        <!-- <pidfile>./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 -->
      	<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>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>
 
AW: Icecast: Fallback konfigurieren?

Du hast das hier immer noch nicht gelesen obwohl der Thread ganz oben steht und einen eindeutigen Titel hat. Wenn du ihn gelesen hast, beachtest du ihn nicht, was wohl noch schlimmer ist.
 
AW: Icecast: Fallback konfigurieren?

Hmm... gelesen hab ich ihn nun. Verstehe aber nicht, worauf du hinaus willst. Config zu lang oder keine genauen Angaben zur Versionsnummer?

Also Betriebssystem ist Windoof Server 2003 mit SP1. Es läuft das ganz normale Winamp, daran wird es wohl nicht liegen. Und icecast ist die neueste Version, gestern runtergeladen.
 
AW: Icecast: Fallback konfigurieren?

Folgende Angaben sind nötig bzw. hilfreich bei technischen Fragen:

1. verwendetes Betriebssystem
2. verwendete Hardware
3. verwendete Software
4. relevante Ausschnitte aus Logdateien
5. relevante Ausschnitte aus Konfigurationsdateien
6. eine genaue Beschreibung deines Problems

Zu 6.
Nur will das nicht klappen.
ist keine Problembeschreibung, von genau red ich erst gar nicht. Da gehören Bildschirmausgaben, genaue Auswirkungen des Problems, was du wie genau probiert hast usw. hin.
 
AW: Icecast: Fallback konfigurieren?

So, die letzten Einträge der Error-Log
Code:
[2008-05-18  13:05:18] DBUG stats/stats.c update node total_bytes_sent (0)
[2008-05-18  13:05:18] INFO source/source.c Source "/stream.ogg" exiting
[2008-05-18  13:05:18] DBUG source/source.c clearing source "/stream.ogg"
[2008-05-18  13:05:18] DBUG source/source.c freeing source "/stream.ogg"
[2008-05-18  13:05:18] DBUG connection/connection.c Connection thread done
[2008-05-18  13:05:18] INFO main/main.c Shutting down
[2008-05-18  13:05:18] INFO fserve/fserve.c file serving thread stopped
[2008-05-18  13:05:18] DBUG slave/slave.c waiting for slave thread
[2008-05-18  13:05:18] DBUG slave/slave.c shutting down current relays
[2008-05-18  13:05:18] INFO slave/slave.c Slave thread shutdown complete
[2008-05-18  13:05:18] DBUG stats/stats.c delete source node /stream.ogg
[2008-05-18  13:05:18] DBUG stats/stats.c update node clients (0)
[2008-05-18  13:05:18] DBUG stats/stats.c update node sources (0)
[2008-05-18  13:05:18] DBUG stats/stats.c delete source node /example-complex.ogg
[2008-05-18  13:05:18] INFO auth/auth.c Authenication thread shutting down
[2008-05-18  13:05:18] INFO auth/auth.c Auth thread has terminated
[2008-05-18  13:05:19] INFO yp/yp.c YP thread down
[2008-05-18  13:05:19] INFO stats/stats.c stats thread finished
[2008-05-18  13:05:19] INFO auth_url/auth_url.c Doing auth URL cleanup

Access Log wird denke ich mal nicht viel bringen. Es gibt bei mir kein Problem. Ich möchte nur, dass ein User nicht vom Stream geschmissen wird, wenn ich eine Live-Sendung von meinem PC aus halte. Also Beispiel:
Stream A läuft ganz normal vom Server.
Nun schalte ich meine Sendung live vom Computer ein und der User müsste sich neu verbinden mit dem anderen Mountpoint. Das möchte ich vermeiden.
 
AW: Icecast: Fallback konfigurieren?

Hast du geprüft ob es an der Authorisierung liegt? Die URLs und der entsprechende Monutpoint sehen IMO so nach "Beispiel" aus.
 
AW: Icecast: Fallback konfigurieren?

Was genau meinst du denn?

Authorisierung das?
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>xxxx</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>xxxx</relay-password>

<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>xxxxx</admin-password>
</authentication>
Da stimmen soweit alle Daten.

Die Sache mit den URLs und dem Mountpoint versteh ich auch nicht wirklich, daher hab ich die nicht geändert. Wäre gut, wenn du mir sagen kannst bzw. erklären, was wie geändert werden soll
 
AW: Icecast: Fallback konfigurieren?

<mount>
<mount-name>/example-complex.ogg</mount-name>

<username>othersource</username>
<password>xxxx</password>

<max-listeners>64</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/stream.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/example_intro.ogg</intro>
<hidden>0</hidden>
<no-yp>1</no-yp>
<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>

<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>
 
AW: Icecast: Fallback konfigurieren?

So. Ich habe nun den ganzen Nachmittag herumgedoktort und für Leute, die selbst das
Icecast-Forum weder finden noch lesen können/wollen, geschaut, was sich machen lässt.

Im Grunde ist es wie immer zwar grundsätzlich einfach, jedoch gibt es Icecast-Tücken,
von denen ich bis eben auch nichts wusste und die dafür sorgen können, dass nicht
einmal die Config gelesen werden kann.

1. Ist die Variante der Definition eines ShoutCast-kompatiblen Mounts
entgegen der Empfehlung im Icecast-Forum bei Icacast 2.3.1 in dieser Weise (Beispiel)
Code:
<listen-socket>
    <port>8000</port>
    <shoutcast-mount>/autoplay</shoutcast-mount>
</listen-socket>
NICHT möglich! Der Versuch führt zu einem XML-Parser-Fehler.
Richtig geht es nur so wie im großen Beispiel weiter unten.

2. Der Icecast kann auch nicht zweit ShoutCast-Sources gleichzeitig verwursten.
Auch dann nicht, wenn die entsprechenden Mounts richtigerweise verschiedene Ports zugewiesen bekommen.
Zwei Icecast-Sources dagegen funktionieren (und noch mehr).
Demnach muss man sich bei der beliebten und gut funktionieren Fallbacklösung
vorher im Klaren sein, welche Typen die Sources haben sollen.
Ich habe mich bei meinen Experimenten auf die bei Webradios übliche
Situation konzentriert:
Es läuft ein Transcast (automatische Playlist) und der Moderator "verdrängt"
diesen, wenn er "OnAir" geht. Verlässt dieser den Server nach seiner Sendung
wieder, soll der Transcast weiter für die Hörer spielen.

Soweit ich informiert bin, kann der Transcast (sc_trans) nicht als Icecast-Source arbeiten.
Die folgende Konfiguration setzt deshalb einen laufenden Shoutcast-Server voraus,
der von sc_trans "bespielt" wird. Der Icecast dient als Relay und der
Relaymountpoint ist der Fallbackpoint für den Livestream.
Der Livestream ist so konfiguriert, dass er ShoutCast-kompatibel ist und somit
den Moderatoren größtmögliche Freiheit bei der Wahl ihrer Streamingsoftware lässt.
Die nachfolgende Config ist SO auch nicht für OGG-Streams geeignet.
(Ich mag diese unmöglichen synthetischen Streams wie OGG oder AAC/+ nicht.)
Sollte das nötig sein: entsprechend reine Icecast-Mounts verwenden.

Ich poste hier jetzt auch nur die Mount-Definitionen entsprechend der obigen
Beschreibung. Alle weiteren Einstellungen haben mit der Funktionalität nicht
viel zu tun. Nur eins noch: 64 KB bei <burst-on-connect> sind 65536 bytes.
Das sollte man immer entsprechend richtig eintragen, denn da steht 65535 per default - warum auch immer.

Code:
<!-- This mount is for taking connects from external
     ShoutCast-sources (i.e. moderators stream) -->
    <mount>
        <mount-name>/live</mount-name>
        <fallback-mount>/autoplay</fallback-mount>
        <fallback-override>1</fallback-override>
        <public>0</public>
        <max-listeners>64</max-listeners>
        <stream-name>live</stream-name>
        <stream-description>-</stream-description>
        <genre>live</genre>
        <hidden>0</hidden>
        <mp3-metadata-interval>163840</mp3-metadata-interval>
    </mount>
    <listen-socket>
        <port>8000</port>
    </listen-socket>
    <shoutcast-mount>/live</shoutcast-mount>
    <listen-socket>
        <port>8001</port>
        <shoutcast-compat>1</shoutcast-compat>
    </listen-socket>

<!-- This mount acts as a relay and takes the
     stream from a ShoutCast-Server (i.e. a TransCast) -->
    <mount>
        <mount-name>/autoplay</mount-name>
        <public>0</public>
        <max-listeners>64</max-listeners>
        <stream-name>autoplay</stream-name>
        <stream-description>-</stream-description>
        <genre>autoplay</genre>
        <hidden>1</hidden>
        <mp3-metadata-interval>163840</mp3-metadata-interval>
    </mount>
    <relay>
        <server>127.0.0.1</server>
        <port>8006</port>
        <mount>/</mount>
        <local-mount>/autoplay</local-mount>
        <on-demand>0</on-demand>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

Ich hoffe, insoweit geholfen zu haben. Die richtige Konfiguration der Ordner
und Dateien sowie Authentifizierung etc. sollte nun weiss Gott jeder selbst
hinbekommen können. Muss man wohl auch, denn hier weiss keiner, wie es
auf fremden Festplatten aussieht.
 
AW: Icecast: Fallback konfigurieren?

Danke erstmal für den Ausschnitt aus der Config. Die Lösung scheint genau die zu sein, die ich suche. Aber ich brauche keinen Extra Shoutcast also das SC_trans. Ich nutze ganz einfach Winamp mit dem Plugin Edcast von hier http://www.oddsock.org/tools/

Zu der authentication. So wie ich die Dokumentation verstanden habe, ist dies nur nötig, wenn man einen Passwortschutz einstellen möchte für die Zuhörer. Das brauch ich ja nicht, da ich öffentlich sende. Daher hab ich das mal entfernt:
Code:
    <mount>
        <mount-name>/auth_example.ogg</mount-name>
        <authentication type="url">
            <option name="mount_add"       value="http://ms1.ztk-hosting.de/notify_mount.php"/>
            <option name="mount_remove"    value="http://ms1.ztk-hosting.de/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>

Mit der Config von dea sieht meine Config nun so aus:
<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>
<!-- 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>65536</burst-size>
</limits>

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

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

<hostname>localhost</hostname>

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


<!--<relays-on-demand>0</relays-on-demand>-->


<mount>
<mount-name>/live</mount-name>
<username>othersource</username>
<password>xxxx</password>
<fallback-mount>/autoplay</fallback-mount>
<fallback-override>1</fallback-override>
<public>0</public>
<max-listeners>64</max-listeners>
<stream-name>live</stream-name>
<stream-description>-</stream-description>
<genre>live</genre>
<hidden>0</hidden>
<mp3-metadata-interval>163840</mp3-metadata-interval>
</mount>

<listen-socket>
<port>8000</port>
</listen-socket>
<shoutcast-mount>/live</shoutcast-mount>
<listen-socket>
<port>8001</port>
<shoutcast-compat>1</shoutcast-compat>
</listen-socket>

<mount>
<mount-name>/autoplay</mount-name>
<public>0</public>
<max-listeners>64</max-listeners>
<stream-name>autoplay</stream-name>
<stream-description>-</stream-description>
<genre>autoplay</genre>
<hidden>1</hidden>
<mp3-metadata-interval>163840</mp3-metadata-interval>
</mount>

<relay>
<server>127.0.0.1</server>
<port>8896</port>
<mount>/</mount>
<local-mount>/autoplay</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
</relay>

<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>./</basedir>

<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>./logs</logdir>
<webroot>./web</webroot>
<adminroot>./admin</adminroot>
<!-- <pidfile>./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 -->
<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>
<!--
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
-->
</security>
</icecast>

Beim Wechsel hab ich das nun so versucht, dass ich den Winamp-Player auf dem Server pausiere und währenddessen starte ich meinen Player auf dem Windowsrechner und connecte natürlich. Nur wird der User leider immer noch rausgeschmissen. Was mach ich denn falsch?
Der Mountpoint vom Server heißt nun autoplay.ogg und der auf meinem Rechner ist live.ogg, eben wie in der Config. :confused:
 
AW: Icecast: Fallback konfigurieren?

Wenn die Parameter nicht angepasst werden und du dem Server sogar die notwendigen
Identitäten klaust, indem du <authentication>...</authentication> entfernst, kann GAR NICHTS gehen!

Lies bitte die Dokumentation, bevor du hier weiter Fragen stellst. Wir sind keine Wahrsager! :wall:

Und jetzt geh' ich meine Herztropfen nehmen.
 
AW: Icecast: Fallback konfigurieren?

:confused: Die Doku hab ich ja schon gelesen. Wenn mir jemand per Messenger helfen kann: icq 434-835-497
 
AW: Icecast: Fallback konfigurieren?

Endlich ist das Problem gelöst! Es musste einfach alles unnötige weg. Danach habe ich folgenden Code hinzugefügt und Voila!

<mount>
<mount-name>/playlist.ogg</mount-name>

<max-listeners>64</max-listeners>
<dump-file>/live.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/live.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>0</fallback-when-full>
</mount>

Daher kann hier geschlossen werden :D
 
AW: Icecast: Fallback konfigurieren?

Bezug nehmend auf diesen Beitrag möchte ich korrigierend
anmerken, dass seit einigen Tagen nunmehr die Version 2.3.2 des Icecast
Mediaservers verfügbar ist und sich bezüglich der Aussagen zum Handling
mehrer Shoutcast-Sources und auch ihrer Deklaration in der Konfigurationsdatei
die richtigen Änderungen ergeben haben. Diese sind im Detail:

1. Können jetzt mehrere Shoutcast-Sources auf einen einzigen Icecast streamen.
Der Vorteil darin besteht besonders bei der Benutzung von Fallback, dass Playlisten
(Transcasts) künftig keinen Shoutcast-Server mehr benötigen, der relayed
werden muss.

2. Werden Shoutcast-kompatible Ports ab sofort so deklariert (Beispiel):
Code:
    <mount>
        <mount-name>/autoplay</mount-name>
        <public>0</public>
        <max-listeners>50</max-listeners>
        <stream-name>autoplay</stream-name>
        <stream-description>-</stream-description>
        <genre>autoplay</genre>
        <hidden>1</hidden>
        <mp3-metadata-interval>163840</mp3-metadata-interval>
    </mount>
    <listen-socket>
        <port>8010</port>
        <shoutcast-mount>/autoplay</shoutcast-mount>
    </listen-socket>

Es erfolgt also zuerst eine Deklaration eines Mountpoints. Anschließend wird
dessen Listener-Port festgelegt, wobei innerhalb dieser Festlegung die Anweisung
an den Server erfolgt, den entsprechenden Port+1 für Shoutcast-Quellen mit zu öffnen.
Die "alte" Methode (shoutcast-compat...) ist somit hinfällig.

Einen Pferdefuß gibt es allerdings dafür wieder:
Fällt Fallback auf einen "hidden" Mountpoint, wie er im obigen Beispiel deklariert
ist, so verschwindet der Ursprungs-Mount ebenfalls von der Status-Seite.
Wer also diese Variante benutzt, muss dafür Sorge tragen, dass Links auf
diese Mounts unabhängig von den Icecast-Seiten zur Verfügung stehen.
Aber wer Icecast verwendet, wird das wohl sowieso gewohnt sein. ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben