Java Media Framework API

13
Java Media Framework API Theoretischer Hintergrund und Anwendungen von Daniel Birk

description

Java Media Framework API. Theoretischer Hintergrund und Anwendungen von Daniel Birk. Themenübersicht. Java Media Framework (JMF) API Architektur des JMF API Wiedergabe/Presentation zeitbasierter Medien Bearbeitung/Processing zeitbasierter Medien Aufnahme/Capturing zeitbasierter Medien - PowerPoint PPT Presentation

Transcript of Java Media Framework API

Java Media Framework API

Theoretischer Hintergrund und Anwendungenvon

Daniel Birk

Themenübersicht Java Media Framework (JMF) API

Architektur des JMF API

Wiedergabe/Presentation zeitbasierter Medien

Bearbeitung/Processing zeitbasierter Medien

Aufnahme/Capturing zeitbasierter Medien

Echtzeitfunktionalität des JMF API Aufbau und Einordnung des Real-Time Transport Protocol (RTP)

Senden von Streaming-Media

Empfangen von Streaming-Media

Anwendungen

Architektur des JMF API Daten importieren, ver- bearbeiten, exportieren

Zeit-, Event- und Datenmodell

3 Manager Klassen

Abbildung aus JMF API Guide von sun

Java Media Framework API

Wiedergabe zeitbasierter Medien Klasse Player

player = Manager.createPlayer(p), .createRealizedPlayer(p)

Events entsprechend Status des Players Wichtig: RealizeCompleteEvent

Kontroll- und Steuerelemente Control[] controls = player.getControls();

Steuereinheit

Visuelle Komponente

Lautstärkeregler

Dateiinformation

Java Media Framework API

Konfigurationsphasen von

Player und Processor

Abbildung aus JMF API Guide von sun

Java Media Framework API

Bearbeitung zeitbasierter Medien Klasse Processor

proc = Manager.createProcessor(p)

Alle Tracks einer Datei TrackControl[] tc = proc.getTrackControls()

Format, Kodierung und Darstellung festlegen tc[1].setFormat(f), .setCodecChain(c), .setRenderer(r)

Dateiformat bestimmen proc.setContentDescriptor(contenDescriptor)

Unterklasse von ContentDescriptor ist FileTypeDescriptor

Java Media Framework API

Aufnahme zeitbasierter Medien Klasse CaptureDeviceInfo

cdi = CaptureDeviceManager.getDevice(„deviceName“);

Processor erzeugen mit dynamischen Einstellungen und Manager.createProcessor(p)

proc.setSource(cdi_source);

proc.setContentDescriptor(contentDesc);

proc.realize();

Datei schreiben Datenquelle erzeugen op = processor.getDataOutput()

Zieldatei angeben ml = new MediaLoacator(„file://demo.wav“)

Datensenke kreieren Manager.createDataSink(op, ml)

Java Media Framework API

Aufbau und Einordnung des RTP Real-Time Transport Protocol (RTP)

Ende-zu-Ende Verbindung

Übertragung in Echtzeit

setzt meist auf UDP auf

Real-Time Control Protocol (RTCP) Identifizierung u. Überwachung der Datenströme

Quality-of-Service Funktionalität

Internet Protocol (IP)

UDP

Real-Time Transport Protocol (RTP)

Real-Time Control Protocol (RTCP)

Other Network Transport Protocols(TCP, ATM, ST-II, etc)

Real-Time Media Framework and Applications

Echtzeitfunktionalität des JMF API

Abbildung aus JMF API Guide von sun

Senden von Streaming-Media Übertragung mittels Processor und Sitzungen

DataSource, die zu übertragende Datei; Manager.createDataSource(url)

MediaLocator spezifiziert Empfänger rtp://192.168.0.1:49150/audio

DataSink, Repräsentator des Empfängers, Übertragung

Processor mit ProcessorModel nur erster erkannter Stream einer Datei kann übertragen werden

Manager.createRealizedProcessor(ProcessorModel pm)

Processor mit SessionManager Übertragung mehrerer Streams

sm.createSendStream(output, x); x: index des Streams oder mixed

Echtzeitfunktionalität des JMF API

Senden von Streaming-Media

Videodatei

Bild

Ton

TrackControl[]

tcBildtcBild

tcTontcTon

getTrackControls() setFormat()

setEnabled(true)

Echtzeitfunktionalität des JMF API

Processor

tcBildtcBild

tcTontcTon

Mixed RTPStream

tcBildtcBild

createSendStream(output, x)

x=0

x=1

tcBildtcBild

tcTontcTon

tcBildtcBild

tcTontcTon

realize() Single RTPStream

Empfangen von Streaming-Media Wiedergabe eines Streams

MediaLocator, analog zum Sender, rtp://192.168.0.1:49150/audio

Erzeugen des Players, Manager.createRealizedPlayer(ml)

Wiedergabe aller Streams mittels SessionManager

NewReceiveStreamEvent bei jedem eingehenden Stream

Erzeugen eines Players bei jedem Event

Echtzeitfunktionalität des JMF API

Abbildung aus JMF API Guide von sun

Anwendungen

Java Media Framework Abspielen von Audio und Video

Konvertierung/Kompression

Aufnahme von WAVE mit Mikrophon

Fazit und Quellen API Guide von sun: sehr gut, aber alt

Einleuchtende, intuitive Programmierung

JMF API Guide v. 2.0 von sun (1999)

Entwicklerbereich der IBM Website https://www6.software.ibm.com/developerworks/education/j-jmf/index.html

API Dokumentation