【发布时间】:2015-04-03 02:34:04
【问题描述】:
我有一个包含视频的 NSURL,我想每秒钟录制十次该视频的帧。我有代码可以捕捉我的播放器的图像,但我无法将其设置为每秒捕捉 10 帧。我正在尝试这样的事情,但它返回了相同的视频初始帧,正确的次数?这是我所拥有的:
AVAsset *asset = [AVAsset assetWithURL:videoUrl];
CMTime vidLength = asset.duration;
float seconds = CMTimeGetSeconds(vidLength);
int frameCount = 0;
for (float i = 0; i < seconds;) {
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(i, 10);
CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL];
UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
NSString* filename = [NSString stringWithFormat:@"Documents/frame_%d.png", frameCount];
NSString* pngPath = [NSHomeDirectory() stringByAppendingPathComponent:filename];
[UIImagePNGRepresentation(thumbnail) writeToFile: pngPath atomically: YES];
frameCount++;
i = i + 0.1;
}
但是我没有获取视频当前时间 i 的帧,而是获取了初始帧?
如何获得每秒 10 次的视频帧?
感谢您的帮助:)
【问题讨论】: