AVFoundation как захватить обработанное видео?

Я пытаюсь реализовать конвейер обработки видео в ios с помощью Metal. Пока я могу получить CVPixelBuffer от делегата AVCaptureVideoDataOutput, применить к нему фильтр и отобразить его в MTKView для предварительного просмотра в реальном времени. Мой вопрос: как применить тот же фильтр к видео при записи с помощью AVCaptureMovieFileOutput? Я имею в виду, есть ли способ загрузить уже отфильтрованные CVPixelBuffers в AVCaptureMovieFileOutput?


person mustafa    schedule 18.05.2020    source источник


Ответы (1)


Для этого варианта использования вам понадобится AVAssetWriter, который вы передаете обработанные пиксельные буферы через AVAssetWriterInput. Это довольно ручной процесс, но, возможно, эта статья немного поможет .

person Frank Schlegel    schedule 18.05.2020
comment
То есть мне нужно записывать звук отдельно и объединять его с видео? - person mustafa; 18.05.2020
comment
Вам нужен AVCaptureAudioDataOutput в сеансе захвата и передать созданные им буферы сэмплов другому AVAssetWriterInput того же того же AVAssetWriter, который вы инициализируете с типом носителя .audio. Затем средство записи активов синхронизирует образцы видео и аудио на основе их метки времени. - person Frank Schlegel; 18.05.2020