我正在使用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];
}
答案 0 :(得分:45)
将修复缩略图方向集appliesPreferredTrackTransform
设置为YES
实例中的AVAssetImageGenerator
。如果您添加自己的视频合成,则需要包含正确的转换以根据需要旋转视频。
generate.appliesPreferredTrackTransform = YES;
请记住使用CGImageRelease
释放获得的图像参考。
要请求多个缩略图,最好与generateCGImagesAsynchronouslyForTimes:completionHandler:
异步进行。