Самый быстрый способ записать и сохранить видео из нескольких кадров

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

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

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

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

0 ответов

Другие вопросы по тегам