JHab mir den Link mal angesehen, scheint ja fast so, als hätte er für jeden Hörer einen eigenen Mountpoint angelegt
Ja, ich weiß auch nicht, was er da gemacht haben kann. Nach seiner Aussage neulich will ja auch zwei Shoutcast-Quellen auf einen Port gelegt haben, was nicht geht. Da stimmt irgendwas nicht.
Ich mag Icecast, weil er die MPEG-Daten nicht versaut. Das ist auch irgendwie das letzte, was ein Server tun sollte. Das einzige, was ich an SC2 mit seinem Transcoder angenehm finde, ist das Überblenden beim Streamwechsel. Das hätte man aber über das Globalgain-Field zumindest bei MP3 auch ohne Recodierung machen können.
Letztendlich ist die Icecast-Konfiguriererei reine Gewohnheit. Ich hatte mich am Anfang damit auch schwer getan, aber irgendwann "denkt" man so, wie der Server das abarbeitet. Dann ist es einfach.
Ansonsten: Klar sammelt der Icecast die Daten im XML-Format.
Unter
http://mein.serv.er:8000/admin/stats.xml rufen schließlich auch andere Programme ihre Daten ab.
Nachteil: Dazu musst sich der Client mit Name und PWD anmelden. Dafür bekommt er eine solche
Ausgabe:
Code:
<?xml version="1.0"?>
<icestats><admin>icemaster@localhost</admin><client_connections>16</client_connections><clients>4</clients><connections>19</connections><file_connections>4</file_connections><host>192.168.0.1</host><listener_connections>2</listener_connections><listeners>1</listeners><location>Earth</location><server_id>Icecast 2.3.2</server_id><server_start>Thu, 25 Oct 2012 06:00:10 W. Europe Daylight Time</server_start><source_client_connections>2</source_client_connections><source_relay_connections>2</source_relay_connections><source_total_connections>4</source_total_connections><sources>2</sources><stats>0</stats><stats_connections>0</stats_connections><source mount="/live"><bitrate>320</bitrate><genre>Pop</genre><listener_peak>0</listener_peak><listeners>0</listeners><listenurl>http://192.168.0.1:8000/live</listenurl><max_listeners>unlimited</max_listeners><public>0</public><server_description>-</server_description><server_name>Teststream</server_name><server_type>audio/mpeg</server_type><slow_listeners>0</slow_listeners><source_ip>192.168.0.1</source_ip><stream_start>Thu, 25 Oct 2012 06:02:14 W. Europe Daylight Time</stream_start><title>Paul Young - Love Hurts</title><total_bytes_read>22660400</total_bytes_read><total_bytes_sent>0</total_bytes_sent></source><source mount="/mod"><bitrate>320</bitrate><genre>Pop</genre><listener_peak>1</listener_peak><listeners>1</listeners><listenurl>http://192.168.0.1:8000/mod</listenurl><max_listeners>unlimited</max_listeners><public>0</public><server_description>-</server_description><server_name>Teststream</server_name><server_type>audio/mpeg</server_type><slow_listeners>0</slow_listeners><source_ip>192.168.0.1</source_ip><stream_start>Thu, 25 Oct 2012 06:02:13 W. Europe Daylight Time</stream_start><title>Paul Young - Love Hurts</title><total_bytes_read>22624000</total_bytes_read><total_bytes_sent>22624681</total_bytes_sent></source></icestats>
Also wenn es nur um den Tracktitel ginge, wäre die andere Lösung sicher weit einfacher. Es sei denn, das Radio würde mehrere Streams anbieten. Hier sind ja auch gerade 2 zu sehen, obwohl es nach der Konfig von gestern 3 sein müssten, aber /autoplay wird hier gerade nicht bespielt.. Ein PHP-Script müsste also unbedingt in der Lage sein, aus einer randvollen stats.xml gezielt nur die Daten eines bestimmten Mounts lesen zu können.