Vídeo Chroma-Filtering usando GPUImage?

Eu estou tentando exibir um arquivo de vídeo com transparência dentro do meu aplicativo usando uma chave de transparência (RGB: 0x00FF00ou totalmente verde) usando o incrível @ BradLarsonGPUImage kit de ferramentas. No entanto, estou tendo algumas dificuldades com oGPUImageChromaKeyFilter filtro, e eu não entendo muito bem o porquê.

Meu arquivo de vídeo de origem está disponível na minha caixa de depósitoAqui (12 KB, 3 segundos de duração, fundo verde completo, apenas um quadrado na tela),

E eu usei o projeto de amostra intituladoSimpleVideoFilter.

Este é o código que eu tentei usar (eu simplesmente substitui-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];

De acordo com a documentação (que é esparsa), estadevemos tem o efeito de substituir todo o verde no vídeo. Em vez disso, eu entendo isso como uma saída:

O que me diz que o vídeo está sendo reproduzido (e, portanto, está copiando para o aplicativo), mas não parece estar fazendo nenhum chroma key. Por que isso seria? Preciso definir manualmente os valores e limites de suavização? Eu não deveria, porque a fonte contém apenas duas cores (0x00FF00 e0x000000).

Eu testei isso no dispositivo também, sem sucesso. Quase todos os outros filtros que eu tento usar funcionam, comoGPUImageRGBFilter, GPUImageSepiaFilteretc. PoderiaGPUImageChromaKeyFilter ser apenas quebrado?

Qualquer ajuda com isso seria apreciada, já que neste momento eu estou raspando o fundo do barril para transparência em um vídeo.

questionAnswers(2)

yourAnswerToTheQuestion