AVFoundation.framework を使用してカスタム プレーヤーを構築し、アルファ チャネルを含むビデオを使用する必要があります。AVFoundation フレームワークを使用すると、MPMedia フレームワークの多くの制限なしで、より堅牢なビデオ処理が可能になります。カスタム プレーヤーを構築することは、人々が理解するほど難しくありません。ここにチュートリアルを書きました: http://www.sdkboy.com/?p=66
他の方法..........
フレームワークの SimpleVideoFileFilter の例は、ムービーをロードし、フィルタリングし、エンコードしてディスクに戻す方法を示しています。これを変更してクロマキーを実行すると、次のようになります。
NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"m4v"];
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
filter = [[GPUImageChromaKeyBlendFilter alloc] init];
[filter setColorToReplaceRed:0.0 green:0.0 blue:1.0];
[filter setThresholdSensitivity:0.4];
[movieFile addTarget:filter];
UIImage *inputImage = [UIImage imageNamed:@"background.jpg"];
sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[sourcePicture addTarget:filter];
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];
movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];
[filter addTarget:movieWriter];
[movieWriter startRecording];
[movieFile startProcessing];
[movieWriter setCompletionBlock:^{
[filter removeTarget:movieWriter];
[movieWriter finishRecording];
}];
上記のコードは、sample.m4v というアプリケーションのリソースからムービーをロードし、0.4 の感度で純粋な青をキーオフするように設定されたクロマ キー フィルターにフィードし、クロマ キーイングに使用する背景画像を添付します。次に、そのすべてをムービー エンコーダーに送信し、アプリケーションの /Documents ディレクトリに Movie.m4v を書き込みます。
しきい値と特定の青の色合いをニーズに合わせて調整したり、必要に応じて入力画像を別の映画や他のソースに置き換えたりすることができます。このプロセスは、iOS デバイスのカメラからのライブ ビデオにも適用でき、必要に応じて結果を画面に表示できます。
iOS 5.0 を実行している iPhone 4 では、クロマ キーイングはビデオの 640x480 フレームで 1.8 ミリ秒 (500+ FPS)、720p フレーム (15 FPS) で 65 ミリ秒かかります。新しい A5 ベースのデバイスは、これらの操作よりも 6 ~ 10 倍高速であるため、汗をかくことなく 1080p ビデオを処理できます。フレームのアップロードと取得の両方に iOS 5.0 の高速テクスチャ キャッシュを使用しているため、4.x よりもその OS バージョンでの処理が高速化されています。
これに関して私が持っている 1 つの注意点は、ムービー エンコーディングでオーディオを正しく録音できていないということですが、現在、それに取り組んでいます。