3 JMF Fragen

hi

ich bin beauftragt worden ein steuerungsprogramm für ein präsentationssystems zu entwickeln
da das ganze in einer sprache geschrieben werden soll, die halbwegs plattformunabhängig sein soll, bin ich auf java gekommen und hab da auch das JMF gefunden. erste tests sind vielversprechend.
bei internetrecherchen habe ich http://www.medien.ifi.lmu.de/lehre/ss03/mt/VortragJMF.pdf gefunden was mir einen ersten einblick gegeben hat.

das geplante system hat 2-3 kameras und 2 mikrofone

jetzt hab ichn paar allgemeine fragen, ob das überhaupt möglich ist und wenn ja, wie (grundlegendes):

1.) Angenommen ich habe 2 (merged Data source) datenströme (cam1+mic1 sowie cam2+mic2). ist es möglich wenn ich jetzt strom 1 aufzeichne, dass ich die aufzeichnung auf strom 2 umschalten kann (und wieder zurück)? also quasi zwischen den cams "zappen" und das dann aufzeichnen

2.) Angenommen ich habe 2 (merged Data source) datenströme (cam1+mic1 sowie cam2+mic2). Kann ich die beiden ströme dann zusammen-mergen, sodass ich links das bild von cam1 habe und rechts das von cam2 (und audiospuren zusammenmischen)?

3.) Bild-in-Bild-Funktion. Kann ich während der aufzeichnung (wenn cam3 eingeschaltet wird) irgendwie dessen bild zur laufenden aufnahme hinzuschalten (z.b. rechts oben in der ecke)?

edit:
gibt noch ne 4.) Wie clone ich eine DataSource, damit ich sie gleichzeitig abspielen und aufzeichnen kann? das hat bisher noch nicht funktioniert...

Vielen Dank schonmal im Vorraus
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Leider nicht so "spezifisch" wie du es dir wünschen würdest: Das JMF ist sehr allgemein und sehr mächtig, d.h. man kann davon ausgehen, dass das geht. Allerdings hatte ich bei meinen bisherigen Experimenten das Gefühl, dass die Einarbeitung ins JMF schon sehr aufwändig sein kann. Für das (wenige) was ich bisher gemacht hatte, fand ich es am einfachsten, ein Beispiel von JMF 2.1.1 Solutions zu nehmen, und das so weit anzupassen, dass es das gewünschte macht. Wenn man vieeel Zeit hat, kann man aber auch die Spezifikation und sämtliche Tutorials lesen, so dass man auswendig weiß, welches Format die PullBufferStreams der PullBufferDataSource haben müssen, die man von seinem ProcessorModel zurückgibt :rtfm: :eek: Ein Einstiegspunkt KÖNNTE sowas sein wie Merging Tracks from Multiple Inputs . Wenn man das nachvollziehen kann, kann man vielleicht auch das angesprochene "Umschalten" zwischen den verschiedenen Quellen hinkriegen. Allerdings habe ich bisher keine Möglichkeit gefunden, an den Quellcode des JMF ranzukommen: Was so eine magische Zeile wie [c]Manager.createMergingDataSource(dataOutputs)[/c] nun intern genau macht, wäre für dein Vorhaben sicher interessant....
 
danke

und wie sieht das mit bluetooth aus? wenn ich ein mikrofon über bluetooth betreibe, ist das JMF dazu in der lage das ding zu erkennen? ich kanns hier leider nicht testen, da ich selbst keine bluetooth geräte habe


und dann nochmal was generelles: gibts brauchbare alternativen zu JMF (falls sich das alles nicht realisieren lässt)? auch andere sprachen wären denkbar
eine alternative müsste folgende punkte erfüllen:
- unterstützung von bluetooth
- die realisierung der o.g. fragen (wenn auch nicht mit nem einzeiler, aber theoretisch möglich)
- möglichst plattformunabhängig
- stabil
- verarbeitung mehrerer ströme parallel (input: 4, output 1-2)
 

Marco13

Top Contributor
Wie gesagt sind meine "Kenntnisse" (und Erfahrungen) mit JMF eher begrenzt :oops: Und wenn du nach "Alternativen" fragst, meinst du wahrscheinlich auch nicht Home - FMJ :D Die Anforderung der Plattformunabhängigkeit schränkt die Möglichkeiten ja auch schon ziemlich ein...
Zu Bluetooth kann ich nur sagen, dass es natürlich grundsätzlich möglich ist, Bluetooth-Geräte mit Java anzuzapfen, und es demnach auch möglich ist, diese als Datenquellen zu verwenden. Eine kurze Suche liefert z.B. Java Media Framework - create Datasource from bytearray for JMF player wo auch nochmal darauf hingewiesen wird, dass man bei JMF entweder "vieles" selbst schreiben muss und dazu auf den Beispielen aufbauen kann - und eines dieser Beispiele, das anscheinend für Bluetooth "umgebaut" werden könnte, ist auch dort verlinkt. Die Grundmessage ist eben: Wenn man irgendwelche Daten hat, muss man die "nur" geeignet in DataSources einwickeln, mit PullBufferStreams anbieten und durch Processors jagen, dann kann man sie auch mit JMF nutzen. Aber das kann eben einiges an Arbeit bedeuten - besonders bei so speziellen und diffizilen Anwendungsfällen, wie du sie beschrieben hast, und die eben viel mehr sind als 'mal kurz ein Video abspielen oder generieren'.
Eigentlich liegt es nahe, eine Bibliothek auf dem JMF aufzusetzen, die einem das ganze etwas einfacher macht, aber ob/was es in der Richtung schon gibt, müsste ich auch erst erwebsuchen :rtfm:
 
S

Sunny J

Gast
Hey,

ich kann in Sachen JMF immer wieder nur das Buch ... Medienverarbeitung in Java ... Audio und Video mit Java Media Framework & Mobile Media API ... von Horst Eidenberger empfehlen. Ich empfehle die eBook- Variante aus meinem Link unten, ist billiger und man kann den Quelltext aus dem Bucher besser ins eclipse oder netbeans kopieren.

Hat mir schon in so mancher Situation weitergeholfen. Und ein bisschen Selbststudium bei einem so komplexen Thema kann auch nicht schaden.

Schauts euch einfach mal an:
intermediport - günstige eBooks

Gruß
 
hi

ja, mittlerweile hab ich das buch auch gefunden und mir in der bibliothek ausgeliehen. war zwar bisher noch nciht sehr hilfreich, aber muss mich mal genauer mit befassen

das bluetooth-problem hab ich auch mittlerweile gelöst:
es war gar nicht nötig das bluetooth-gerät anzuzapfen, weil es nach dem pairen als "mikrofon" in windows registriert ist und dessen daten dann über directsound laufen, was ja im jmf als datasource zur verfügung steht. mehr noch: ich habe es geschafft die ausführlichere javasound-api als jmf-datasource zu wrappen - jetzt kann ich von mehreren mikrofonen gleichzeitig aufnehmen und nicht nur vom directsound-standardgerät

das mit dem datenströmen zusammenlegen funktioniert irgendwie mit einem multiplexer, nur ich hab noch nicht rausgefunden wie genau. das problem im genannten jmf-buch ist: dort wird zwar ausführlich beschrieben wie man einen multiplexer (und ein audioformat) selbst kreieren kann, aber ich hab noch keine beschreibung gefunden wie man so einen multiplexer dann benutzen muss :lol:
 
S

Sunny J

Gast
Ich bin mir nicht sicher, ob du hier deine fragen beantwortet bekommst, aber hier gibt es einige nützliche Community-Informationen:

www.jmfapi.org

habe jetzt aber nicht direkt nach deinem Problem gesucht

Gruß
 
also ich find auf der seite jetzt keine nützlichen informationen... wo denn genau?

aktueller stand:
die hardware ist gekürzt auf 1 kamera und 1 (bis 2) mikrofone
passt ganz gut, weil das jmf nur mit einer kamera arbeiten kann und es nicht unnütz kompliziert sein muss. bild-in-bild-funktion ist auch verworfen

im endeffekt muss ich nur ein videostrom und 1-2 audioströme so zusammenmischen, das am ende eine videodatei rauskommt. aber selbst das scheint nicht trivial. das jmf macht igendwie nur probleme oder ich bin zu doof es richtig einzusetzen. im buch von horst eidenberger stehen zwar die grundlagen der medienverarbeitung und das grundsätzliche konzept des JMF (was ganz interessant ist zu wissen ^^), aber die praxis sieht mal wieder anders aus :toll:
Ich scheitere irgendwie selbst an den leichtesten aufgaben.

habe jetzt mal folgendes programmiert (aufnahme von kamera und mikro):
Java:
DataSource sound = Manager.createDataSource(new MediaLocator("dsound://"));
DataSource video = Manager.createDataSource(new MediaLocator("vfw://0"));
sound.connect();
video.connect();
sound.start();
video.start();
			
DataSource merged = Manager.createMergingDataSource(new DataSource[]{sound,video});
Processor proc = Manager.createProcessor(merged); 
proc.configure();
Thread.sleep(5000); //bad solution, but just for testing
proc.setContentDescriptor(new FileTypeDescriptor(FileTypeDescriptor.QUICKTIME));
proc.realize();
Thread.sleep(3000);
			
DataSink s = Manager.createDataSink(proc.getDataOutput(), new MediaLocator("file://E:/out/test.mov"));
s.open();
s.start();
merged.start();
proc.start();
			
Thread.sleep(15000); //record 15 seconds 
proc.stop();
proc.close();
s.stop();
s.close();

aber es funktioniert nicht. keine exceptions, aber er schreibt die daten nicht in die datei, sondern nur den header. meine vermutung ist, das irgendwas am format nicht stimmt.
weiß jemand was ich falsch mache?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Fragen zu HashMaps Spiele- und Multimedia-Programmierung 22
B Fragen zu "Physics-Body-Editor"? Spiele- und Multimedia-Programmierung 0
J Fragen zur Gui-Aktualisierung Spiele- und Multimedia-Programmierung 2
A Langtons Ameise - Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 1
D Ein paar Fragen... Spiele- und Multimedia-Programmierung 5
H LWJGL: Fragen zum Verständnis Spiele- und Multimedia-Programmierung 7
Helgon Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 17
A Klickgame ala "Harveys neue Augen" oder "Edna bricht aus" in Java programmieren... Fragen zu Kleinig Spiele- und Multimedia-Programmierung 8
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
G Minecraft Minecraft Fragen Spiele- und Multimedia-Programmierung 1
A Fragen zu MMO Spiele- und Multimedia-Programmierung 6
N Ein paar fragen zu JOGL Spiele- und Multimedia-Programmierung 4
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
M Allgemeine Fragen zu JOGL2 / OpenGL3.2 Spiele- und Multimedia-Programmierung 36
M Fragen wegen Spieleprogrammierung Spiele- und Multimedia-Programmierung 17
M Fragen zu meinem Pong-Clone Spiele- und Multimedia-Programmierung 6
S glTexSubImage2D()-Fragen(Zerstörbares Terrain, OpenGL) Spiele- und Multimedia-Programmierung 3
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
D Zwei Fragen (Exponential Fog und Schein-nach-außen-Effekt) Spiele- und Multimedia-Programmierung 6
H Einstieg erfolgreich ;), nun nur noch paar Fragen^^ Spiele- und Multimedia-Programmierung 13
V Fragen zum PositionPathInterpolator und RotationInterpolator Spiele- und Multimedia-Programmierung 2
N 4 Gewinnt fertig (Kritik, Fragen etc. erwünscht) Spiele- und Multimedia-Programmierung 29
J 3d Programmierung, Fragen: Spiele- und Multimedia-Programmierung 14
T Größeres Spiele Projekt - einige Fragen zur Umsetzung Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben