Hallo Leute!
Sizte seit ein paar Tagen an meinen Icecast Config Files und bin langsam mit meinem Latein echt am ende
Das Ziel meines Projektes ist es, dass sich ein DJ in den Server einklinken kann und die Ices Source kickt, ist der DJ mit seiner Sendung fertig und disconected so soll automatisch die Ices Source wider zugeschalten werden.
Da es sich nicht nur um einen DJ sondern um X DJs handelt und ich sicher gehen muss, dass die DJs sich nur dann einlogen wenn sie einen Sendetermin haben, wird die Sache gleich mal ein bisschen komplizierter.
Ich habe mich für folgenden Weg entschieden:
Root Server (Linux) drauf dem 2 mal Icecast + 1 mal Ices läuft.
DJ
\/
Icecast 1 (Master)
\/ -> Wenn Master nich Connected ist dann wird automatisch mit Ices (Fallback) eine Standartplaylist gesendet.
Icecast 2 (Relay)
\/
Zuhörer
Ich prüfe nun mitels eines Cronjobs jede Minute eine Datenbank um zu sehen ob ein DJ eine Sendung hat.
Ist dies der Fall, so wird automatisch das Configfile von Icecast 1 angepasst mit dem richtigen Sourcepasswort des entsprechenden DJs und der Icecast Server 1 wird gestartet.
Ist die die Sendezeit vorbei so wird mit dem gleichen Cronjob der Icecast Server 1 wider gekillt und die Ices Source sendet wieder.
Soviel zur Theorie...
Mein Problem ist nun folgendes:
Sobald sich der Live DJ verbindet, geht es 1 Sekunde bis n Minuten und alle Hörer die gerade online sind bekommen den Sound des Live DJs zu hören.
Soweit so gut (bis auf die Zeit die unbestimmbare Zeit die es braucht bis die Leute den Sound zu hören bekommen) der hacken an der ganzen Sache ist nun aber, dass alle Leute die sich neu ins Webradio einklinken wieder mit der Source verbindet werden und nie zur Livesendung rübergeschalten werden.
Zu den Configfiles:
Icecast 1 (Master)
<icecast>
<limits>
<clients>200</clients>
<sources>1</sources>
<threadpool>5</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>PasswortDesAktuellenDJs</source-password>
<relay-user>relay-user</relay-user>
<relay-password>relay-password</relay-password>
<admin-user>admin-user</admin-user>
<admin-password>admin-password</admin-password>
</authentication>
<hostname>hostname.com</hostname>
<port>8001</port>
<bind-address>00.00.00.00</bind-address>
<master-server>00.00.00.00</master-server>
<master-server-port>8001</master-server-port>
<master-update-interval>1</master-update-interval>
<master-username>relay-user</master-username>
<master-password>relay-password</master-password>
<relays-on-demand>0</relays-on-demand>
<mount>
<mount-name>/liveDJ</mount-name>
<intro></intro>
<fallback-mount></fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>0</fallback-when-full>
<no-yp>1</no-yp>
</mount>
<fileserve>1</fileserve>
<paths>
<basedir>/phat/to/basedir</basedir>
<logdir>/log/dir</logdir>
<webroot>/web/root</webroot>
<adminroot>/admin/root</adminroot>
<pidfile>/run/server.pid</pidfile>
<alias source="/" dest="/admin/"/>
<alias source="/server_version.xsl" dest="/admin/"/>
<alias source="/status.xsl" dest="/admin/"/>
</paths>
<logging>
<accesslog>access_srv1.log</accesslog>
<errorlog>error_srv1.log</errorlog>
<playlistlog>playlist_srv1.log</playlistlog>
<loglevel>4</loglevel>
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>user</user>
<group>group</group>
</changeowner>
</security>
</icecast>
Icecast 2 (Relay)
<icecast>
<limits>
<clients>200</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>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>Ices-password</source-password>
<admin-user>admin-user</admin-user>
<admin-password>admin-password</admin-password>
</authentication>
<hostname>000.000.000.000</hostname>
<port>80</port>
<bind-address>000.000.000.000</bind-address>
<relay>
<server>00.00.00.00</server>
<port>8001</port>
<mount>/liveDJ</mount>
<local-mount>/live</local-mount>
<username>relay-user</username>
<password>relay-password</password>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
<on-demand>0</on-demand>
</relay>
<mount>
<mount-name>/live</mount-name>
<intro>introfile.mp3</intro>
<fallback-mount>/stream</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>0</fallback-when-full>
<no-yp>1</no-yp>
</mount>
<fileserve>1</fileserve>
<paths>
<basedir>/phat/to/basedir</basedir>
<logdir>/log/dir</logdir>
<webroot>/web/root</webroot>
<adminroot>/admin/root</adminroot>
<pidfile>/run/server.pid</pidfile>
<alias source="/" dest="/admin/"/>
<alias source="/server_version.xsl" dest="/admin/"/>
<alias source="/status.xsl" dest="/admin/"/>
</paths>
<logging>
<accesslog>access_srv2.log</accesslog>
<errorlog>error_srv2.log</errorlog>
<playlistlog>playlist_srv2.log</playlistlog>
<loglevel>4</loglevel>
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>user</user>
<group>group</group>
</changeowner>
</security>
</icecast>
Folgende Meldung tritt im Errorlogfile des Icecast 1 auf:
[2007-10-02 17:19:37] WARN slave/check_relay_stream new relay but source "/liveDJ" already exists
Ich hoffe Ihr könnt mir weiterhelfen, bin langsam echt am Ende und kurz vorm durchdrehen (((
Grüsse
Chr!s
Sizte seit ein paar Tagen an meinen Icecast Config Files und bin langsam mit meinem Latein echt am ende
Das Ziel meines Projektes ist es, dass sich ein DJ in den Server einklinken kann und die Ices Source kickt, ist der DJ mit seiner Sendung fertig und disconected so soll automatisch die Ices Source wider zugeschalten werden.
Da es sich nicht nur um einen DJ sondern um X DJs handelt und ich sicher gehen muss, dass die DJs sich nur dann einlogen wenn sie einen Sendetermin haben, wird die Sache gleich mal ein bisschen komplizierter.
Ich habe mich für folgenden Weg entschieden:
Root Server (Linux) drauf dem 2 mal Icecast + 1 mal Ices läuft.
DJ
\/
Icecast 1 (Master)
\/ -> Wenn Master nich Connected ist dann wird automatisch mit Ices (Fallback) eine Standartplaylist gesendet.
Icecast 2 (Relay)
\/
Zuhörer
Ich prüfe nun mitels eines Cronjobs jede Minute eine Datenbank um zu sehen ob ein DJ eine Sendung hat.
Ist dies der Fall, so wird automatisch das Configfile von Icecast 1 angepasst mit dem richtigen Sourcepasswort des entsprechenden DJs und der Icecast Server 1 wird gestartet.
Ist die die Sendezeit vorbei so wird mit dem gleichen Cronjob der Icecast Server 1 wider gekillt und die Ices Source sendet wieder.
Soviel zur Theorie...
Mein Problem ist nun folgendes:
Sobald sich der Live DJ verbindet, geht es 1 Sekunde bis n Minuten und alle Hörer die gerade online sind bekommen den Sound des Live DJs zu hören.
Soweit so gut (bis auf die Zeit die unbestimmbare Zeit die es braucht bis die Leute den Sound zu hören bekommen) der hacken an der ganzen Sache ist nun aber, dass alle Leute die sich neu ins Webradio einklinken wieder mit der Source verbindet werden und nie zur Livesendung rübergeschalten werden.
Zu den Configfiles:
Icecast 1 (Master)
<icecast>
<limits>
<clients>200</clients>
<sources>1</sources>
<threadpool>5</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>PasswortDesAktuellenDJs</source-password>
<relay-user>relay-user</relay-user>
<relay-password>relay-password</relay-password>
<admin-user>admin-user</admin-user>
<admin-password>admin-password</admin-password>
</authentication>
<hostname>hostname.com</hostname>
<port>8001</port>
<bind-address>00.00.00.00</bind-address>
<master-server>00.00.00.00</master-server>
<master-server-port>8001</master-server-port>
<master-update-interval>1</master-update-interval>
<master-username>relay-user</master-username>
<master-password>relay-password</master-password>
<relays-on-demand>0</relays-on-demand>
<mount>
<mount-name>/liveDJ</mount-name>
<intro></intro>
<fallback-mount></fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>0</fallback-when-full>
<no-yp>1</no-yp>
</mount>
<fileserve>1</fileserve>
<paths>
<basedir>/phat/to/basedir</basedir>
<logdir>/log/dir</logdir>
<webroot>/web/root</webroot>
<adminroot>/admin/root</adminroot>
<pidfile>/run/server.pid</pidfile>
<alias source="/" dest="/admin/"/>
<alias source="/server_version.xsl" dest="/admin/"/>
<alias source="/status.xsl" dest="/admin/"/>
</paths>
<logging>
<accesslog>access_srv1.log</accesslog>
<errorlog>error_srv1.log</errorlog>
<playlistlog>playlist_srv1.log</playlistlog>
<loglevel>4</loglevel>
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>user</user>
<group>group</group>
</changeowner>
</security>
</icecast>
Icecast 2 (Relay)
<icecast>
<limits>
<clients>200</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>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
<authentication>
<source-password>Ices-password</source-password>
<admin-user>admin-user</admin-user>
<admin-password>admin-password</admin-password>
</authentication>
<hostname>000.000.000.000</hostname>
<port>80</port>
<bind-address>000.000.000.000</bind-address>
<relay>
<server>00.00.00.00</server>
<port>8001</port>
<mount>/liveDJ</mount>
<local-mount>/live</local-mount>
<username>relay-user</username>
<password>relay-password</password>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
<on-demand>0</on-demand>
</relay>
<mount>
<mount-name>/live</mount-name>
<intro>introfile.mp3</intro>
<fallback-mount>/stream</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>0</fallback-when-full>
<no-yp>1</no-yp>
</mount>
<fileserve>1</fileserve>
<paths>
<basedir>/phat/to/basedir</basedir>
<logdir>/log/dir</logdir>
<webroot>/web/root</webroot>
<adminroot>/admin/root</adminroot>
<pidfile>/run/server.pid</pidfile>
<alias source="/" dest="/admin/"/>
<alias source="/server_version.xsl" dest="/admin/"/>
<alias source="/status.xsl" dest="/admin/"/>
</paths>
<logging>
<accesslog>access_srv2.log</accesslog>
<errorlog>error_srv2.log</errorlog>
<playlistlog>playlist_srv2.log</playlistlog>
<loglevel>4</loglevel>
</logging>
<security>
<chroot>1</chroot>
<changeowner>
<user>user</user>
<group>group</group>
</changeowner>
</security>
</icecast>
Folgende Meldung tritt im Errorlogfile des Icecast 1 auf:
[2007-10-02 17:19:37] WARN slave/check_relay_stream new relay but source "/liveDJ" already exists
Ich hoffe Ihr könnt mir weiterhelfen, bin langsam echt am Ende und kurz vorm durchdrehen (((
Grüsse
Chr!s