iOS获取视频首帧

获取视频首帧的两种方法

这里总结一下:

方法一:
使用MPMoviePlayerController的获取封面的方法:

+ (UIImage *)thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {
    UIImage *thumbnailImage = nil;
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
    moviePlayer.shouldAutoplay = NO;
    thumbnailImage = [moviePlayer thumbnailImageAtTime:time timeOption:MPMovieTimeOptionNearestKeyFrame];
    
    return thumbnailImage;
}

方法二:
使用AVAssetImageGenerator获取

+ (UIImage*) thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time {  
      
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];  
    NSParameterAssert(asset);  
    AVAssetImageGenerator *assetImageGenerator =[[AVAssetImageGenerator alloc] initWithAsset:asset];  
    assetImageGenerator.appliesPreferredTrackTransform = YES;  
    assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels;  
      
    CGImageRef thumbnailImageRef = NULL;  
    CFTimeInterval thumbnailImageTime = time;  
    NSError *thumbnailImageGenerationError = nil;  
    thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60)actualTime:NULL error:&thumbnailImageGenerationError];  
      
    if(!thumbnailImageRef)  
    NSLog(@"thumbnailImageGenerationError %@",thumbnailImageGenerationError);  
      
    UIImage*thumbnailImage = thumbnailImageRef ? [[UIImage alloc]initWithCGImage: thumbnailImageRef] : nil;  
      
    return thumbnailImage;  
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容