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 Bearbeiten/Processing zeitbasierter Medien Aufnehmen/Capturing zeitbasierter Medien Echtzeitfunktionalität des JMF API Aufbau und Einordnung des RTP Senden von Streaming-Media Empfangen von Streaming-Media Anwendungen Java Media Framework API Architektur des JMF API Datei lesen, Aufnahmequelle, Netzwerk Konvertierung, De- Kompression, Effekte, Filter Datei schreiben, Bildschirm, Netzwerk Abbildung aus JMF API Guide von sun Java Media Framework API Wiedergabe zeitbasierter Medien Klasse Player Events entsprechend Status des Players player = Manager.createPlayer(p), .createRealizedPlayer(p) Wichtig: RealizeCompleteEvent Kontroll- und Stueerelemente 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 Bearbeiten zeitbasierter Medien Klasse Processor Alle Tracks einer Datei proc.getTrackContols() Format, Kodierung und Darstellung festlegen proc = Manager.createProcessor(p) tc.setFormat(f), tc.setCodecChain(c), tc.setRenderer(r) Dateiformat bestimmen proc.setContentDescriptor(contenDescriptor) Unterklasse von ContentDescriptor ist FileTypeDescriptor Java Media Framework API Aufnahme zeitbasierter Medien Klasse CaptureDeviceInfo CaptureDeviceManager.getDevice(„deviceName“) Processor erzeugen mit ProcessorModel und Manager.createdRealizedProcessor(pm) mit dynamischen Einstellungen und Manager.createProcessor(p) Datei schreiben Datenquelle erzeugen op = processor.getDataOutput() Zieldatei angeben ml = new MediaLoacator(„file://demo.wav“) Datensenke kreieren Manager.createDataSink(op, ml) Echtzeitfunktionalität des JMF API Aufbau und Einordnung des RTP Real-Time Transport Protocol Echtzeitfunktionalität – Performance statt Zuverlässigkeit Setzt meist auf UDP auf 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) Abbildung aus JMF API Guide von sun Echtzeitfunktionalität des JMF API Senden von Streaming-Media Videodatei Ton TrackControl[] getTrackControls() tcBild tcTon Bild setFormat() setEnabled(true) tcBild tcTon x=1 tcBild tcBild realize() tcTon createSendStream(output, x) Single RTPStream x=0 tcTon tcBild Processor Mixed RTPStream