Tag: avassetimagegenerator

为什么AVAssetImageGenerator generateCGImagesAsynchronouslyForTimes崩溃了应用程序

我想使用generateCGImagesAsynchronouslyForTimes从video中提取每秒2帧。 但我的应用程序崩溃。 我正在监视内存使用情况,但不超过14 MB。 这里是代码: – (void) createImagesFromVideoURL:(NSURL *) videoUrl atFPS: (int) reqiuredFPS completionBlock: (void(^) (NSMutableArray *frames, CGSize frameSize)) block { NSMutableArray *requiredFrames = [[NSMutableArray alloc] init]; AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoUrl options:nil]; AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; generator.requestedTimeToleranceAfter = kCMTimeZero; generator.requestedTimeToleranceBefore = kCMTimeZero; generator.appliesPreferredTrackTransform = YES; UIImage *sampleGeneratedImage; for (Float64 i = […]

iOS的swift:generateCGImagesAsynchronouslyForTimes需要太长时间,冻结应用程序?

我使用以下代码asynchronous获取video缩略图: let imgGenerator = AVAssetImageGenerator(asset: asset) imgGenerator.generateCGImagesAsynchronouslyForTimes([NSValue(CMTime: CMTimeMake(1, 30))]) {(time1, image, time2, result, error) -> Void in if (result == .Succeeded) { dispatch_async(dispatch_get_main_queue()) { thumbnailImageView.image = UIImage(CGImage: image!) } NSLog("SUCCESS!") } } 我不明白为什么它冻结的应用程序,但例如,如果我用这20个tableview单元格需要超过20秒加载和应用程序不会继续和显示视图完成下载之前。 为什么我在这里失踪?

AVAssetImageGenerator在复制图像时失败

我正在使用AVAssetImageGenerator从video的最后一帧创build一个图像。 这通常工作正常,但copyCGImageAtTime与错误 NSLocalizedDescription = "Cannot Open"; NSLocalizedFailureReason = "This media cannot be used."; NSUnderlyingError = "Error Domain=NSOSStatusErrorDomain Code=-12431"; 我正在validationAVAsset不是零,我直接从资产拉CMTime,所以我不明白为什么这种情况继续发生。 这只发生在试图获取最后一帧时,如果我使用kCMTimeZero ,它似乎工作。 – (void)getLastFrameFromAsset:(AVAsset *)asset completionHandler:(void (^)(UIImage *image))completion { NSAssert(asset, @"Tried to generate last frame from nil asset"); AVAssetImageGenerator *gen = [[AVAssetImageGenerator alloc] initWithAsset:asset]; gen.requestedTimeToleranceBefore = kCMTimeZero; gen.requestedTimeToleranceAfter = kCMTimeZero; gen.appliesPreferredTrackTransform = YES; CMTime time = […]

m3u8文件AVAssetImageGenerator错误

我正在使用AVPlayer播放.m3u8文件。 使用AVAssetImageGenerator使用以下代码从中提取图像: AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:mp.contentURL options:nil]; AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1]; generate1.appliesPreferredTrackTransform = YES; NSError *err = NULL; CMTime time = CMTimeMake(1, 2); CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err]; img = [[UIImage alloc] initWithCGImage:oneRef]; 它总是给我错误: 错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = 0x7fb4e30cbfa0 {NSUnderlyingError = 0x7fb4e0e28530“操作无法完成(OSStatus错误-12782。)”,NSLocalizedFailureReason =发生未知错误(-12782 ),NSLocalizedDescription =操作无法完成} 它适用于mp4,mov和所有主要的video扩展URL,但不适用于m3u8。 任何想法??