2

ローカル ビデオ ファイルが 1 つあり、GPUImage ライブラリを使用してフィルターを適用しました。これは、GPUImage でフィルター処理されたビデオを作成するコードです。

movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
pixellateFilter = [[GPUImagePixellateFilter alloc] init];
GPUImageRotationFilter *rotationFilter = [[GPUImageRotationFilter alloc] initWithRotation:kGPUImageRotateRight];

[movieFile addTarget:rotationFilter];
[rotationFilter addTarget:pixellateFilter];

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 startRecording];
[movieFile startProcessing];

[pixellateFilter removeTarget:movieWriter];
[movieWriter finishRecording];

今、私はこのビデオ ファイルにフレームを適用したいと思います。つまり、ビデオ ファイルの naturalSize を取得しました。そして、この動画ファイルに naturalSize のフレームを適用したいと考えています。

どのようにできるのか ?出来ますか ?

よろしく、

******** 解決済み ********* GPUImage では限界があるため、動画に画像を追加できません。このリンクに感謝します。

4

1 に答える 1

0

はい、次のコードでビデオ ファイルの自然なサイズを取得できます。 GPUImage に従って @mayur-shrivas による: 既存のビデオ ファイルにファイラーを適用する

AVURLAsset *asset = [AVURLAsset URLAssetWithURLNSURL fileURLWithPath:pathToMovie] options:nil];
AVAssetTrack *videoAssetTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(videoAssetTrack.naturalSize.width, videoAssetTrack.naturalSize.height)];
于 2014-07-02T06:38:22.850 に答える