+ (UIImage*)getThumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)timer {
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
if(!asset){
return nil;
}
AVAssetImageGenerator *assetImageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
assetImageGenerator.appliesPreferredTrackTransform = YES;
assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;
CGImageRef thumbnailImageRef = NULL;
CFTimeInterval thumbnailImageTime = timer;
NSError *thumbnailImageGenerationError = nil;
thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60) actualTime:NULL error:&thumbnailImageGenerationError];
if (!thumbnailImageRef){
NSLog(@"thumbnailImageGenerationError %@", thumbnailImageGenerationError);
return nil;
}
UIImage *thumbnailImage = thumbnailImageRef ? [[UIImage alloc] initWithCGImage:thumbnailImageRef]: nil;
return thumbnailImage;
}