Ich habe eine NSURL, die ein Video enthält, und ich möchte ein Bild von diesem Video zehn Mal pro Sekunde aufnehmen. Und ich habe Code, der ein Bild von meinem Player aufnehmen wird, aber ich habe Probleme beim Einrichten von 10 Bildern pro Sekunde. Ich versuche so etwas, aber es gibt den gleichen Anfangsrahmen des Videos, die richtige Anzahl von Malen? Hier ist was ich habe:iOS Take mehrere Screenshots
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;
}
Aber anstatt den Rahmen zur aktuellen Zeit i des Videos zu bekommen, bekomme ich nur den ursprünglichen Rahmen?
Wie bekomme ich den Rahmen des Videos 10 Mal pro Sekunde?
Danke für die Hilfe :)
Die gleiche Frage mit Swift http://stackoverflow.com/questions/32286320/grab-frames-from-video-using-swift/32297251 – arpo