streamen
alöp
- php
Hallo,
ich habe verschiedene URLs zu mp3-Streams, diese möchte ich mit PHP "empfangen" und weiterstreamen, wenn man dann einen Stream skipt, soll PHP natürlich den anderen empfangen und weiterstreamen.
Wie realisiere ich das?
Gruß
ich habe verschiedene URLs zu mp3-Streams, diese möchte ich mit PHP "empfangen" und weiterstreamen, wenn man dann einen Stream skipt, soll PHP natürlich den anderen empfangen und weiterstreamen.
Wie realisiere ich das?
Das kommt auf die MP3 Streams an... empfangen kannst du sie mittels fsockopen. Zum senden hast du zwei Möglichkeiten, und die hängen davon ab, wie der Stream übertragen werden soll. Wenn HTTP als Protokoll dient, kannst du dein vom Player aufgerufenes Script einfach die Stream-Daten ausgeben lassen, ggf. müssen dazu noch spezielle Header gesetzt werden.
Wenn es nicht HTTP ist, musst du auf den Apache/Webserver verzichten und mit den Socket-Komponenten von PHP einen eigenen proprietären Server bauen, dafür brauchst du aber die Rechte ein PHP Script direkt auf dem Server auszuführen.
Je nachdem ob du einen Client oder mehrere möchtest, musst dir dann noch überlegen ob ein Script die ganze arbeit alleine machen kann, oder ob du zwei benötigst, eins welches den Stream empfängt und lokal in irgendeiner Art buffert, und ein zweites, welches dann den Stream für jeden Client aus diesem Buffer ausgibt.
Beide Möglichkeiten sind mit mäßigen Kenntnissen umsetzbar, mit einem Shoutcast Video Server hab ich das selbst schonmal versucht.
Hallo,
danke für deine Antwort, das klappt auch soweit perfekt! Prima.
Nur würde ich gerne an die gestreamte mp3 noch metadaten während dem Streamen anhängen ... geht das? Wenn ja wie? Die Metadaten kommen aus einer MySql Datenbank.
Gruß
Hallo,
und wie kann ich es erreichen, dass wenn eine neue mp3-Datei gestreamt wird, der Stream nicht so unterbrochen wird, dass herkömmliche Player die Wiedergabe beenden?
Gruß
und wie kann ich es erreichen, dass wenn eine neue mp3-Datei gestreamt wird, der Stream nicht so unterbrochen wird, dass herkömmliche Player die Wiedergabe beenden?
Nun, da wirst du wohl einen gültigen MP3 Stream erzeugen müssen. Du musst also mit PHP den MPEG Stream so analysieren dass du den Schnitt von einem auf den anderen Stream korrekt zwischen zwei Chunks durchführst, und nicht mitten im Datensalat. Ein Problem könnte ss da aber immernoch geben, wenn die Streams unterschiedliche Bitrate oder Samplerate haben.
Was die Metadaten angeht, die haben afaik nichts mit MP3 zu tun, sondern sind Teil des übertragungsprotokolls zum Player. Auch hier wirst du, zwischen zwei MPEG Chunks, spezielle Meta Chunks einfügen können/müssen. Wie diese aussehen kann ich dir nicht sagen, da musst entweder eine Doku des Protokolls befragen oder selbst eine Übertragung mitschneiden und analysieren.
Hallo,
was sind Cunks und wo kann ich darüber Infos finden?
Gruß
was sind Cunks und wo kann ich darüber Infos finden?
Chunks sind Datenpakete die insich eine Einheit bilden. Jeder Chunk hat normal einen Header und einen Daten-Teil, der Header enthält Infos wie Timecode, Datentyp und Längenangabe etc. und der Daten-Teil dann das mpeg Audio. Jeder Chunk beginnt normal mit einer fest definierten Bit-Sequenz über welche du ihn erkennen kannst.
Den Aufbau von MPEG Streams / Chunks musst du dir ergooglen, da hab ich spontan nichts parat.
Hallo,
vielen Dank erstmal ... hab zwar bisjetzt nichts dazu gefundn, aber mal sehen.
Ich hab noch eine Frage: wie funktioieren diese m3u-Streams?
Wird dort immmer der Pfad zum nächsten Lied hineingeschrieben, während man ihn abspielt?
Gruß