Я использую avcapturesession с предустановленным AVCaptureSessionPresetMedium для захвата видео, я применяю эффект к этому видео с помощью opengl, используя шейдеры.
Я использую assetWriter для записи видео в файл mp4. Проблема в том, что полученное видео особенно медленно, когда я добавляю аудиовыход.
Вот как работает мой код:
- В -
(Пустоты) captureOutput: (AVCaptureOutput
*) функция captureOutput ... я применяю фильтр opengl к захваченному
рамы
- , затем проверьте, является ли выход захвата
видео или аудио, если это видео, я использую
glReadPixels для создания
CVPixelBufferRef, который я отправляю
AVAssetWriterInputPixelBufferAdaptor
написать это
- если это аудио, я пишу прямо
CMSampleBufferRef
Если кто-то может сказать мне, что не так с моим подходом или какая часть должна замедлить полученное видео?