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

Java Media Framework API

Jan 05, 2016

Download

Documents

laasya

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Media Framework API

Java Media Framework API

Theoretischer Hintergrund und Anwendungenvon

Daniel Birk

Page 2: Java Media Framework API

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

Page 3: Java Media Framework API

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

Page 4: 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

Page 5: Java Media Framework API

Konfigurationsphasen von

Player und Processor

Abbildung aus JMF API Guide von sun

Java Media Framework API

Page 6: 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

Page 7: 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

Page 8: 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

Page 9: Java Media Framework API

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

Page 10: Java Media Framework 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

Page 11: Java Media Framework API

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

Page 12: Java Media Framework API

Anwendungen

Java Media Framework Abspielen von Audio und Video

Konvertierung/Kompression

Aufnahme von WAVE mit Mikrophon

Page 13: Java Media Framework API

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