avassetimagegenerator
全部标签 我需要拍摄一段视频,将每一帧转换为图像并将这些图像保存到磁盘。为了效率起见,我想使用AVAssetImageGenerator,并且有类似于以下的代码:问题是我不知道什么时候所有图像生成完成,但我需要在所有帧都写入磁盘后采取行动。例如:assetGenerator.generateCGImagesAsynchronously(forTimes:frameTimes,completionHandler:{(requestedTime,image,actualTime,result,error)in//1.Keepareferencetoeachimage//2.Waituntilalli
到目前为止,我有以下内容letassetUrl=NSURL.URLWithString(self.targetVideoString)letasset:AVAsset=AVAsset.assetWithURL(assetUrl)asAVAssetletimageGenerator=AVAssetImageGenerator(asset:asset);lettime:CMTime=CMTimeMakeWithSeconds(1.0,1)letactualTime:CMTimeletmyImage:CGImage=imageGenerator.copyCGImageAtTime(reque
我正在尝试从视频中获取一组图像。它运行良好,但我怀疑完成处理程序是在哪个线程中调用的。我在新操作中调用了此方法(generateCGImagesAsynchronouslyForTimes:),并在完成处理程序中更新了UI。用户界面得到更新。但通常UI更新不会发生在辅助线程中?我怀疑是在当前调用线程还是主线程中调用了完成处理程序?我的代码是:__blockunsignedinti=0;AVAssetImageGeneratorCompletionHandlerhandler=^(CMTimerequestedTime,CGImageRefim,CMTimeactualTime,AVAs
我不能让AVAssetImageGenerator给我电影的所有帧。使用这段代码:NSString*path=[[NSBundlemainBundle]pathForResource:@"video"ofType:@"mov"];NSURL*url=[NSURLfileURLWithPath:path];NSDictionary*options=[NSDictionarydictionaryWithObject:[NSNumbernumberWithBool:YES]forKey:AVURLAssetPreferPreciseDurationAndTimingKey];self.ass
我在使用AVPlayer播放托管在内容分发网络上的视频文件时遇到了一个非常奇怪的问题。我正在流式传输966kbpsmp4视频文件,该文件大小为151mb(编解码器IDmp42)。整个文件流非常好,没有问题。然后我尝试在特定时间截取屏幕截图。我用来拍摄快照的代码:-(UIImage*)captureFrame{AVAssetImageGenerator*assetImageGen=[AVAssetImageGeneratorassetImageGeneratorWithAsset:_player.currentItem.asset];assetImageGen.requestedTime
我正在尝试使用以下代码从视频生成缩略图。它确实生成UIImages但图像在不同时间都是相同的。例如,对于持续3秒的视频,它会生成6张图像,但所有图像都是视频开头的相同图像。对我做错了什么有什么想法吗?letasset=AVAsset(url:videoURL)letimageGenerator=AVAssetImageGenerator(asset:asset)letscale=2letstep=1letduration=Int(CMTimeGetSeconds(asset.duration)*Double(scale))varepoches=[NSValue]()foriinstri
我有一个AVComposition和一个AVVideoComposition,我会为视频的每半秒左右生成一个缩略图。我使用动画工具进行一些叠加。我对操作队列执行调用,它在某些类型的编辑后触发。操作队列是串行的而不是异步的,所以进程永远不会并发运行,我已经验证了这一点。下面的代码在串行队列中的另一个NSOperation的主线程上执行。现在我的问题是,拇指随机失败,没有模式。我可以运行一次并让它全部成功。我可以使用完全相同的参数再次运行它,并且有一些失败。我可以再次运行它并让不同的拇指失败。这似乎与其他线程中正在进行的其他事件的数量有关,例如从ALAssetLibrary或MediaFr
在我的应用程序中,我从单个图像创建视频。一切正常,视频以正确的大小和方向正确组装。它们在Apple照片应用程序、MPMoviePlayer和我保存它们的沙箱目录中都正确显示。当我试图从电影中得到一个拇指时,问题就出现了。方向不正确,我不知道如何解决,我看到有一个-preferredTransform属性,但横向和纵向视频的结果相同。我使用的url是沙盒目录路径。这是片段:-(void)setVideoPath:(NSString*)videoPath{if(videoPath==_videoPath){return;}_videoPath=videoPath;AVAsset*asset
我正在尝试创建一个视频库。为了显示视频,我使用了UICollectionView。每个UICollectionViewCell都有一个带有视频缩略图的背景。为了生成视频缩略图,我使用了一种具有逻辑的方法:AVURLAsset*asset=[[AVURLAssetalloc]initWithURL:urloptions:nil];AVAssetImageGenerator*generator=[[AVAssetImageGeneratoralloc]initWithAsset:asset];generator.appliesPreferredTrackTransform=YES;CMTi
我正在通过AVAssetImageGenerator接收远程视频的高/中质量缩略图,但仍然需要10到15秒才能从中获取缩略图。有没有办法立即得到低质量的缩略图?下面是我用来获取远程视频缩略图的代码。奇怪的是,当我下载此视频时,它的大小为1.1MB,而创建的缩略图大小为1.8MB。letassetForThumbnail=AVAsset(URL:videoURL)letdurationSeconds=CMTimeGetSeconds(assetForThumbnail.duration)letgenerator=AVAssetImageGenerator(asset:assetForTh