如何制作过滤iOS中照片库中已保存视频的过程?
我使用AssetsLibrary框架获取了库中的视频网址,
然后,预览视频。
下一步,我想使用CIFilter对视频进行过滤。
如果出现实时问题,我使用AVCaptureVideoDataOutputSampleBufferDelegate进行了视频过滤处理。
但是在保存视频的情况下,我不知道如何进行过滤处理。
我使用AVAsset吗?如果我必须使用它,我该如何过滤它?以及如何保存它?
总是非常感谢你。答案 0 :(得分:5)
我希望这会对你有所帮助
AVAsset *theAVAsset = [[AVURLAsset alloc] initWithURL:mNormalVideoURL options:nil];
NSError *error = nil;
float width = theAVAsset.naturalSize.width;
float height = theAVAsset.naturalSize.height;
AVAssetReader *mAssetReader = [[AVAssetReader alloc] initWithAsset:theAVAsset error:&error];
[theAVAsset release];
NSArray *videoTracks = [theAVAsset tracksWithMediaType:AVMediaTypeVideo];
AVAssetTrack *videoTrack = [videoTracks objectAtIndex:0];
mPrefferdTransform = [videoTrack preferredTransform];
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
AVAssetReaderTrackOutput* mAssetReaderOutput = [[AVAssetReaderTrackOutput alloc] initWithTrack:videoTrack outputSettings:options];
[mAssetReader addOutput:mAssetReaderOutput];
[mAssetReaderOutput release];
CMSampleBufferRef buffer = NULL;
//CMSampleBufferRef buffer = NULL;
while ( [mAssetReader status]==AVAssetReaderStatusReading ){
buffer = [mAssetReaderOutput copyNextSampleBuffer];//read next image.
}
答案 1 :(得分:0)
你应该看看CVImageBufferRef pixBuf = CMSampleBufferGetImageBuffer(sbuf)然后你可以拥有图像指针的第一个地址,这样你就可以为pixBuf添加过滤器,但我发现性能不好,如果你有任何新想法,我们可以进一步讨论它。