Ankündigung

Einklappen
Keine Ankündigung bisher.

Shoutcast Stream über PHP ... Titel-Update?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Shoutcast Stream über PHP ... Titel-Update?

    Halloouuu
    Ich habe für mein Webradio ein Script zusammengebastelt, welches mir Shoutcast ausliest und an Winamp/WMP/etc. weitergibt.
    Die Musik klingt super nur habe ich ein Problem:
    Es wird kein Tracktitel, kein Streamtitel und keine URL angezeigt wie es in Shoutcast eigentlich immer der Fall ist.
    Ich hab' schon diverse Sachen probiert die mir aber 0 weitergeholfen haben.
    Hier der Code:
    Code:
    <?php
    header("Content-type: application/octet-stream");
    $streamname = "127.0.0.1";
    $port = 4327;
    $path = "/";
    for(;;)
    {
    $sock = fsockopen($streamname,$port, $errno, $errstr, 2);
    echo file_get_contents('intro.mp3');
    if($sock)
    {
    fputs($sock, "GET ".$path." HTTP/1.0\r\n");
    fputs($sock, "Host: ".$streamname."\r\n");
    fputs($sock, "User-Agent: MP3\r\n");
    fputs($sock, "Accept: */*\r\n");
    fputs($sock, "Icy-MetaData:0\r\n");
    fputs($sock, "Connection: close\r\n\r\n");
    $time = date('Y-m-d H-i-s');
    while(!feof($sock))
    {
    	$stream = fgets($sock, 64);
    	echo $stream;
    	flush();
    }
    }
    fclose($sock);
    }
    ?>
    Schalte ich fputs($sock, "Icy-MetaData:0\r\n"); auf 1, laggt der Stream in einem Intervall von ca. 1,5s, Stream-Informationen vom Shoutcast-Server aus kommen keine an...
    Was ich sehr verwunderlich finde, ist, dass mein Script nichts anderes tut, als den Stream einfach weiterzugeben. Gibt's von Winamp aus irgendwelche Informationen von WO StreamTitle, TrackTitle, etc. abgefragt werden?

    Liebe Grüße,
    PCFreund
    webmasterlounge
    Die deutsche Webmaster-Community


  • #2
    Guten Morgen,

    ich für meinen Teil habe keine Probleme dieser Art ... benutze hierzu aber auch die NSV Tools, um WinAmp Informationen zu übertragen. Check mal Deine Serverkonfig (Shoutcast):

    ; RealTime displays a status line that is updated every second
    ; with the latest information on the current stream (*nix and win32
    ; console systems only)
    RealTime=1

    ... und eventuelle noch ...

    ; MetaInterval specifies how often, in bytes, metadata sent.
    ; You should really leave this at the default of 8192, but the option is
    ; provided anyway.
    MetaInterval=8192

    Dass die Metadata leer ist, wundert mich nicht ... eigentlich werden die Titel primär aus dem ID3 Tag gelesen - danach aus dem Dateinamen (falls ID3 Tag nicht verfügbar oder leer). Die Metadata gehört zur Streamkonfig ... es kann aber durchaus sein, dass Shoutcast den Platz für die Übertragung nutzt - kann es mir aber nicht vorstellen.
    Manche Menschen sind wie Schnitzel - nicht zäh, aber beidseitig bekloppt!

    Kommentar


    • #3
      Die beiden optionen hab' ich genau so ...
      Ich dachte "RealTime=1" zeigt die Informationen zum Stream (listener/uniquelistener) in der Konsole an
      MetaInterval hab ich 8192 ..
      Das heißt, das Shoutcast-Server sendet die Meta-Daten direkt mit der Musik weiter oder gibt's dafür eine externe Datei die der Server anbietet und Winamp sich diese Datei holt?
      webmasterlounge
      Die deutsche Webmaster-Community

      Kommentar


      • #4
        Code:
        header('ICY 200 OK');
        header('icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>');
        header('icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>');
        header('icy-name:HarderBeatz.de');
        header('icy-genre:HandsUp, Dance, House, Trance, and More');
        header('icy-url:http://harderbeatz.de/');
        header('Content-type: audio/mpeg');
        header('icy-pub:1');
        echo 'StreamTitle=\'TrackUpdate @ www.HarderBeatz.de\'; StreamUrl=\'http://harderbeatz.de/\';';
        Sooooo ... Naja es geht halt nur noch nicht ganz ...
        Die URL und der Streamtitel wird nur ausgegeben ... Alles andere wird einfach ignoriert!
        webmasterlounge
        Die deutsche Webmaster-Community

        Kommentar


        • #5
          Wahrscheinlich weil Winamp die Tags wie icy-* nicht kennt? Winamp kann ja schließlich nich jedes Programm kennen das einen Stream zur verfügung stellt.

          Kommentar


          • #6
            Naja die Tags wie icy-* werden ja erkannt aber nur StreamTitle und Streamurl ...
            ( header('icy-name:HarderBeatz.de'); und header('icy-url:http://harderbeatz.de/'); )
            der Content-Type wird auch erfolgreich in Winamp ausgelesen ...

            Dieses "echo 'StreamTitle=\'TrackUpdate @ www.HarderBeatz.de\'; StreamUrl=\'http://harderbeatz.de/\';';" habe ich drangefügt, weil es Meta-Tags sein sollten, wie sie auch im Stream vorkommen (ich habe mir eine Datei mal dafür downgeloadet für 10 Sekunden streaming) nur werden sie aber einfach ignoriert ...
            webmasterlounge
            Die deutsche Webmaster-Community

            Kommentar

            Lädt...
            X