Я застрял на несколько недель!
Я испробовал все решения там, на stackoverflow, которые отлично работают примерно от 0 до 500 изображений или 50 секунд на 12 кадров в секунду, но для более длинных видео есть черныймигает через ~ 50 секунд, в зависимости от того, какой iphone, с iphone 6 происходит через 50 секунд на iphone 8, это происходит после 1:30
Я попробовал принятый ответ от эта ссылка writeImagesAsMovie()
функция
иногда возникают проблемы с выделением памяти, иногда нет, но мерцание черного сохраняется.
// MARK: - Fill Pixel Buffer -
private func fillPixelBufferFromImage(image: UIImage, pixelBuffer: CVPixelBuffer) {
CVPixelBufferLockBaseAddress(pixelBuffer, CVPixelBufferLockFlags(rawValue: 0))
let pixelData = CVPixelBufferGetBaseAddress(pixelBuffer)
let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
// Create CGBitmapContext
let context = CGContext(
data: pixelData,
width: Int(720),
height: Int(720),
bitsPerComponent: 8,
bytesPerRow: CVPixelBufferGetBytesPerRow(pixelBuffer),
space: rgbColorSpace,
bitmapInfo: CGImageAlphaInfo.premultipliedFirst.rawValue
)
// Draw image into context"
context?.draw(image.cgImage!, in: CGRect(x: 0, y: 0, width: 720, height: 720))
CVPixelBufferUnlockBaseAddress(pixelBuffer, CVPixelBufferLockFlags(rawValue: 0))
//UIGraphicsEndImageContext()
}