使用ios前置摄像头捕获视频,并使用avassetimagegenerator将其转换为图像序列

使用ios前置摄像头捕获视频,并使用avassetimagegenerator将其转换为图像序列,ios,avfoundation,Ios,Avfoundation,我正在尝试在ios中使用前置摄像头拍摄视频,并将其转换为图像序列。我正在尝试使用avassetimagegenerator来实现这一点。我是AV基金会的新手,请帮帮我,谢谢。 < P>首先呈现一个UIIVaPixError控制器 - (void)presentVideoPicker { UIImagePickerController *anImagePicker = [[UIImagePickerController alloc] init]; anImagePicker.sou

我正在尝试在ios中使用前置摄像头拍摄视频,并将其转换为图像序列。我正在尝试使用avassetimagegenerator来实现这一点。我是AV基金会的新手,请帮帮我,谢谢。

< P>首先呈现一个UIIVaPixError控制器

- (void)presentVideoPicker {
    UIImagePickerController *anImagePicker = [[UIImagePickerController alloc] init];
    anImagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    anImagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    anImagePicker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *)kUTTypeMovie, nil];
    anImagePicker.allowsEditing = YES;
    anImagePicker.delegate = self;

    UIPopoverController *aPopoverController = [[[UIPopoverController alloc] initWithContentViewController:anImagePicker] autorelease];
    [aPopoverController presentPopoverFromRect:self.view.frame inView:[[self view] window]
                          permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
在UIImagePickerControllerDelegate中捕获视频

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSString *aMediaType = [info objectForKey:UIImagePickerControllerMediaType];

    if ([aMediaType isEqualToString:(NSString *)kUTTypeMovie]) {
        NSURL *aVideoURL = [info objectForKey:UIImagePickerControllerMediaURL];
        [self readMovie:aVideoURL];

        // If you want the Duration fo the Video, Use this
        AVPlayerItem *aPlayerItem = [AVPlayerItem playerItemWithURL:aVideoURL];
        CMTime aDuration = aPlayerItem.duration;
        float anInSeconds = CMTimeGetSeconds(aDuration);
        NSInteger aDuration = nearbyintf(anInSeconds);
    }
}
现在为您在委托
-(void)readMovie:(NSURL*)url中调用的方法编写代码

请参阅此链接:

为图像生成CVImageBuffer后

提及


要将其转换为UIImage

如何创建CVImageBuffer?在方法
-(void)readNextMovieFrame
中,您可以获得每个帧的CVImageBufferRef。。。