Самый быстрый способ записать и сохранить видео из нескольких кадров
Мне нужно записать несколько кадров (много), сгенерированных металлическим представлением. Весь код, который я нашел вокруг, использует AVAssetWriterInputPixelBufferAdaptor
а также AVAssetWriterInput
писать буквально кадр в то время.
while !mAssetWriterVideoInput.isReadyForMoreMediaData {}
let result = mAssetWriterPixelBufferInput.append(pixelBuffer, withPresentationTime: presentationTime)
Как вы можете себе представить, это очень долгий процесс, и "рендеринг" занимает довольно много времени (примерно в 2 раза больше видео).
Предполагая, что сохранение в памяти всех кадров для последующего сохранения их в 1 процессе записи не требуется (требуется слишком много памяти), AVKit
предоставить способ асинхронной записи на диск при необходимости в потоках с более низким приоритетом при добавлении новых кадров? Так что запись происходит не в каждом кадре, а только тогда, когда свободной памяти становится мало.