Von Open GL ES auf Android erstellte Aufnahmerahmen [geschlossen]

8

Ich nehme Bilder von der Kamera auf und render sie in Echtzeit über OpenGL ES 2.0. Jetzt möchte ich sie zusammen mit Audio in eine Filmdatei aufnehmen. Auf dem iPhone hatte ich AVAssetWriter, der sich um die Aufnahme kümmern würde und mir 30fps geben würde. Was sind meine Optionen auf Android? Ich habe die Suche versucht, konnte aber keine finden.

UPDATE: Für diejenigen, die sich fragen, was ich versuche zu tun, finden Sie diese App: Ссылка

Dies ist die einzige App, die ich gefunden habe, die 30FPS Video-Rendering / Aufnahme durchführen könnte. Mein Ziel ist es zu versuchen, herauszufinden, wie es gemacht wird.

    
0xSina 26.10.2012, 21:13
quelle

1 Antwort

4

Sobald Sie Frames von der Kamera aufgenommen und mit OpenGL gerendert haben, gehe ich davon aus, dass Sie diese Frames bereits im Speicher haben und Sie OpenGL nicht benötigen, um die gerenderten Bilder zurückzulesen.

Sie können FFmpeg oder libtheora Bibliotheken, um Ihre Audio- / Video-Streams in eine Datei zu verschachteln. Beide können für Android kompiliert werden und sind NDK-freundlich.

Es gibt viele Tutorials für beide Bibliotheken.

Im Fall von Theora können Sie Ihre Frames mit GLES 2 Shadern in YUV-Farben umwandeln.

P.S. Wenn Sie etwas von OpenGL ES zurücklesen müssen, verwenden Sie einfach glReadPixels() und fahren Sie mit diesen Videokodierungsbibliotheken fort.

    
Sergey K. 03.11.2012, 22:03
quelle

Tags und Links