Java - Xuggle - Die beste Methode, um einen Frame zu erhalten

9

Ich arbeite seit einer Woche mit xuggle und habe eine Methode geschrieben, um einen zu bekommen Frame durch ein Video, aber wenn Video lang ist, benötigt diese Methode zu viel Zeit:

%Vor%

Weißt du einen besseren Weg, dies zu tun?

    
Mark Design 31.05.2011, 08:35
quelle

2 Antworten

2

Nun, nachdem ich nur Ihren Code gelesen habe, sehe ich einige Optimierungen, die gemacht werden können.

Wenn Sie die gesamte Datei einmal durchgelesen haben, erstellen Sie einen Index für byteoffsets und Sekunden. Dann kann die Funktion den Byteoffset von den angegebenen Sekunden nachsehen und Sie können das Video an diesem Offset dekodieren und den Rest Ihres Codes machen.

Eine andere Möglichkeit ist, Ihre Methode zu verwenden, indem Sie jedes Mal die gesamte Datei durchlesen, aber anstatt den ganzen resampler, newPic und den Java-Bildkonverter-Code aufzurufen, prüfen Sie, ob die Sekunden zuerst übereinstimmen. Wenn dies der Fall ist, konvertieren Sie das Bild in ein neues Bild, das angezeigt werden soll.

Also

%Vor%     
Michael 16.11.2011 18:01
quelle
2

Verwenden Sie seekKeyFrame -Option. Sie können diese Funktion verwenden, um zu jeder Zeit in der Videodatei zu suchen (die Zeit ist in Millisekunden).

%Vor%

Von dort aus verwenden Sie Ihre klassische while(container.readNextPacket(packet) >= 0) -Methode zum Abrufen der Bilder in Dateien.

Hinweis: Es wird nicht versucht, die Zeit zu bestimmen, sondern die ungefähren Werte, so dass Sie immer noch die Pakete durchgehen müssen (aber natürlich viel weniger als vorher).

    
svenkapudija 09.03.2014 12:27
quelle

Tags und Links