通视频URL截取第一帧图片
2017-06-21 本文已影响283人
骑马纵天下
为了方便直接给UIImage加个类别,以后什么时候使用可以直接调用。
#import <UIKit/UIKit.h>
@interface UIImage (Video)
/**
通过视频URL获取视频的第一帧图片
@param videoURL 视频连接
@return 第一帧图片
*/
+ (UIImage *)interceptFirstTimeVideoPicture:(NSURL *)videoURL;
@end
#import "UIImage+Video.h"
#import <AVFoundation/AVFoundation.h>
@implementation UIImage (Video)
+ (UIImage *)interceptFirstTimeVideoPicture:(NSURL *)videoURL{
// 根据视频的URL创建AVURLAsset
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
// 根据AVURLAsset创建AVAssetImageGenerator对象
AVAssetImageGenerator* gen = [[AVAssetImageGenerator alloc] initWithAsset: asset];
gen.appliesPreferredTrackTransform = YES;
// 定义获取0帧处的视频截图
CMTime time = CMTimeMake(0, 10);
NSError *error = nil;
CMTime actualTime;
// 获取time处的视频截图
CGImageRef image = [gen copyCGImageAtTime: time actualTime: &actualTime error:&error];
// 将CGImageRef转换为UIImage
UIImage *thumb = [[UIImage alloc] initWithCGImage: image];
CGImageRelease(image);
return thumb;
}
@end
注意点:
使用AVAssetImageGenerator这个类是要记得导入#import <AVFoundation/AVFoundation.h>头文件。
image.png