//获取网络视频的缩略图
-
(UIImage *)getThumbnailImageFromVideoURL:(NSURL *)URL time:(NSTimeInterval )videoTime{
if (!URL) return nil;
UIImage *shotImage;
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:URL options:nil];
AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
gen.appliesPreferredTrackTransform = YES;
//videoTime 截视频中第几秒的屏
CMTime time = CMTimeMakeWithSeconds(videoTime, 600);NSError *error = nil;
CMTime actualTime;
CGImageRef image = [gen copyCGImageAtTime:time actualTime:&actualTime error:&error];
shotImage = [[UIImage alloc] initWithCGImage:image];
CGImageRelease(image);
return shotImage;
}
//获取本地视频缩略图
-
(UIImage *)getThumbnailImageFromFilePath:(NSString *)videoPath time:(NSTimeInterval )videoTime {
if (!videoPath) {
return nil;
}
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[[NSURL alloc] initFileURLWithPath:videoPath] options:nil];
AVAssetImageGenerator *assetImageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
assetImageGenerator.appliesPreferredTrackTransform = YES;
assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;CGImageRef thumbnailImageRef = NULL;
CFTimeInterval thumbnailImageTime = videoTime;
thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 600)
actualTime:NULL error:nil];
if (!thumbnailImageRef) {
return nil;
}UIImage *thumbnailImage = [[UIImage alloc] initWithCGImage:thumbnailImageRef];
CFRelease(thumbnailImageRef);
return thumbnailImage;
}
摘抄自:https://www.jianshu.com/p/6b6ffe0e4981
测试视频地址:http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4
网友评论