Ich versuche, ein paar GPUImagePicture
s als Texturquellen zusammen mit einem Fragment-Shader zum Filtern eines Video abzuspielen.
Ich bin in der Lage, Standbilder auf diese Weise großartig zu verarbeiten, aber ich kann nicht herausfinden, was mir fehlt, um dies an einem GPUImageMovie
zu arbeiten. Ich würde mich über jede Hilfe freuen, die angeboten wird.
Es gibt eine Methode, mit der Sie dasselbe erreichen können
CVOpenGLESTextureCacheCreateTextureFromImage
ermöglicht einen gemeinsamen Puffer zwischen einer GL-Textur und einem Film. In diesem Core Video OpenGLES Texture Caches werden CVOpenGLESTextureRef Texturen zwischengespeichert und verwaltet. Diese Textur-Caches bieten Ihnen die Möglichkeit, Puffer mit verschiedenen Pixelformaten wie 420v oder BGRA direkt aus GLES zu lesen und zu schreiben.
%Vor%Diese Funktion erstellt entweder ein neues CVOpenGLESTextureRef-Texturobjekt, das dem CVImageBufferRef zugeordnet ist, oder gibt ein Cache-Objekt zurück. Diese Operation erstellt eine Live-Bindung zwischen dem Bildpuffer und dem zugrunde liegenden Texturobjekt.
Ich hoffe, dass Ihnen das dabei hilft, das zu schaffen, was erforderlich ist:)
Ich habe GPUImage
's Beispielcode ( SimpleVideoFileFilter
) versucht, um Ihre Ausgabe zu erreichen. Ich habe GPUImageFilterGroup
erstellt und Filter hinzugefügt. Um Bilder als Textur hinzuzufügen, habe ich den Code von GPUImageMissEtikateFilter
filter verwendet. Hier ist mein Code:
Ich hoffe, dies wird Ihnen helfen.
Nach der Initialisierung Ihres GPUImage:
%Vor%Sie müssen anrufen:
%Vor%, um das Bild effektiv zu laden und es der GPUImage-Pipeline zur Verfügung zu stellen.
Und machen Sie dasselbe für sourcePicture2
und sourcePicture3
.
Aktualisierung:
Was ich vor ein paar Jahren tun musste, als ich es mit Filmen und Bildern verwendete, war eine Benachrichtigung hinzuzufügen, wenn der Film geladen und spielbereit war (in GPUImageMovie.m, processAsset
method, bevor self.decodeIsAllowed = YES;
Nur wenn der Film fertig war, habe ich sein GPUImage-Pipeline-Ziel festgelegt.
Tags und Links objective-c ios gpuimage avplayer