Я пытаюсь создать видео из массива изображений, хранящихся на диске. Эти изображения могут быть портретными или пейзажными. Приведенный ниже код ужасно неоптимизирован, и я далек от гуру AVFoundation, поэтому мне нужна помощь, почему это может не работать. Я получаю результат, показанный на изображении ниже: это похоже на наложение изображения на предыдущий кадр.

Вот код, используемый для создания образца CVBuffer для добавления в pixelBufferAdaptor:
класс FrameCreator { func create (из изображения: URL, PixelBufferPool: CVPixelBufferPool, размер: CGSize) -> CVBuffer? { let context = CIContext(mtlDevice: MTLCreateSystemDefaultDevice()!) context.clearCaches() вар PixelBuffer: CVPixelBuffer? // можно удалить предварительное условие (CVPixelBufferPoolCreatePixelBuffer (ноль, PixelBufferPool, &pixelBuffer) == kCVReturnSuccess) let ciImage = CIImage(contentsOf: image, options: [CIImageOption.applyOrientationProperty: true])! пусть imageSize = ciImage.extent.size если imageSize.height < imageSize.width { пусть HorizontalRatio = size.width/imageSize.width пустьвертикальныйRatio = size.height/imageSize.height пусть аспектРатио = макс (горизонтальноеСоотношение, вертикальноеСоотношение) let newSize = CGSize (ширина: imageSize.width * аспектRatio, высота: imageSize.height * аспектRatio) пусть x = newSize.width