WWR2-Client - Institut für Informatik

Werbung
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
Herunterladen