2

我有一个本地视频文件,现在我在 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

是的,您可以通过以下代码获取视频文件的自然大小.. @mayur-shrivas 根据GPUImage :将文件管理器应用于现有视频文件

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 回答