2012-02-05 135 views
25

我使用Apple提供的AVCam代码从iPhone摄像头录制视频。获取缩略图的视频快照

录制视频后,它会保存到照片库。

然后加载一个新的视图,在这里我需要有一个视频的图像缩略图。

我有视频的路径:

file://localhost/private/var/mobile/Applications/ED45DEFC-ABF9-4A5E-9102-21680CC1448E/tmp/output.mov 

我似乎无法弄清楚如何获得视频的第一帧作为缩略图使用。

任何帮助将非常感激,并感谢您的时间。


编辑

最后我用这个,我不知道为什么它侧身返回的形象呢?

- (UIImage*)loadImage { 

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil]; 
    AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
    NSError *err = NULL; 
    CMTime time = CMTimeMake(1, 60); 
    CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err]; 
    NSLog(@"err==%@, imageRef==%@", err, imgRef); 

    return [[UIImage alloc] initWithCGImage:imgRef]; 

} 

回答

45

修复缩略图定位在AVAssetImageGenerator实例设置appliesPreferredTrackTransformYES。如果您添加自己的视频作品,则需要包含正确的转换以根据需要旋转视频。

generate.appliesPreferredTrackTransform = YES; 

记得发布获取的图像参考CGImageRelease

要请求多个缩略图,最好与generateCGImagesAsynchronouslyForTimes:completionHandler:异步执行。

+0

+1完美,谢谢! – bentford 2012-04-09 16:38:41

+0

+1这正是我想要添加的! :) – 2012-07-04 11:21:27

+0

给我一个错误AVErrorOperationNotSupportedForAsset。 plz help – ruyamonis346 2013-08-01 12:06:48