31
Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch @ inf . fu - berlin .de www.inf.fu-berlin.de/~froetsch

Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik [email protected] froetsch

Embed Size (px)

Citation preview

Page 2: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

World Wide Radio 2

TCP/IP und Java 1.1 basiertLive aufnehmen oder fortlaufend sendenAuf Benutzer-Abruf mit dem Senden eines

bestimmten Titels beginnenIn den Audio-Stream können auch

Internet-Adressen eingebettet sein

Page 3: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

Hören von WWR2: WWR2-Client

Computer mit SoundkarteAktueller Java-fähiger Web-Browser Internetzugang

Eintippen von www.javaradio.de

=> Radiosendung beginnt

Page 4: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 5: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Client - Details

10 KB großes Client-Applet wird übertragen.Applet startet in der virtuellen Java-

Maschine des Browsers .Übertragung der Audio-Daten in einen

Puffer. Nachdem der Puffer ausreichend geladen

ist, beginnt das Abspielen.

Page 6: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Client - Pufferzeiten

Bei einem 200MHz-PC und guter Internet-Anbindung 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.

Page 7: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 8: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Client - Weiterleitung

Internetanbindung zum aktuellen WWR2-Server 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.

Page 9: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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

Page 10: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Client - MASI

Synchronisationsschnittstelle für weitere Medien-Applets: MASI = Media Applet Synchronisation Interface

Andere Applets können sich mit demWWR2-Stream synchronisieren.

=> Realisierung anspruchsvoller Animationen

Page 11: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 12: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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

Page 13: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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!

Page 14: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Server - Sendematerial

Live sendenAus einer Audio-Datei abspielenAudio-Dateien in Schleife beliebig oft

wiederholen - auch für gerade zu Ende gegangene Live-Sendung, die parallel aufgezeichnet wurde.

Page 15: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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

Page 16: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Server - Start des Servers

Zum Senden wird das Javaprogramm 'wwrserver' verwendet, das Konfigurations-daten aus einer Parameterdatei liest.

Optionen auf den folgenden Folien

Page 17: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 18: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 19: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Server - Java 2

Erst ab Java 2, das die meisten Browser nicht direkt unterstützen (erst über ein spezielles Plugin), ist höhere Audio-Qualität (z.B. CD-Qualität) abspielbar.

Sobald solche Browser verbreitet sind, werden wir entsprechende Codierungen anbieten.

Page 20: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 21: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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

Page 22: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 23: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Broadcaster - Diagramm

Page 24: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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

Page 25: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

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.

Page 26: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Broadcaster - Betriebsmodi

Flexible Verbindung (On-Demand-Mode): Verbindung zu Server erst, wenn sich mindestens ein Hörer anmeldet.

Permanente Verbindung (Permanent-Mode): Broadcaster hat ständige Verbindung zum Server, auch wenn kein Hörer beim Broadcaster angemeldet ist.

Page 27: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Broadcaster - Beispiel

Live-Übertragung von kulturellem EreignisNur geringe Bandbreite vor Ort: ISDNWWR2-Server: einfacher Linux-PC mit

ISDN-Karte und Mikrofon vor OrtÜberträgt Signal an einen WWR2-

Broadcaster in der Zentrale mit großer Bandbreite

Page 28: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Broadcaster - Beispiel

Alternativ kann ein Internet-Provider diese Aufgabe übernehmen.

Bei Bedarf werden in anderen Städten, Ländern oder Kontinenten weitere WWR2-Broadcaster aufgestellt.

Die Zugriffsstatistik des Webservers zeigt u.a. die Herkunftsorte der Hörer, wodurch flexibel auf erhöhte Anforderungen reagiert werden kann.

Page 29: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2 auf Abruf: WWR2-Encoder

Für jederzeit abrufbare WWR2-AufnahmenAudio-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

Page 30: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

WWR2-Encoder - Internet-Adresseneinbettung

Internet-Adressen in den Audio-Daten-Strom einbettbar

=> Benutzer kann Musikstücke mit Texten und Bildern oder animierte Vorträge zu beliebiger Zeit starten.

Beispielanwendung: Learning on Demand

Page 31: Audio Streaming mit Java - die Technik hinter WWR2 Bernhard Frötschl Freie Universität Berlin Institut für Informatik froetsch@inf.fu-berlin.de froetsch

[email protected]

Gerald Friedland, Bernhard FrötschlOlav Surawski, Prof. Dr. Raúl Rojas