Я пытаюсь создать эскизы изображений из видео, используя следующий код. Он генерирует UIImages, но изображения все одинаковы в разное время. Например, для видео, которое длится 3 секунды, оно будет генерировать 6 изображений, но все изображения являются одним и тем же изображением для самого начала видео. Любые идеи о том, что я сделал неправильно?Сгенерировать изображения из AVAssetImageGenerator
let asset = AVAsset(url: videoURL)
let imageGenerator = AVAssetImageGenerator(asset: asset)
let scale = 2
let step = 1
let duration = Int(CMTimeGetSeconds(asset.duration) * Double(scale))
var epoches = [NSValue]()
for i in stride(from: 1, to: duration, by: step) {
//let time = CMTimeMake(Int64(i), Int32(scale))
let time = CMTimeMakeWithSeconds(Double(i)/Double(scale), Int32(scale))
let cgImage = try! imageGenerator.copyCGImage(at: time, actualTime: nil)
let uiImage = UIImage(cgImage: cgImage)
self?.imagePool.append(uiImage)
epoches.append(NSValue(time: time))
}
работает как шарм! Спасибо man –
Для меня бесполезно менять знаменатель, но установка меньшего числителя, такого как CMTimeMake (0,01, 1), сделала трюк. – Varrry
Странно! То, что вы сделали, должно быть эквивалентно 'CMTimeMake (1, 100)'! –