我正在嘗試使用透明鍵(RGB: 0x00FF00
或全綠色)在我的應用程序內使用@ BradLarson的真棒GPUImage工具包顯示透明視頻文件。不過,我在使用GPUImageChromaKeyFilter
過濾器時遇到了一些困難,我不太明白爲什麼。使用GPUImage色度過濾視頻?
我的源視頻文件可以在我的Dropbox here(12 KB 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
)。
我已經在設備上測試過了,無濟於事。幾乎所有其他我嘗試使用的工作篩選器,如GPUImageRGBFilter
,GPUImageSepiaFilter
等。難道GPUImageChromaKeyFilter
只是被打破?
任何幫助,這將不勝感激,因爲在這一點上,我颳了視頻的透明度桶的底部。
@BradLarson我很想看到你的一些輸入。 –
嗨,理查德,你是否設法解決這個問題?你會發布代碼嗎?謝謝:D –
nope;沒有解決它(我希望@BradLarson可以來這裏回答自己,但可惜情況並非如此 –