Мне нужно редактировать видео кадр за кадром, а также снова конвертировать эти кадры в видео - PullRequest
1 голос
/ 22 января 2020

Мне нужно редактировать видео кадр за кадром. Если я извлекаю видео в кадрах (используя подход изображения), приложение падает из-за памяти.

3 минуты видео превышает ограничение в 1 ГБ.

func getAllFrames() -> [UIImage] {


    let duration: Float64 = CMTimeGetSeconds(asset.duration)

    self.generator = AVAssetImageGenerator(asset: asset)

    self.generator.appliesPreferredTrackTransform = true
    self.images = []
    let generator = AVAssetImageGenerator(asset: asset)

    for index: Int in 0 ..< Int(duration) * 24 {

        let time = NSValue(time: CMTime(seconds: Double(index), preferredTimescale: 60))
        imageTime.append(time)
    }

    generator.generateCGImagesAsynchronously(forTimes: imageTime, completionHandler: { (_, cgImage, _, _, _) in
        if let cgImage = cgImage {

            self.images.append(UIImage(cgImage: cgImage))

            print("Image size is ", UIImage(cgImage: cgImage).getImageSize())
        }
    })
    self.generator = nil
    return self.images
}
...