2

iPhoneアプリケーションに次の操作を実行したい小さなビデオクリップがあります-

  1. ズーム-ジェスチャーをつまむことでビデオをズームインおよびズームアウトできるはずです。
  2. 切り抜き-速度を上げたり下げたりした後、ビデオの長さを切り抜くことができるはずです。
  3. カット-ビデオの任意の部分でウィンドウをドラッグして、ウィンドウ内にあるビデオを別のビデオとしてカットできるはずです。

ビデオのサイズが非常に小さい(1分未満)ので、私が考えることができるのは、各フレームを抽出して上記の操作を実行することによってビデオを画像に変換することだけです。誰かがより良いアイデアを提案できますか?

ありがとう

4

1 に答える 1

7

これらの操作を実行する簡単で高速な方法は、GPUImageフレームワークを使用することです。iOSで映画を編集するには、GPUImageMovieクラスを確認する必要があります。GPUImageフレームワークには、必要な操作を実行するために使用できる一連のフィルターがすでに付属しています。GPUImageを使用してビデオを編集する方法の詳細については、このセクションを参照してください。

つまり、最初にGPUImageMovieオブジェクトを作成します。

movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];

次に、いくつかのフィルターを作成し、フィルターをオブジェクトに適用します。

cropFilter = [[GPUImageCropFilter alloc] init];
[movieFile addTarget:cropFilter];

チェーンのpreviousFilterにターゲットを追加することで、チェーンにフィルターを追加できます。最後に、ビデオを変換する準備ができたら、次のようにします。

NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];
[pixellateFilter addTarget:movieWriter];

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

[movieWriter startRecording];
[movieFile startProcessing]
于 2013-01-03T10:13:38.607 に答える