Was passiert technisch gesehen mit Streams?
schwarze Piste
- sonstiges
Tachchen!
Ich bin ein großer Freund von Onlineradio.
Während die meisten sich zu solchen Gelegenheiten wohl eher Gedanken machen,
wie sie einen Stream mitschneiden, (weiß ich das und) möchte ich wissen,
was eigentlich mit dem Stream passiert.
Da kommen doch Daten bei mir an.
Wohin verschwinden die und verschwinden die überhaupt wirklich?
Gruß
Die schwarze Piste
Hallo,
Da kommen doch Daten bei mir an.
Wohin verschwinden die und verschwinden die überhaupt wirklich?
Naja, die Daten kommen über die Leitung und das Abspielprogramm gibt die dann halt direkt aus, ohne sie auf der Festplatte zwischenzuspeichern. Theoretisch spricht nichts dagegen, die Daten auch auf die Festplatte umzulenken; einige Programme machen das auch. Praktisch könnte es u.U. unter "Umgehung einer Kopierschutzmaßnahme" fallen (und damit verboten sein), wenn Du dies tust - hängt aber sicher vom konkreten Einzelfall ab.
Viele Grüße,
Christian
Hallo,
Während die meisten sich zu solchen Gelegenheiten wohl eher Gedanken machen, wie sie einen Stream mitschneiden, (weiß ich das und) möchte ich wissen, was eigentlich mit dem Stream passiert.
ich versuche mal etwas auszuholen, um die Sache plastisch und anschaulich darzustellen. :-)
Wir stellen uns mal eine typische Vorlesung vor. Irgendwo da vorne steht der Professor und liest aus seinem Script vor. Der ist der Streaming-Server. Er trägt einfach stur vor, was er zu sagen hat. Ob ihm überhaupt jemand zuhört, wieviele das sind, und was die mit der Information machen, ist ihm egal (engagiertere Lehrer/Professoren mögen mir diese Unterstellung verzeihen).
Der Hörsaal ist außerdem voll mit Studenten. Die sind in meinem Szenario die potentiellen Streaming-Clients. Sie *können* sich auf das Gebrabbel des Profs konzentrieren (auf den Stream aufschalten), wenn sie wollen, sie können es aber auch lassen. Einige, die aufmerksam zuhören, machen sich Notizen (Stream mitschneiden), andere hören einfahch nur zu und das genügt ihnen (direktes Wiedergeben des Streams ohne Speichern).
Irgendwo in einer der hinteren Reihen erzählt ein Student, wie er auf der Party am letzten Wochenende die süße Kommilitonin vernascht hat (alternatives Angebot zum Vortrag des Profs). Das berichtet er stolz jedem aufs Neue, der danach fragt. Der labert also nicht nur einfach vor sich hin, sondern achtet drauf, dass seine Zuhörer auch aufmerksam lauschen, will ein Feedback, eine Reaktion seiner Zuhörer. Er ist damit kein typischer Streaming-Server in diesem Szenario, sondern ein verbindungsorientierter Server, der mehrere Clients bedienen kann, zum Beispiel ein typischer HTTP-Server, der Audio- oder Videodateien zum Download bereithält.
Da kommen doch Daten bei mir an.
Wohin verschwinden die und verschwinden die überhaupt wirklich?
Okay, Spaß beiseite. Technisch ist es einfach so, dass ein Streaming-Client (z.B. eine Webradio-Applikation) eine Verbindung zu einem entsprechenden Server aufbaut und die Daten empfängt, die dieser Server kontinuierlich sendet. Er kann diese Daten sofort in Echtzeit decodieren und als Audio-Signal über die Soundkarte ausgeben, er kann sie aber ebensogut auch in eine Datei auf der lokalen Festplatte speichern (oder auch beides). Im ersten Fall (nicht speichern) ist das vergleichbar mit einem Programm, das die Daten vom Eingang der Soundkarte empfängt und sofort wieder auf den Ausgang gibt. Auch dann sind die Daten hinterher nicht mehr "greifbar", also "verschwunden", wie du es formuliert hast. Gerade so, als würdest du jede Stunde das Thermometer ablesen, die Messwerte aber nicht aufschreiben.
Ich hoffe, ich konnte deinem Verständnis damit etwas auf die Sprünge helfen.
Schönes Wochenende noch,
Martin
Tachchen!
Ich hoffe, ich konnte deinem Verständnis damit etwas auf die Sprünge helfen.
Wir nähern uns. Vielen Dank erst einmal für deinen Erklärungsaufwand!
Aber mir will noch nicht recht einleuchten, was mit den ganzen kleinen
Bits und Bytes passiert. Die marschieren den langen Weg durch die Leitung,
verursachen messbaren Traffic, lassen die Lampe an meinem Router flackern
und sorgen dafür, dass die restlichen Downloads langsamer werden.
Diesem "materiell greifbaren" Modell entspricht es auch, wenn ich den
Stream speichere und er dann x MB Speicherplatz auf meiner Festplatte
einnimmt.
Speichere ich aber nicht, sind doch trotzdem x MB durch die Leitung in
in meinen PC gekrochen. Und um in deinem Bild zu bleiben: Aus den Boxen
sind keine Datenpakete gefallen.
Wo sind also all die Daten hin?
Gruß
Die schwarze Piste
Hallo.
Speichere ich aber nicht, sind doch trotzdem x MB durch die Leitung in
in meinen PC gekrochen. Und um in deinem Bild zu bleiben: Aus den Boxen
sind keine Datenpakete gefallen.
Doch! Bloß nicht mehr in der Form, in der dein Rechner sie empfangen hat. ;-)
Wo sind also all die Daten hin?
Wenn dein Rechner die Daten empfängt, landen sie wohl i.d.R. im Arbeitsspeicher. Je nach verarbeitendem Programm und Menge dieser Daten wird ein Teil davon ggf. auch auf der Festplatte zwischengespeichert. Wenn du nun nicht explizit Anweisung gibst, diese Daten zu speichern, wird dieser Bereich im Arbeitsspeicher später wieder freigegeben und auch mit anderen Daten überschrieben.
Tachchen!
Wenn du nun nicht explizit Anweisung gibst, diese Daten zu speichern, wird dieser Bereich im Arbeitsspeicher später wieder freigegeben und auch mit anderen Daten überschrieben.
Aah ... ich hatte mir einfach nicht vorstellen können, dass sowas allein
von meinem armen kleinen Arbeitsspeicher übernommen wird. Wenn dem so ist,
ist alles klar und mir bleibt nur, mich zu bedanken. ;-)
Gruß
Die schwarze Piste
echo $begrüßung;
Wenn du nun nicht explizit Anweisung gibst, diese Daten zu speichern, wird dieser Bereich im Arbeitsspeicher später wieder freigegeben und auch mit anderen Daten überschrieben.
Aah ... ich hatte mir einfach nicht vorstellen können, dass sowas allein
von meinem armen kleinen Arbeitsspeicher übernommen wird.
Soviel ist es ja nicht. Nehmen wir mal unkomprimierte Audiodaten in CD-Qualität an. Die belegen pro Sekunde ca. 172kB. Bei einer Puffergröße von 10 Sekunden ergibt das also 1,72 MB. Und möglicherweise puffert das Programm die Daten in der komprimierten Form, in der sie übertragen wurden, dann wird das nochmal weniger. Vermutlich benötigt das Abspielprogramm deutlich mehr Speicher, vor allem, wenn es schön bunt ist und dabei noch irgendwelche <del>Faxen</del>Visualisierung macht.
echo "$verabschiedung $name";
Hello,
der Stream füttert einen Ringpuffer mit Daten.
Die Soundkarte oder die Soundsoftware holt sie sich dort wieder ab.
Dadurch wird immer wieder ein Stück Puffer frei, dass dann durch eine neue Streamanforderung wieder gefüllt wird.
Wenn die abarbeitende Software zu langsam ist, gerät das Ganze aus der Synchronisation. Das Gleiche passiert auch, wenn der Datentransfer nicht schnell genug ist. Das liegt daran, dass auch auf der "Senderseite" ein Ringpuffer gefüllt wird, der nur ein bestimmten Ausschnitt aus dem zeitlichen Ablauf vorrätig hält. Wenn ein Client nun nicht schnell genug nachkommt mit dem Auslesen, wird er irgendwann "überholt" vom Streaming-Prozess.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo!
Mal ne andere Frage, die aber irgendwie mit der eigentlichen zusammenhängt:
Wie funktioniert eigentlich eine Soundkarte? Der Player empfängt den Stream, wandelt ihn um, da meist MP3. Aber wie gibt er ihn dann in der richtigen Geschwindigkeit an die Soundkarte weiter? Hat die Soundkarte irgendwie einen Puffer?
Wär nett, wenn mir das mal einer erklären könnte. Mit guten Links bin ich natürlich auch zufrieden ;-)
MfG
Primus
Hallo Primus,
Aber wie gibt er ihn dann in der richtigen Geschwindigkeit an die Soundkarte weiter? Hat die Soundkarte irgendwie einen Puffer?
die Soundkarte selbst meistens nicht (bzw. nur einen sehr kleinen). Aber die Player-Software liest meistens, wenn es der Server erlaubt, ein paar Sekunden voraus und puffert die Daten im Arbeitsspeicher. So können auch kurze Stockungen der Übertragung ausgeglichen werden, ohne dass der Hörer etwas davon merkt.
So long,
Martin