Verwenden von CIFilter mit AVFoundation (iOS)

Ich versuche, Filter auf eine mit AVFoundation unter iOS erstellte Videokomposition anzuwenden (Filter können z. B. Unschärfe, Pixel, Sepia usw. sein). Ich muss beide Effekte in Echtzeit anwenden und das zusammengesetzte Video auf Festplatte rendern können, aber ich bin froh, mit dem einen oder anderen zu beginnen.

Leider kann ich das nicht herausfinden. Folgendes kann ich tun:

Ich kann der UIView, die den Film abspielt, eine Ebene für die Animation hinzufügen, aber mir ist nicht klar, ob ich das eingehende Videobild auf diese Weise verarbeiten kann.Ich kann dem AVPlayerLayer ein Array von CIFiltern hinzufügen, aber es stellt sich heraus, dass diese in iOS ignoriert werden (es funktioniert nur unter Mac OS X).Ich kann ein AVVideoCompositionCoreAnimationTool zur AVVideoCompopsition hinzufügen, bin mir jedoch nicht sicher, ob dies die Videoverarbeitung (und nicht die Animation) bewirken würde, und stürzt mit der Meldung ab, ohnehin nicht für die Echtzeitwiedergabe ausgelegt zu sein. Ich glaube, dies ist die Lösung für das Rendern von Animationen beim Rendern auf Festplatte.

Andere Apps tun dies (glaube ich), also vermisse ich vermutlich etwas Offensichtliches.

Hinweis: Ich habe mir GPUImage angesehen und würde es gerne verwenden, aber es funktioniert nur nicht gut mit Filmen, insbesondere mit Filmen mit Audio. Siehe zum Beispiel:

GPUImage filtert zur Laufzeit in AVMutableCompositionhttps://github.com/BradLarson/GPUImage/issues/1339

Antworten auf die Frage(2)

Ihre Antwort auf die Frage