Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik [email protected] www.inf.fu-berlin.de/~froetsch World Wide Radio 2 TCP/IP und Java 1.1 basiert Live aufnehmen oder fortlaufend senden Auf Benutzer-Abruf mit dem Senden eines bestimmten Titels beginnen In den Audio-Stream können auch Internet-Adressen eingebettet sein Hören von WWR2: WWR2-Client Computer mit Soundkarte Aktueller Java-fähiger Web-Browser Internetzugang Eintippen von www.javaradio.de => Radiosendung beginnt WWR2-Client - Vorteile Keine Installation: kein Programm oder Plugin herunterladen und konfigurieren Großes Problem, das jeder Internetsurfer kennt: stockende Übertragung der Daten => WWR2 gleicht dies mit einer Zwischenspeicher-Technologie aus. WWR2-Client - Details 10 KB großes Client-Applet wird übertragen. Applet startet in der virtuellen JavaMaschine des Browsers . Übertragung der Audio-Daten in einen Puffer. Nachdem der Puffer ausreichend geladen ist, beginnt das Abspielen. WWR2-Client - Pufferzeiten Bei einem 200MHz-PC und guter InternetAnbindung dauert es vom Eintippen bis zum ersten Ton ca. 6 Sekunden. Der Puffer wird im folgenden weiter geladen und dient dazu Sende-unterbrechungen von bis zu 40 Sekunden abzufangen. WWR2-Client - Übertragungsraten 15 Kbps für verständliche Übertragung Bessere Qualität bei 20 Kbps, 30 Kbps und 50 Kbps Übertragung mit 30 Kbps, unterscheidet sich in der Hörqualität kaum von der Übertragung mit 50 Kbps. WWR2-Client - Weiterleitung Internetanbindung zum aktuellen WWR2Server zu langsam oder abgebrochen => Client kann sich mit einer alternativen Internet-Adresse verbinden. Dort kann z.B. ein weiterer WWR2-Server zur Verfügung stehen oder andere Informationen in Form einer Webseite geboten werden. WWR2-Client Internetadressen-Einbettung In den Audio-Daten-Strom können Internet-Adressen eingebettet werden. Anzeige synchron zum Audio-Strom im Webbrowser => Präsentationen, Vorträge, interaktive Online-Tutorials Beispielvortrag ist abrufbar unter www.javaradio.de/lecture WWR2-Client - MASI Synchronisationsschnittstelle für weitere Medien-Applets: MASI = Media Applet Synchronisation Interface Andere Applets können sich mit dem WWR2-Stream synchronisieren. => Realisierung anspruchsvoller Animationen WWR2-Client - Tafel Beispiel für die Anwendung von MASI Schreibvorgang eines elektronischen Stiftes auf interaktiver virtueller Tafel Unter www.javaradio.de/board wurde ein Vortrag mit dieser Technik aufgezeichnet. WWR2-Client - Zukunft Prinzipiell auch Bilder übertragbar => Durch die Synchronisation von tonlosen Bild-Streams mit Audio-Streams entstehen Video-Streams. Erste Demos werden gezeigt unter www.javavideo.de Senden mit WWR2: WWR2-Server Beim Sender wird ein vorkonfigurierter Webserver (z.B. Apache) gestartet, ein Mikrofon an die Soundkarte angeschlossen und der WWR2-Server unter Java gestartet. => WWR2 ist auf Sendung! WWR2-Server - Sendematerial Live senden Aus einer Audio-Datei abspielen Audio-Dateien in Schleife beliebig oft wiederholen - auch für gerade zu Ende gegangene Live-Sendung, die parallel aufgezeichnet wurde. WWR2-Server Systemvorausetzungen Für Live-Sendungen: Linux oder Unix Zum Abspielen von Audio-Dateien: alle Betriebssysteme, die Java unterstützen, also z.B. Linux, Unix, alle Windows-Derivate oder MacOS WWR2-Server - Start des Servers Zum Senden wird das Javaprogramm 'wwrserver' verwendet, das Konfigurationsdaten aus einer Parameterdatei liest. Optionen auf den folgenden Folien WWR2-Server - Weiterleitung Hörerzahl erreicht konfigurierbare Schwelle: => neu hinzu kommende Hörer werden automatisch an einen anderen Server weitergereicht Hörer bemerkt davon nichts. WWR2-Server - Übertragungsraten Die Sendungen können zur Zeit mit einer Bandbreite von 15 , 20, 25, 30 oder 50 Kbps übertragen werden. Java 1.1 besitzt die Beschränkung, Audio mit maximal 8 kHz Mono abspielen zu können. Diese Qualität wird bereits mit 50 Kbps verlustlos übertragen. WWR2-Server - Java 2 Erst ab Java 2, das die meisten Browser nicht direkt unterstützen (erst über ein spezielles Plugin), ist höhere AudioQualität (z.B. CD-Qualität) abspielbar. Sobald solche Browser verbreitet sind, werden wir entsprechende Codierungen anbieten. WWR2-Server Internetadressen-Einbettung Zu vorbestimmbaren Zeitpunkten in den Internet-Adressen einbettbar (siehe Client) Zeitpunkte vor Abspielen von Audio-Dateien in Konfigurationsdatei abgelegt. Zukunft: interaktive Sende-Steuerung, die die Einbettung während einer Live-Aufnahme erlaubt. WWR2-Server - Fernsteuerung Echte Online-Administration = Kommandos an den Server während des Betriebs: Gesamte Serverkonfiguration ist über einen Service-Port wartbar, der mit einem Passwort gesichert ist. ToDo: Benutzeroberfläche dazu -bisher nur Kommdos über Telnet an den Serviceport Radio-Verteiler-Software: WWR2-Broadcaster Für sehr großen und weltweit verteilten Hörerkreis muß Routing mit Verteilern eingesetzt werden: Auf weit voneinander entfernten Servern werden WWR2-Verteiler (Broadcaster) eingerichtet, so daß der Audio-Datenstrom erst nach dem Verteiler vervielfacht wird. WWR2-Broadcaster - Diagramm WWR2-Broadcaster Funktionsweise WWR2-Sender kann an beliebig viele WWR2-Broadcaster senden, Verteiler wiederum an die Hörer, aber auch an beliebig viele andere Verteiler => sehr große Masse an Hörern erreichbar unabhängig von der verfügbaren Bandbreite des Sendersystems WWR2-Broadcaster - Software Vorausetzung: Betriebssystem mit Java 1.1 Unterstützt auch alle vorher genannten Arten von Datenströmen Ab bestimmter Hörerzahl können neue Hörer an einen anderen Broadcaster oder Server weitergeleitet werden. WWR2-Broadcaster Betriebsmodi Flexible Verbindung (On-Demand-Mode): Verbindung zu Server erst, wenn sich mindestens ein Hörer anmeldet. Permanente Verbindung (PermanentMode): Broadcaster hat ständige Verbindung zum Server, auch wenn kein Hörer beim Broadcaster angemeldet ist. WWR2-Broadcaster - Beispiel Live-Übertragung von kulturellem Ereignis Nur geringe Bandbreite vor Ort: ISDN WWR2-Server: einfacher Linux-PC mit ISDN-Karte und Mikrofon vor Ort Überträgt Signal an einen WWR2Broadcaster in der Zentrale mit großer Bandbreite WWR2-Broadcaster - Beispiel Alternativ kann ein Internet-Provider diese Aufgabe übernehmen. Bei Bedarf werden in anderen Städten, Ländern oder Kontinenten weitere WWR2Broadcaster aufgestellt. Die Zugriffsstatistik des Webservers zeigt u.a. die Herkunftsorte der Hörer, wodurch flexibel auf erhöhte Anforderungen reagiert werden kann. WWR2 auf Abruf: WWR2-Encoder Für jederzeit abrufbare WWR2-Aufnahmen Audio-Dateien im WWR2-Format codiert Kann ohne WWR2-Server von jeder normalen Internet-Webseite zur Verfügung gestellt werden Datei enthält neben den Audio-Daten den sehr kleinen WWR2-Client (10 KB) Mit allen Java-fähigen Browsern abspielbar WWR2-Encoder Internet-Adresseneinbettung Internet-Adressen in den Audio-DatenStrom einbettbar => Benutzer kann Musikstücke mit Texten und Bildern oder animierte Vorträge zu beliebiger Zeit starten. Beispielanwendung: Learning on Demand [email protected] www.javaradio.de Gerald Friedland, Bernhard Frötschl Olav Surawski, Prof. Dr. Raúl Rojas