¿Chroma-filtering video usando GPUImage?

Estoy intentando mostrar un archivo de video con transparencia dentro de mi aplicación usando una tecla de transparencia (RGB: 0x00FF00, o completamente verde) usando @ impresionante de BradLarsonGPUImage caja de herramientas Sin embargo, estoy experimentando algunas dificultades con elGPUImageChromaKeyFilter Filtro, y no entiendo muy bien por qué.

Mi archivo de video fuente está disponible en mi dropboxaquí (12 KB, 3 segundos de duración, fondo verde completo, solo un cuadrado en la pantalla),

Y utilicé el proyecto de muestra tituladoSimpleVideoFilter.

Este es el código que intenté usar (simplemente lo reemplacé-viewDidLoad):

NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"m4v"];
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];

filter = [[GPUImageChromaKeyFilter alloc] init];
[filter setColorToReplaceRed:0 green:1 blue:0];
[filter setEnabled:YES];

[movieFile addTarget:filter];

GPUImageView *filterView = (GPUImageView *)self.view;
[filter addTarget:filterView];

[movieFile startProcessing];

Según la documentación (que es escasa), estadebería Tiene el efecto de reemplazar todo el verde en el video. En su lugar, obtengo esto como una salida:

Lo que me dice que el video se está reproduciendo (y, por lo tanto, se está copiando en la aplicación), pero no parece estar haciendo ninguna codificación de croma. ¿Por qué sería esto? ¿Necesito configurar manualmente los valores y umbrales de suavizado? No debería, porque la fuente solo contiene dos colores (0x00FF00 y0x000000).

He probado esto en el dispositivo también, sin éxito. Casi todos los otros filtros que intento usar, comoGPUImageRGBFilter, GPUImageSepiaFilter, etc. PodríaGPUImageChromaKeyFilter solo estar roto?

Cualquier ayuda con esto sería apreciada, ya que en este punto estoy raspando la parte inferior del barril para la transparencia en un video.

Respuestas a la pregunta(2)

Su respuesta a la pregunta