Ich arbeite an einem iOS-Projekt, das AV-Out verwendet, um Inhalte in einem 1280x720-Fenster auf einem zweiten Bildschirm anzuzeigen.GPUImage Video mit Transparenz über UIView
Ich habe eine MPMoviePlayerController
's Ansicht als Hintergrund und darüber verschiedene andere Elemente wie UIImages
und UILabels
. Der Hintergrundfilm wird in einer Schleife abgespielt.
Jetzt möchte ich die gesamte Ansicht einschließlich aller sichtbaren Elemente mit einer anderen Vollbild-Animation überlagern, die transparent ist, so dass nur Teile der darunterliegenden Ansicht sichtbar sind.
Ich versuchte zuerst eine PNG-Animation mit UIImageView
. Ich war überrascht zu finden, dass tatsächlich auf iPhone5 funktioniert, aber natürlich sind die PNGs so groß, dass dies viel zu viel Ram verwendet und es stürzt auf alles unter iPhone4s. Also ich brauche einen anderen Weg.
Ich habe herausgefunden, wie man einen zweiten Film gleichzeitig mit AVFoundation spielt. So weit, so gut. Jetzt kann ich das Overlay-Video abspielen, aber natürlich ist es noch nicht transparent.
Ich habe auch gelernt, dass mit der GPUImage
Bibliothek kann ich GPUImageChromaKeyBlendFilter
verwenden, um eine Farbe aus einem Video zu filtern, um es transparent zu machen und dann mit einem anderen Video zu kombinieren.
Was ich noch nicht verstehe, ist der beste Weg, es in meinem Fall zu implementieren, um das Ergebnis zu erhalten, das ich will.
Kann ich die gesamte Ansichtshierarchie unter dem oberen Video als erste Eingabe für das GPUImageChromaKeyBlendFilter
und ein Greenscreen-Video als zweite Eingabe verwenden und das Ergebnis live in 720p anzeigen? Wie würde ich das tun?
Oder wäre es besser, GPUImageChromaKeyFilter
zu verwenden und einfach das Greenscreen-Video zu filtern und es in einer Ansicht über allen anderen Ansichten abzuspielen? Wäre der Hintergrund dieses Videos dann transparent?
Danke für Ihre Hilfe!