Ich habe einige Probleme mit der Videoverarbeitung. Ich verwende Surface with Texture, um Videos mit MediaCodec und MediaMuxer zu verarbeiten (dekodieren, zuschneiden, mit schlechterer Qualität kodieren).
Und auf Mittelstufe, die beschneidet, habe ich Probleme. Im Grunde genommen möchte ich eine kleinere Dimension des Videos nehmen und dann basierend auf dieser Seite Offsets für eine größere Seite definieren und sie ausschneiden. Dann sollte das Ergebnis korrekt in 640x640 Quadrat skaliert werden. Ich habe ziemlich viel Zeit gesucht, aber alle Informationen, die ich gefunden habe, deuten darauf hin, dass Open GL das Bild selbst skalieren sollte. Ja, ich sollte zugeben, dass es etwas Maßstab macht, aber das Ergebnis sieht sehr hässlich aus, es scheint ziemlich "komprimiert" zu sein.
So, jetzt die Frage an sich. Kann mir jemand eine Erklärung oder vielleicht sogar Code-Snipet liefern, der die gewünschten Funktionen in Open GL ES erfüllt?
Ich habe bereits versucht, Viewport Gedanken anzupassen.Android, Open GL ES, Crop und Skala Textur
GLES20.glViewport(0, 0, 640, 640)
UPDATE
Idee, dass Isogen74 haben mehr weniger vorgeschlagen für mich gearbeitet. Es ist immer noch ziemlich weit gestreckt, aber es ist besser als nichts.
Hier finden Sie den aktualisierten Code: OpenGL setup
Nun, diese Absenkung kann tatsächlich sehr groß sein. Original-Video kann in jeder Größe sein, ich habe versucht, in maximal verfügbaren Auflösung, die 1920x1080 war. Danke für die Hilfe, ich werde definitiv die Mipmap-Optionen ausprobieren (völlig vergessen) :) Außerdem würde ich lieber einige Bildverarbeitungsbibliotheken von Drittanbietern vermeiden, da dies die Verarbeitungszeit erheblich erhöhen wird. Mein Chef braucht Videoprozessing so schnell wie es überhaupt möglich ist und ich konnte Videoverarbeitung für 23 Sekunden bereitstellen, was in Ordnung ist und ich möchte es nicht erhöhen. –