Хроматическая фильтрация видео с использованием GPUImage?

Я пытаюсь отобразить видеофайл с прозрачностью внутри моего приложения с помощью ключа прозрачности (RGB: 0x00FF00или полностью зеленым), используя @BradLarson 'с удивительнымGPUImage Инструментарий. Тем не менее, я испытываю некоторые трудности сGPUImageChromaKeyFilter фильтр, и я неЯ не совсем понимаю, почему.

Мой исходный видеофайл доступен в моем DropboxВот (12 КБ, 3 секунды, зеленый фон, квадрат на экране),

И я использовал пример проекта под названием.SimpleVideoFilter

Это код, который я пытался использовать (я просто заменил-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];

Согласно документации (которая является редкой), этодолжен иметь эффект замены всего зеленого в видео. Вместо этого я получаю это в качестве вывода:

Что говорит мне, что видео воспроизводится (и, следовательно,копирование в приложение), но это неПохоже, что делает какой-либо хроматический ключ. С чего бы это? Нужно ли вручную устанавливать значения сглаживания и пороги? Я не должент, потому что источник содержит только два цвета (0x00FF00 а также0x000000).

Я проверил это на устройстве, но безрезультатно. Почти все другие фильтры, которые я пытаюсь использовать, например,GPUImageRGBFilterGPUImageSepiaFilterи т. д. МоглиGPUImageChromaKeyFilter просто сломаться?

Любая помощь с этим будет оценена, так как на данный момент ям соскоб нижней части ствола для прозрачности на видео.

Ответы на вопрос(2)

Ваш ответ на вопрос