Самый быстрый способ записать и сохранить видео из нескольких кадров - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно записать несколько кадров (много), сгенерированных металлическим представлением.Весь код, который я нашел, использует AVAssetWriterInputPixelBufferAdaptor и AVAssetWriterInput, пишущие буквально фрейм в то время.

while !mAssetWriterVideoInput.isReadyForMoreMediaData {}
let result = mAssetWriterPixelBufferInput.append(pixelBuffer, withPresentationTime: presentationTime)

Как вы можете себе представить, это очень долгий процесс, и «рендеринг» занимает довольно много времени.времени (~ в 2 раза больше видео).

Если хранить в памяти все кадры, а затем сохранять их в 1 процессе записи, не требуется (слишком много памяти), AVKit обеспечивает способзаписывать на диск асинхронно при необходимости в потоках с более низким приоритетом при добавлении новых кадров?Так что запись происходит не в каждом кадре, а только тогда, когда свободной памяти становится мало.

...