Ich brauche eine einfache Videowiedergabe in Java.
Hier sind meine Anforderungen:
-
PRODUKTIONSQUALITÄT
-
Öffnen und Dekodieren von Videodateien, deren Video- und Audiocodecs von mir ausgewählt werden können. D.h. ich kann gut funktionierende Codecs auswählen.
-
Sie können spielen , Pause , seekToFrame OR seekToTime y stoppen Playback. Im Wesentlichen möchte ich in der Lage sein, Segmente einer einzelnen Videodatei auf nicht lineare Weise abzuspielen. Ich möchte zum Beispiel das Segment 20,3 Sekunden bis 25,6 Sekunden abspielen, eine Pause von 10 Sekunden einlegen und dann das Segment 340,3 Sekunden bis 350,5 Sekunden abspielen, usw.
-
Während der Wiedergabe müssen Video und Audio synchronisiert sein.
-
Das Video muss in einer Swing JComponent angezeigt werden.
-
Muss in einem kommerziellen Produkt verwendet werden können, ohne dass es Open Source sein muss (z.B. LGPL oder Comercial ist gut)
Meine Nachforschungen haben mich zu den folgenden Lösungen geführt:
- Java Media Framework + Fobs4JMF verwenden http://fobs.sourceforge.net/f4jmf_first.html
Ich habe einen schnellen Prototyp implementiert, und dieser scheint zu tun, was ich brauche. Ich kann ein Segment des Videos mit spielen:
player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();
Fobs4JMF scheint zwar zu funktionieren, aber ich habe das Gefühl, dass die Qualität des Codes schlecht ist und das Projekt nicht mehr aktiv ist. Kennt jemand Produkte, die Fobs4JMF verwenden?
- Schreiben Sie eine Flash-Anwendung, die ein Video abspielt, und verwenden Sie JFlashPlayer, um es in meine Java Swing-Anwendung zu bringen.
Im Gegensatz zu Java ist Flash hervorragend für die Wiedergabe von Videos geeignet. Ich könnte eine kleine Flash-Anwendung mit den Methoden schreiben:
open(String videoFile),
play(),
pause(),
seek(int duration),
stop()
Dann bringen Sie es in Java mit JFlashPlayer, der Flash-Funktionen von Java aus aufrufen kann.
Was mir an dieser Lösung gefällt, ist, dass die Videowiedergabe in Flash sehr stabil sein sollte. Hat jemand JFlashPlayer zur Wiedergabe von Videos in Java verwendet?
- Schreiben eines einfachen Media Players auf Xuggler
Xuggler ist ein FFMpeg-Wrapper für Java, der ein recht aktives und hochwertiges Projekt zu sein scheint. Allerdings ist die Implementierung der in den Anforderungen beschriebenen einfachen Videowiedergabe nicht trivial (insbesondere Seeking), aber ein Teil der Arbeit wurde bereits im MediaTools MediaViewer geleistet, der die Basis wäre, auf der man aufbauen könnte.
- FMJ verwenden
Ich habe versucht, FMJ zum Laufen zu bringen, hatte aber bisher keinen Erfolg.
Ich würde mich über Ihre Meinung zu meinem Problem freuen.