Bitte um Kurzinfo bez. JMF (ja, war bei Forumssuche/google)

Status
Nicht offen für weitere Antworten.

JürgenS

Mitglied
Hallo zusammen,

könnte mir jemand mit etwas mehr Erfahrung mit JMF als ich (das geht leicht 🙂 ) eine einfach klingende Frage beantworten, auf die ich seltsamerweise noch keine befriedigende Antwort fand?
Ich bin am Evaluieren ob Java mit JMF das richtige Werkzeug für mich ist oder nicht. Deshalb will ich vorab ein paar Dinge abgeklärt wissen, bevor ich mich da reinfräse.

Umgebung: Windows XP, Java egal welche Version, JMF, anderes?
Die Aufgaben:

1) ich möchte eine Mpeg-2 Datei via den installierten Codec einlesen (streamartig, nicht alles in den Speicher) sodaß ich in Java Zugriff auf vollständig rekonstruierte Bilder habe (zur Not auch nur die I-Frames).

2) ich möchte Teildaten dieser Datei als neue (abspielbare) Dateien wieder anlegen. Spielt keine Rolle ob mit dem selben Codec oder über einen anderen.

Die Frage:
Ist JMF dafür geeignet?

Ich habe mich über die Doku mit JMF ein wenig befasst und im Web recherchiert. Ich weiß zumindest, daß JMF offenbar kein MPEG-2 kann, was aber nach meiner Ansicht egal sein sollte, wenn ich einen im System installierten Codec verwenden kann. Was ich nicht weiß ist, ob man mit JMF mit einem solchen MPEG-2 Codec so weit kommunizieren kann, daß man die einzelnen Frames als Bilder unter Kontrolle bekommt.-
Ebenso wäre ein/mehrere Codecs zum Schreiben verfügbar. Wenn das Ganze ohne Umcodierung geht ist es noch besser (lossless aus der Quelldatei schneiden und als neuen Film ablegen).
Es gibt allerhand Tools, die Filme schneiden, jedoch brauche ich programmatische Kontrolle. Es ist keine menschliche Interaktion möglich/gewünscht

Ich habe jede Menge Code und Diskussionen gefunden, bei denen es um das Abspielen geht. Ich brauche aber die Decodierung via Codec zum Bild, weniger einen über Java ferngesteuerten Player. Anzeigen ist kein Thema in diesem Fall.

Ich erwarte hier nun keine fertige Lösung oder Code. Mit ein paar Hinweisen, Wenns und Abers ist mir schon sehr geholfen. Dann weiß ich, ob es Sinn mach hier Zeit zu investieren.

Vielen Dank für jeglichen Tip!
beste Grüsse,
Jürgen
 
Um die Frage (Ob das JMF das geeignete Werkzeug ist) mal auf Meta-Ebene zu beantworten: NEIN. Das macht man mit irgendeinem Video-Bearbeitungsprogramm, das man irgendwo downloaden kann. (VirtualDUB - kostenlos und kann fast alles). Und wenn du es selbst schreiben willst: Ich mir kaum vorstellen, dass es für C++ oder andere Sprachen so ein mächtiges und gut dokumentiertes Framework für Videoverarbeitung gibt - aber wissen tu' ich das nicht, hab' nämlich noch nicht nach sowas gesucht :wink:

Meine Efahrungen mit dem JMF sind... ausbaufähig :wink: (SEHR ausbaufähig :wink: ), daher ist das ziemlich unfundiert (aber besser als nichts) : Theoretisch geht das vermutlich mit dem JMF. Ob man es hinbekommt, ist eine andere Frage. Du hast wahrscheinlich schon gesehen, dass das JMF sehr mächtig ist, und wohl auch einiges an Einarbeitungszeit erfordert. Insbesondere das freie Auswählen des Codecs könnte schwierig werden... Zumindest hatte ich mal versucht, das "JpegImagesToMovie"
http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JpegImagesToMovie.html
so umzuwandeln, dass es etwas anderes rausschreibt, als MOV (Quicktime), aber das ist mir nicht gelungen, obwohl sowas ja eigentlich mit SEHR wenigen Änderungen erledigt sein sollte - und WENN dann mal irgendwas NICHT funktioniert, schaut man mit dem Ofenrohr ins Gebirge, und hat kaum eine Möglichkeit, rauszufinden, ob es nun am Betriebssystem, der JVM, dem Codec oder dem eigenen Code liegt... (was aber vermutlich bei allen anderen Sprachen-Frameworks genauso (oder noch schlimmer) ist)

Aber du kannst ja mal einen Blick auf
http://java.sun.com/products/java-media/jmf/2.1.1/solutions/
werfen, und schauen, ob du dir da ein paar "Building Blocks" rausziehen kannst, die in bezug auf dein Vorhaben Erfolg versprechend aussehen...
 
Hallo Marco,

danke für Deine Antwort. VirtualDub-MP2 habe ich hier, jedoch importiert dieses erst mal die ganze Datei, bevor noch irgendetwas losgehen kann. Bei >20GB ist das gelinde gesagt ... unhandlich. Ich brauche eine Streaming-Lösung. Evtl. kann man das noch mit den File-Capture-Filter im Capture Modus machen. Jedoch wäre eine eigene Lösung besser.
Dazu kommt, daß ich Java kann und C++ nicht (und ich es auch hasse). :?
Die Geschichte mit dem Ofenrohr im Gebirge habe ich schon geahnt, als ich durch die Doku geschnüffelt habe....

Die Building-Blocks sehe ich mir mal an.

Danke und Gruss,
Jürgen
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben