Sven Rautenberg: Anbindung eines audio-streaming-servers per Web?

Beitrag lesen

Moin!

Was verstehst du unter "bedienen"? Ein Audiostream ist doch üblicherweise recht simpel: Server kontakten und dann einfach alles abspielen, was an Daten kommt. Und zumindest bei Livestreams sind die weiteren Einflußmöglichkeiten, die über "Play" und "Stop" hinausgehen, nicht vorhanden.

Unter bedienen verstehe ich die Auswahl / Reihenfolge der Songs, eventuelles Ein- und Ausfaden und die Möglichkeit, dass der eingeloggte Moderator die Musik leiser drehen kann um selbst zu moderieren.

Also Administration bzw. Programmgestaltung.

Das Problem konkret bei deinen Beispielen: Wie kommt denn die Stimme des Moderators zum Streamingserver? Dazu muß doch irgendwie ein Mikrophon angeschlossen sein, der Audioeingang der Soundkarte aufgenommen und MP3-komprimiert werden, zum Streamingserver gesendet und dort mit der Musik gemischt werden.

Sowas dürfte nur schwerlich in einer schlichten HTML-Webseite verpackbar sein, dazu bräuchte es mindestens schon ein Applet (Java oder ActiveX) mit erweiterten Zugriffsrechten auf die Hardware (sonst keine Audioaufnahme), und ob das Mischen auf dem Streamingserver so simpel geht, wäre auch noch die Frage.

Der Vorteil von passend spezialisierter Software ist, dass beispielsweise die Mischfähigkeiten tatsächlich in Echtzeit auf der einen Maschine ablaufen. Denn sämtliche Komprimierungsvorgänge haben immer das Problem, dass sie eine gewisse Latenz aufweisen, weil es ziemlich viele Puffer gibt, die gefüllt werden, um als Block durch die Kompression zu wandern, dann gesendet werden, beim Empfänger (im Falle der Moderation ist das erstmal der Streamingserver) wieder zwischengespeichert werden, um gewisse Aussetzer im Eingangsdatenstrom auszugleichen, und erst dann gelangt der Audiostream zum "Ausgang" (im Falle des Streamingservers also zur Signalmischung und erneuten Kompression). Der "Zeitverlust" kann dabei durchaus 30 Sekunden erreichen, d.h. ein "jetzt" gesprochenes Wort erreicht erst nach 30 Sekunden den Ausgang beim Empfänger bzw. dann eben den Audiomischer beim Streamingserver.

Das bedeutet: Wenn man den Audioregler für die Musiklautstärke in Echtzeit bedienen kann (da ist ja nicht viel Information zu übertragen), so müßte man lossprechen, und ungefähr 30 Sekunden danach erst den Regler absenken. Ebenso nach dem Ende der Moderation noch mindestens 30 Sekunden warten, bevor die Musik wieder lauter werden dürfte. Und das alles abhängig von der tatsächlichen Latenz, die natürlich nicht wirklich exakt 30 Sekunden beträgt, sondern von der eingesetzten Software und der Internetlatenz abhängt.

Und obendrein kommt noch das Problem dazu, dass ein Moderator üblicherweise nicht in die Gesangspassagen der Musik hineinsprechen will. Dazu aber muß er die Musik hören, die aktuell gespielt wird. Dummerweise ist beim Abspielen der Musik, die er nur über den Streamingserver empfängt, ebenfalls das Latenzproblem enthalten, die "jetzt" hörbare Musik hat also schon vor etwa 30 Sekunden die Festplatte und Mischstufe verlassen und sich danach in Puffern aufgehalten. Das bedeutet: Wenn der Moderator "jetzt" den Lautstärkeregler runterzieht, und das tatsächlich in Echtzeit sofort wirksam wird, hört er den Effekt erst nach 30 Sekunden. Wenn er aber erst losspricht, wenn die Musik für ihn hörbar leiser geworden ist, vergehen wieder 30 Sekunden, bis der Zeitpunkt des Sprechanfangs gesendet wurde. Wenn dann noch die 30 Sekunden Latenz für die Sprachübermittlung zum Server dazukommen, dauert es grob eine Minute, bis der Moderator für die Zuhörer etwas sagt, aber eine Minute lang ist schon die Musik leiser geworden.

Und natürlich dürfte es für den Moderator ziemlich nervig sein, wenn er im abgehörten Programm seine eigene Moderation immer mit einer Verzögerung von grob einer Minute als Echo hört.

Die gleichen Probleme dürften sich für die manuelle Überblendung von Musikstücken ergeben. Vermutlich deshalb sind Audio-Streaming-Lösungen alle darauf ausgelegt, dass ein komplett fertiger Audiostream zur Verteilung an die Hörer am Streamingserver angeliefert wird - einfach weil die Abmischung und direkte Kontrolle des Audioprodukts nur dann wirklich live gemischt und beurteilt werden kann, wenn dabei keinerlei zeitliche Verzögerung auftritt.

Was gewisse rudimentäre Bearbeitungen wie Verwalten der Playlist oder Einstellung einer sekundenbasierten Fade-/Crossfade-Zeit angeht, kann ich mir schon vorstellen, dass es da Lösungen geben könnte (im Zweifel selbstgestrickt, denn die Streamingserver sind ja auch alle irgendwie steuerbar, und Playlists sind in der Regel simple Textdateien mit Dateinamen, die gespielt werden sollen). Aber was manuelle Audiobeeinflussung angeht, bezweifle ich einfach mal, dass es da eine simple technische Lösung gibt, die eine Fernsteuerung auch nur im entferntesten denkbar macht. Zumindest nicht in der Form, wie man heutzutage normalerweise Audio abmischt.

- Sven Rautenberg

--
"Love your nation - respect the others."