dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
AVURLAsset *asset = [[AVURLAsset alloc]initWithURL:url options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
CMTime time = CMTimeMakeWithSeconds(0.0, 600);// 处理视频内容常见刻度,600是24fps、25fps、30fps的公倍数
NSError *error = nil;
CMTime actualTime;
CGImageRef imageRef = [generator copyCGImageAtTime:time actualTime:&actualTime error:&error];
UIImage *resultImage = [UIImage imageWithCGImage:imageRef];
// 存入内存、存入本地
[[PFMediaTool shareMediaTool].frameKeyMap setObject:resultImage forKey:frameKey];
[self saveImageToCache:resultImage forKey:frameKey];
CGImageRelease(imageRef);
dispatch_async(dispatch_get_main_queue(), ^{
completeBlock(resultImage);
});
});
获取视频第一帧
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- // 获取视频第一帧 - (UIImage*) getVideoPreViewImage:(AVURLAsset*...