1 / 13

Java Media Framework API

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

laasya
Download Presentation

Java Media Framework API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Media Framework API Theoretischer Hintergrund und Anwendungen von Daniel Birk

  2. 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

  3. Architektur des JMF API Java Media Framework API • Daten importieren, ver- bearbeiten, exportieren • Zeit-, Event- und Datenmodell • 3 Manager Klassen Abbildung aus JMF API Guide von sun

  4. Wiedergabe zeitbasierter Medien Java Media Framework API • 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

  5. Konfigurationsphasen von Player und Processor Java Media Framework API Abbildung aus JMF API Guide von sun

  6. Bearbeitung zeitbasierter Medien Java Media Framework API • 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

  7. Aufnahme zeitbasierter Medien Java Media Framework API • 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)

  8. Real-Time Media Framework and Applications Real-Time Control Protocol (RTCP) Real-Time Transport Protocol (RTP) Other Network Transport Protocols (TCP, ATM, ST-II, etc) UDP Internet Protocol (IP) Aufbau und Einordnung des RTP Echtzeitfunktionalität des JMF API • 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 Abbildung aus JMF API Guide von sun

  9. Senden von Streaming-Media Echtzeitfunktionalität des JMF API • Ü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

  10. Senden von Streaming-Media Echtzeitfunktionalität des JMF API Videodatei TrackControl[] tcBild Bild tcBild setFormat() getTrackControls() tcTon tcTon setEnabled(true) Ton x=1 tcBild tcBild realize() Single RTPStream createSendStream(output, x) tcTon x=0 tcTon tcBild Processor Mixed RTPStream

  11. Empfangen von Streaming-Media Echtzeitfunktionalität des JMF API • 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 Abbildung aus JMF API Guide von sun

  12. Anwendungen • Java Media Framework • Abspielen von Audio und Video • Konvertierung/Kompression • Aufnahme von WAVE mit Mikrophon

  13. 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

More Related