19
19

More than 5 years have passed since last update.

iOSで誰でも簡単に動画にもおしゃれなフィルターをかける方法

Last updated at Posted at 2014-02-17

最近動画の加工アプリが徐々に盛り上がりを見せていますが、iOSで写真と同じように簡単にフィルターをかける方法を教えます。

それはみんな大好きGPUImageを利用すれば非常に簡単です。
https://github.com/BradLarson/GPUImage

GPUImageFilter *filter = xxxxx ;//かけたいフィルタ
NSURL *url = xxxxxxx; //movieのURL
 GPUImageMovie *movieFile = [[GPUImageMovie alloc] initWithURL:url];

 AVURLAsset *asset = [AVURLAsset assetWithURL:url];
 NSArray *videoTracks = [asset tracksWithMediaType:AVMediaTypeVideo];
 AVAssetTrack *videoTrack = [videoTracks objectAtIndex:0];

 movieFile.playAtActualSpeed = YES;

 [movieFile addTarget:filter];


 NSURL    *exportUrl = xxxxxxxxxx; //出力先


 GPUImageMovieWriter *movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:exportUrl size:videoTrack.naturalSize];


[filter addTarget:_movieWriter];
movieWriter.shouldPassthroughAudio = YES;
movieFile.audioEncodingTarget = _movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:_movieWriter];

BOOL alreadyRecordComplate = NO;


movieWriter.completionBlock = ^(){
        if(!alreadyRecordComplate){
             NSLog(@"movie writer end");
            alreadyRecordComplate = YES;
            [movieWriter finishRecordingWithCompletionHandler:^{
                [filter removeTarget:movieWriter];

            }];

    }     
};

movieWriter.failureBlock = ^(NSError *error){
        NSLog(@"movie writer failure %@",error.description);

};
[movieWriter startRecording];
[movieFile startProcessing];

GPUImageには非常に多数のFilter

その他iOSは非常に動画を扱うAPIが充実しており、AVFoundation.framework を利用すると、もっと凝った編集が可能です。

皆さんもGPUImageを使って楽しい動画アプリを作ってみてください!

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19