VideoPlayer: Xuggler seekkeyframe extrem schlechte Performance..

Kababär

Top Contributor
Hi,

ich habe mir einen kleinen Videoplayer gebaut und da soll es möglich sein, die aktuelle Position zu verändern, d.h. nach vorne oder rückwärts springen. Xuggler bietet dafür eine Option:
Code:
this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, position, max,
                IContainer.SEEK_FLAG_ANY);

Jedoch gibt es folgendes Problem: Die Suche dauert genauso lange wie die Differenz. Das heißt will ich 20 Sekunden nach vorne springen, dauert es 20 Sekunden. Das ist bei Videos, die 60 Minuten lang sind, natürlich seeeeehr unschön.

Hat jemand Erfahrung mit Xuggler gesammelt und weiß, wie ich dieses Problem lösen kann?
Leider bin ich durch Google nicht schlauer geworden.
 

Kababär

Top Contributor
Ich hab das Problem nun ganz anders gelöst:
Unter der Haube verwende ich den JavaFX MediaPlayer und kreiere Snapshots davon, welche ich dann in einer ImageView anzeige. Die Konsequenz davon ist eine etwas schlechtere Performance, aber dafür brauche ich mich nicht um das Handlen des Videos (Laden, Playback, Schließen) zu kümmern und habe trotzdem die Möglichkeit, das aktuelle Bild zu verändern, bevor es angezeigt wird.
 

windl

Bekanntes Mitglied
Hi Kababär - deine Lösung klingt super!
Hast Du mal ausprobiert ob das auf der Raspberry auch läuft?
Wärst Du so nett und würdest mir Deinen Code zur Verfügung stellen?
Ich hätte da wirklich hohes Interesse daran.

Danke
Uwe
 

Kababär

Top Contributor
Hi,

ne ich besitze keinen Raspberry. Den Code kann ich dir so leider nicht geben, aber ich kann dir ein paar Links schicken, die dir helfen könnten:
JavaFX MediaPlayer

Dann kannst du mit dem MediaPlayer so ein Snapshot erstellen:
Code:
WritableImage wi = new WritableImage(1000, 1000);
                video.snapshot(null, wi);
Wobei video deine MediaView ist.

Viel erfolg :)
 

Oben